Sinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc sốSinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc sốSinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc sốSinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc sốSinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc sốSinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc sốSinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc số
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGÔ THỊ LAN HOA
SINH CA KIỂM THỬ THEO CẶP CHO
MÔ HÌNH ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - 2016
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGÔ THỊ LAN HOA
SINH CA KIỂM THỬ THEO CẶP CHO
MÔ HÌNH ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ
CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
Trang 3i
LỜI CAM ĐOAN
Luận văn này là thành quả của quá trình học tập nghiên cứu của tôi cùng sự giúp đỡ, khuyến khích của các quý thầy cô sau 2 năm tôi theo học chương trình đào tạo Thạc sĩ, chuyên ngành Khoa học máy tính của trường Học viện Công nghệ Bưu chính Viễn thông
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Nội dung của luận văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí được liệt kê trong danh mục các tài liệu tham khảo và được trích dẫn hợp pháp
TÁC GIẢ
Ngô Thị Lan Hoa
Trang 4ii
LỜI CÁM ƠN
Tôi xin gửi lời cảm ơn và tri ân tới các thầy cô giáo, cán bộ của Học viện Công nghệ Bưu chính Viễn thông đã giúp đỡ, tạo điều kiện tốt cho tôi trong quá trình học tập và nghiên cứu chương trình Thạc sĩ
Tôi xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Đỗ Thị Bích Ngọc đã tận tình hướng dẫn, giúp đỡ và động viên tôi để hoàn thành tốt nhất Luận văn “Sinh ca kiểm thử theo cặp cho mô hình đặc trưng có ràng buộc số”
Do vốn kiến thức lý luận và kinh nghiệm thực tiễn còn ít nên luận văn không tránh khỏi những thiếu sót nhất định Tôi xin trân trọng tiếp thu các ý kiến của các thầy, cô để luận văn được hoàn thiện
Trân trọng cám ơn
Tác giả
Trang 5iii
MỤC LỤC
MỞ ĐẦU 1
Tính cấp thiết của đề tài 1
Tổng quan về vấn đề nghiên cứu 2
Mục đích, đối tượng, phạm vi và phương pháp nghiên cứu 2
Cấu trúc luận văn 3
CHƯƠNG 1 SINH CA KIỂM THỬ DỰA TRÊN 4
CÂY ĐẶC TRƯNG 4
1.1 Sinh ca kiểm thử tự động 4
Khái niệm ca kiểm thử 4
1.2 Sinh ca kiểm thử hộp đen 4
Một số kỹ thuật tiêu biểu 4
Kỹ thuật kiểm thử theo cặp 5
1.3 Cây đặc trưng 9
1.4 Cây đặc trưng trong kiểm thử phần mềm 11
1.5 Kết luận chương 12
CHƯƠNG 2 CÂY ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ VÀ SINH CA KIỂM THỬ THEO CẶP 14
2.1 Cây đặc trưng có ràng buộc số 14
Hạn chế của cây đặc trưng 14
Mở rộng cây đặc trưng với ràng buộc số 14
2.2 Sinh ca kiểm thử theo cặp cho cây đặc trưng có ràng buộc số 16
Hướng tiếp cận 16
Phẳng hóa cây đặc trưng có ràng buộc số 18
Dùng PICT để sinh ra ca kiểm thử 38
2.3 Kết luận chương 39
CHƯƠNG 3 CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG PnF 40
3.1 Hệ thống PnF 40
Giới thiệu 40
Giao diện hệ thống 41
Đặc tả dữ liệu đầu vào 42
3.2 Cài đặt chương trình 43
Thêm cây đặc trưng 43
Trang 6iv
Phẳng hóa cây đặc trưng 45
Dùng tool PICT để sinh ra ca kiểm thử 47
3.3 Kết quả thử nghiệm 49
Kết quả thử nghiệm 55
3.4 Kết luận chương 56
KẾT LUẬN 57
PHỤ LỤC 58
TÀI LIỆU THAM KHẢO 63
Trang 7v
DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Ý nghĩa tiếng Anh Ý nghĩa tiếng Việt
1 FTT Feature tree for testing Cây đặc trưng cho kiểm thử
2 SPL Software product line Dòng sản phẩm phần mềm
3 FOT Feature oriented testing Kiểm thử hướng đặc trưng
4
PICT Pairwise Independent
Combinatorial Testing tool
Công cụ sinh tổ hợp các ca kiểm thử theo cặp
5
PnF Pairwise numberical
Feature Tree for Testing
Công cụ sinh ca kiểm thử theo cặp cho cây đặc trưng ràng buộc số
6 CTC Cross Tree Constraint Ràng buộc trên cây
Trang 8vi
DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Đầu vào của phần mềm đặt hàng xe oto 7
Bảng 1.2 Các cặp kết hợp của 2 tham số đầu vào 7
Bảng 1.3 Các cặp kết hợp của 3 tham số đầu vào 8
Bảng 1.4 Các cặp kết hợp của tất cả các tham số đầu vào 9
Bảng 4.1 Kết quả thử nghiệm đối với cây Volume 59
Bảng 4.2 Kết quả thử nghiệm đối với cây Hardware 60
Bảng 4.3 Kết quả thử nghiệm đối với cây Computer 61
Bảng 4.4 Kết quả thử nghiệm đối với cây TV 61
Bảng 4.5 Kết quả thử nghiệm đối với cây Laptop 62
Trang 9vii
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Một quy trình kiểm thử cơ bản 4
Hình 1.2 So sánh số ca kiểm thử giữa kiểm thử đầy đủ và kiểm thử theo cặp 6
Hình 1.3 Cây đặc trưng cho dòng sản phẩm phần mềm Laptop 10
Hình 2.1 Quá trình sinh ca kiểm thử cho mô hình đặc trưng 17
Hình 2.2 Cây sau khi phẳng hóa với c là Maldatory, p bất kỳ 21
Hình 2.3 Cây sau khi phẳng hóa với c là Optional, p là Maldatory 23
Hình 2.4 Cây sau khi phẳng hóa với c là Optional, p là Optional 25
Hình 2.5 Cây sau khi phẳng hóa với c là Alternative group, c là Maldatory 27
Hình 2.6 Cây sau khi phẳng hóa với c là Alternative group, p là Optional 29
Hình 2.7 Cây sau khi phẳng hóa với c là Or group, p là Optional 33
Hình 2.8 Cây Laptop sau khi phẳng hóa 36
Hình 2.9 File đầu vào cho PICT 37
Hình 2.10 Chạy PICT bằng Command Prompt 38
Hình 3.1 Giao diện hệ thống 41
Hình 3.2 File đầu vào của chương trình cài đặt 42
Hình 3.3 Thêm các Node cho cây đặc trưng 43
Hình 3.4 Thêm các ràng buộc cho cây đặc trưng 44
Hình 3.5 Cây đặc trưng Laptop hoàn chỉnh 44
Hình 3.6 Cây đặc trưng sau khi được phẳng hóa 46
Hình 3.7 Cây đặc trưng sau khi phẳng hóa được chuyển thành đầu vào cho PICT 47
Hình 3.8 Ca kiểm thử theo cặp được sinh ra bằng PICT 48
Hình 3.9 Ca kiểm thử cho cây đặc trưng ban đầu 49
Hình 3.10 Cây đặc trưng cho dòng sản phẩm Volume 50
Hình 3.11 File đầu vào của cây đặc trưng Volume 50
Hình 3.12 Cây đặc trưng cho dòng sản phẩm Hardware 51
Hình 3.13 File đầu vào của cây đặc trưng Hardware 52
Hình 3.14 Cây đặc trưng cho dòng sản phẩm Computer 53
Hình 3.15 File đầu vào của cây đặc trưng Computer 54
Hình 3.16 Cây đặc trưng cho dòng sản phẩm TV 54
Hình 3.17 File đầu vào của cây đặc trưng TV 55
Trang 101
MỞ ĐẦU Tính cấp thiết của đề tài
Ngày nay, kiểm thử đóng vai trò quan trọng trong việc phát triển phần mềm Kiểm thử giúp đảm bảo chất lượng phần mềm đồng thời giúp giảm thời gian và chi phí phát triển dự án Để kiểm thử được tốt thì yếu tố quan trọng nhất vẫn là sinh ca kiểm thử Đối với những bài toán nhỏ, việc sinh ca kiểm thử không gặp quá nhiều khó khăn Tuy nhiên, đối với những bài toán có dữ liệu đầu vào phức tạp, đặc biệt là khi khách hàng thay đổi yêu cầu thì việc sinh ca kiểm thử sẽ tốn rất nhiều thời gian, công sức và chi phí Do vậy, một yêu cầu đặt ra là phải tự động hóa quá trình sinh
ca kiểm thử để tiết kiệm thời gian, công sức và dễ dàng cập nhật khi yêu cầu thay đổi
Trong quá trình kiểm thử hệ thống, thiết kế ca kiểm thử đóng vai trò quan trọng để đảm bảo chất lượng của phần mềm Thiết kế ca kiểm thử tốt sẽ giúp phát hiện được nhiều lỗi hơn và đảm bảo phủ được nhiều trường hợp hơn
Phương pháp Feature-Tree for Testing (FTT)[4] đã được phát triển với mục đích là thiết kế và tự động sinh đầu vào ca kiểm thử dựa trên kỹ thuật phân vùng Tuy nhiên FFT chỉ có thể áp dụng để sinh ca kiểm thử với các đặc trưng kiểu boolean và các ràng buộc là biểu thức logic FTT không thể áp dụng cho trường hợp các ràng buộc có chứa số Để tăng tính linh hoạt và khả năng áp dụng của FTT, [5]
đã nghiên cứu và đưa ra một mở rộng của FTT với các đặc trưng số và ràng buộc
số Hệ thống ràng buộc số này sẽ được giải tự động để sinh tất cả ca kiểm thử tương ứng với cây ban đầu
Kiểm thử theo cặp là kỹ thuật sinh ca kiểm thử hiệu quả dựa trên một thực tế
là lỗi phần mềm thường được gây ra bởi sự tương tác của hai tham số Kiểm thử theo cặp chỉ tạo các ca kiểm thử phủ hết các cặp giá trị của 2 tham số thay vì các bộ giá trị của tất cả các tham số Nhờ vậy, số ca kiểm thử giảm đi rất nhiều so với kiểm thử tất cả các trường hợp nhưng vẫn đảm bảo phát hiện được nhiều lỗi phần mềm Tuy nhiên kiểm thử theo cặp chưa được áp dụng cho cây FTT có ràng buộc số
Trang 112
Để đáp ứng những bài toán đặt ra, ngoài ra giúp giải quyết các mục tiêu nêu
trên học viên đã nghiên cứu và phát triển đề tài “SINH CA KIỂM THỬ THEO CẶP CHO MÔ HÌNH ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ”
Tổng quan về vấn đề nghiên cứu
- Các nghiên cứu trước đây:
Sinh ca kiểm thử theo cặp
Mô hình đặc trưng có ràng buộc số
- Vấn đề nghiên cứu hiện tại:
Kết hợp sinh ca kiểm thử theo cặp và mô hình đặc trưng có ràng buộc số
Mục đích, đối tượng, phạm vi và phương pháp nghiên cứu
Mục đích nghiên cứu:
- Nghiên cứu kỹ thuật sinh ca kiểm thử theo cặp
- Nghiên cứu cây đặc trưng để hiểu và áp dụng vào bài toán sinh ca kiểm thử cho cây đặc trưng và cây đặc trưng mở rộng
- Nghiên cứu phẳng hóa cây đặc trưng có ràng buộc số và ràng buộc logic để sinh
ca kiểm thử theo cặp nhằm thu nhỏ số ca kiểm thử
Đối tượng nghiên cứu:
- Quy trình kiểm thử phần mềm
- FTT và FTT mở rộng với ràng buộc số
- Kiểm thử theo cặp (Pairwise testing)
Phương pháp nghiên cứu:
Tìm hiểu về những đề tài nghiên cứu trước đây để có cái nhìn tổng quan về vấn
đề nghiên cứu
Trang 123
- Nghiên cứu lý thuyết: Nghiên cứu lý thuyết về các vấn đề sinh ca kiểm thử theo cặp và mô hình đặc trưng có ràng buộc số Đồng thời cũng nghiên cứu lý thuyết về các kỹ thuật kiểm thử tiêu biểu như kiểm thử phần mềm theo cặp và các ràng buộc khi kiểm thử
- Nghiên cứu thực tiễn: Đầu tiên, luận văn đưa ra phương án kết hợp hai phương pháp trước đây là “Sinh ca kiểm thử theo cặp” và “mô hình đặc trưng có ràng buộc số” Sau đó sẽ nghiên cứu và đưa ra phương án thu nhỏ số ca kiểm thử 1 cách hiệu quả cho mô hình đặc trưng có ràng buộc số dựa trên kỹ thuật kiểm thử theo cặp
Cấu trúc luận văn
Nội dung của luận văn được trình bày trong ba phần chính như sau:
1 Phần mở đầu
2 Phần nội dung: bao gồm ba chương
Chương 1: Sinh ca kiểm thử dựa trên cây đặc trưng
- Các phương pháp sinh ca kiểm thử
- Giới thiệu về cây đặc trưng
- Sinh ca kiểm thử dựa trên cây đặc trưng
Chương 2: Cây đặc trưng có ràng buộc số và sinh ca kiểm thử theo cặp
- Hạn chế của cây đặc trưng
- Mở rộng cây đặc trưng với ràng buộc số
- Phẳng hóa cây đặc trưng có ràng buộc số
- Sinh ca kiểm thử theo cặp cho cây đặc trưng có ràng buộc số
Chương 3: Cài đặt và thử nghiệm
- Cài đặt
- Kết quả thử nghiệm
- Đánh giá
3 Phần kết luận
Trang 134
CHƯƠNG 1 SINH CA KIỂM THỬ DỰA TRÊN CÂY ĐẶC
TRƯNG 1.1 Sinh ca kiểm thử tự động
Khái niệm ca kiểm thử
Trong quá trình phát triển dự án phần mềm, thông thường một quy trình kiểm thử có các bước cơ bản như sau: lập kế hoạch, thiết kế ca kiểm thử, phát triển test script, thực hiện kiểm tra và đánh giá
Hình 1.1 Một quy trình kiểm thử cơ bản
Ca kiểm thử (test case) là dữ liệu để kiểm tra hoạt động của chương trình Ca kiểm thử được thiết kế tốt là ca kiểm thử phát hiện được một lỗi của chương trình
Giai đoạn thiết kế ca kiểm thử đảm bảo tất cả các tình huống kiểm tra “quét” hết các yêu cầu cần kiểm tra Vì vậy, việc tạo ca kiểm thử hiệu quả là đặc biệt quan trọng để đảm bảo chất lượng phần mềm
1.2 Sinh ca kiểm thử hộp đen
Một số kỹ thuật tiêu biểu
Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp đen, hướng
dữ liệu, hay hướng vào/ra Kiểm thử hộp đen coi chương trình như một “hộp đen”
ta không quan tâm về cấu trúc bên trong chương trình Thay vào đó, ta tập trung vào
Lập kế
hoạch
Thiết kế
ca kiểm thử
Phát triển test script
Đánh giá Thực hiện Kiểm tra
Trang 145
tìm các trường hợp mà chương trình không thự hiện theo yêu cầu của đặc tả Do vậy, ca kiểm thử được xác định chỉ dựa vào đặc tả phần mềm
Một số kỹ thuật kiểm thử hộp đen tiêu biểu:
Phân lớp tương đương: là phương pháp kiểm thử hộp đen chia miền đầu vào
của một chương trình thành các lớp dữ liệu, từ đó suy dẫn ra các ca kiểm thử Phương pháp này cố gắng xác định ra một ca kiểm thử mà làm lộ ra một lớp lỗi, do đó làm giảm tổng số các trường hợp kiểm thử phải được xây dựng Lớp tương đương biểu thị cho tập các trạng thái hợp lệ hay không hợp
lệ đối với điều kiện vào
Phân tích giá trị biên: Trong lĩnh vực phần mềm cho chúng ta biết rằng lỗi
thường nằm ở biên (đầu hay cuối) của 1 khoảng liên tục nào đó Do đó ta sẽ tập trung tạo các ca kiểm thử ứng với những giá trị ngay tại, trên và dưới các cạnh của các lớp tương đương đầu vào và các lớp tương đương đầu ra Kinh nghiệm cho thấy các ca kiểm thử mà khảo sát tỷ mỷ các điều kiện biên có tỷ
lệ phần trăm xác định được lỗi cao hơn các ca kiểm thử khác
Kiểm thử theo cặp: Kiểm thử theo cặp là phương pháp luận văn áp dụng để
sinh ca kiểm thử cho cây đặc trưng Kỹ thuật kiểm thử theo cặp sẽ trình bày
chi tiết ở phần 1.2.2 sau đây
Kỹ thuật kiểm thử theo cặp
Kiểm thử theo cặp (pairwise testing) là một trong những phương pháp kiểm thử hộp đen, kỹ thuật kiểm thử theo cặp dựa trên một thực tế là lỗi phầm mềm thường gây ra bởi sự kết hợp của hai tham số Kiểm thử theo cặp tạo ra các ca kiểm thử phủ hết các giá trị của 2 tham số thay vì các bộ giá trị của tất cả các tham số Thực tế cho thấy, số ca kiểm thử giảm đi rất nhiều so với kiểm thử tất cả các trường hợp nhưng vẫn đảm bảo phát hiện được 70% lỗi của phần mềm
Lý do đằng sau của phương pháp này chính là lỗi thường được phủ bởi sự tương tác của hai cặp tham số, và có thể bị bắt bởi bởi kiểm thử theo cặp Kiểm thử theo cặp cũng được gọi là kiểm thử 2-way Chún ta cũng có khả năng thực hiện kiểm thử 3-way (kiểm thử dựa trên sự kết hợp của 3 tham số đầu vào) hoặc 4 way
Trang 15thử theo cặp ta có thể nhìn vào biểu đồ sau:
Hình 1.2 So sánh số ca kiểm thử giữa kiểm thử đầy đủ và kiểm thử theo
cặp
Rõ ràng, số ca kiểm thử được sinh ra bởi kỹ thuật kiểm thử theo cặp ít hơn rất nhiều so với kiểm thử tất cả các trường hợp Như vậy, kiểm thử theo cặp là kỹ thuật có thể giúp tiết kiệm được thời gian và công sức mà vẫn đảm bảo được chất lượng phần mềm ở một mức độ cao
Ta xét một ví dụ như sau:
Với phần mềm đặt hàng xe ôtô ở 3 nước Việt Nam, Mỹ và Singapor như Bảng 1.1 dưới đây
Trang 167
Số đăng ký xe Valid Invalid
Bảng 1.1 Đầu vào của phần mềm đặt hàng xe oto
Theo Bảng 1.1, thì (Mua, Việt Nam) là một bộ giá trị kết hợp của 2 tham số (Loại đặt hàng, Địa điểm) Ta có 4x2x3x3 = 72 tổ hợp hai tham số cho Bảng 1.1 Cũng có nghĩa là cần 72 ca kiểm thử để kiểm tra tất cả các trường hợp Nhưng với
kỹ thuật sinh ca kiểm thử theo cặp thì ta có thể tạo ra số ca kiểm thử nhỏ hơn mà vẫn đảm bảo phủ đầy đủ hết các cặp giá trị
Đây là một ví dụ nhỏ mà chúng ta có thể thực hiện được bằng tay Bây giờ, hãy bắt đầu với một bảng dữ liệu chứa tất cả các tổ hợp của 2 tham số có giá trị dài
nhất là Địa điểm và Loại xe:
Trang 178
Theo bảng 1.2 thì ta có 4x3 = 12 tổ hợp giá trị của 2 tham số Địa điểm và Loại xe Tiếp theo, chúng ta điền các giá trị của tham số Loại đặt hàng tương ứng
với các tổ hợp ở bảng 1-2 để phủ tất cả những cặp giá trị của nó với cả 2 tham số
Địa điểm và Loại xe cùng lúc như bảng 1.3 dưới đây
các tham số còn lại như bảng 1-4 dưới đây
Trang 189
Bảng 1.4 Các cặp kết hợp của tất cả các tham số đầu vào
Như vậy, bằng việc áp dụng kỹ thuật sinh ca kiểm thử theo cặp thì chúng ta
có tất cả 12 ca kiểm thử, ít hơn rất nhiều so với 72 ca kiểm thử sinh ra bằng việc kết hợp tất cả các tham số đầu vào
1.3 Cây đặc trưng
Một xu hướng trong phát triển phần mềm là phát triển nhiều sản phẩm phần mềm tương tự thay vì chỉ là một sản phẩm cá nhân riêng lẻ Có nhiều lý do cho việc này Đối với các sản phẩm được phát triển cho thị trường quốc tế phải được thiết kế sao cho phù hợp với các nền văn hóa khác nhau, cũng như cho các ngôn ngữ khác nhau, và phải cung cấp giao diện tương thích với người dùng Do chi phí và thời gian hạn chế thì việc phát triển một sản phẩm mới từ đầu cho mỗi khách hàng mới
là không thể, và do đó việc tái sử dụng phần mềm được tăng lên Dòng sản phẩm phần mềm - Software Product Line (SPL) cung cấp một giải pháp cho những vấn đề này
Dòng sản phẩm phần mềm thường được mô hình hóa bằng cây đặc trưng Hình 1.3 là một ví dụ về cây đặc trưng được lấy từ trang [http://www.splot-
trưng cho đơn giản và phù hợp với ví dụ của luận văn
Trang 1910
Hình 1.3 Cây đặc trưng cho dòng sản phẩm phần mềm Laptop
Cây đặc trưng được mô tả một tập các đặc trung trong dòng sản phẩm phần mềm và các mỗi quan hệ, ràng buộc giữa các đặc trưng đó Nói cách khác, cây đặc trưng là mô hình đại diện cho thông tin của tất cả các sản phẩm của một dòng sản phẩm phần mềm về đặc trưng và mối quan hệ giữa chúng
Cây đặc trưng được biểu diễn dưới dạng phân cấp các đặc trưng và được tạo bởi 2 yếu tố:
Mối quan hệ: mô tả mối quan hệ giữa các đặc trưng của cây
Kiểu ràng buộc: mô tả các kiểu ràng buộc giữa các đặc trưng
Có 4 loại đặc trưng là:
1, Đặc trưng Mandatory (Bắt buộc): Một đặc trưng con có quan hệ bắt
buộc với cha của nó khi đặc trưng con phải có trong mọi sản phẩm mà cha nó xuất
Trang 2011
hiện Như trong Hình 1.3 thì đặc trưng “HDD” là bắt buộc phải có trong 1 sản phẩm
máy tính xách tay
2, Đặc trưng Optional (Tùy chọn): Một đặc trưng con có quan hệ tùy chọn
với cha của nó khi đặc trưng đó có thể có hoặc không có trong các sản phẩm mà cha
nó xuất hiện Như trong Hình 1.3 thì đặc trưng “Connectivity” có thể tùy chọn trong
1 sản phẩm máy tính xách tay
3, Nhóm đặc trưng Alternative (Thay thế): Một trong các đặc trưng con
phải được lựa chọn Trong Hình 1.3 thì “HDD” có thể là “160”, “250”, “500” tức
là dung lương ổ cứng có thể là 160GB, 250GB hoặc 500GB nhưng chỉ được chọn
một trong các tùy chọn đó
4, Nhóm đặc trưng Or (Hoặc): Một tập đặc trưng con có quen hệ hoặc với
đặc trưng cha khi một hoặc nhiều đặc trưng con được lựa chọn trong sản phẩm mà
đặc trưng cha được lựa chọn Trong Hình 1.3, đặc trưng “Connectivity” có thể hỗ trợ đặc trưng “Bluetooth” hoặc “Wifi” hoặc hỗ trợ cả hai tính năng này
Có 2 loại ràng buộc là:
1, Ràng buộc Requires (Yêu cầu): Đặc trưng A yêu cầu đặc trưng B, tồn tại
A trong một sản phẩm thì mặc định B cũng phải có trong sản phẩm đó Như trong
Hình 1.3 thì máy tính xách tay đã có “CellType” là cạc rời “Integration” thì phải
hỗ trợ “Monitor” là “GW10”
2, Ràng buộc Excludes (Loại trừ): Đặc trưng A không bao gồm đặc trưng
B, tồn tại A trong một sản phẩm thì không tồn tại B trong một sản phẩm hay nói cách khác A và B không thể cùng tồn tại trên một sản phẩm Hình 1.3 cho thấy tính
năng “Bluetooth” và “GraphicCard” được tích hợp “Onboard” là không tương
thích trên một dòng máy tính xách tay
1.4 Cây đặc trưng trong kiểm thử phần mềm
Trong [5], tác giả đã đưa ra một phương pháp dựa trên kỹ thuật FOT (Feature Oriented Testing) Phương pháp này nhằm hỗ trợ người kiểm thử thiết kế các mô hình kiểm thử hiệu quả hơn
Trang 2112
a, Khái niệm
Cây đặc trưng cho kiểm thử (Feature Tree for Testing - FTT) là một cấu trúc cây logic bao gồm 4 nút Mandatory-Althernative-Or-Optional Trong đó, nút Alternative được xem như tham số và con của nó là các giá trị của tham số đó Nút Alternative được xem như phân tách miền dữ liệu lớn ra thành các miền dữ liệu con
Ngoài ra, FTT có 2 loại ràng buộc giữa các nút trên cây là “loại trừ” (excludes – exe) và cần (requires – req) gọi là ràng buộc trên cây (cross-tree-constraint – CTC) Ràng buộc loại trừ (“a exc b”) là quan hệ có hướng giữa hai nút trong một cây logic, tức là a và b không được cùng xuất hiện trong một ca kiểm thử Ràng buôc cần (“a req b”) là quan hệ có hương giữa hai nút trong một cây logic, nếu a xuất hiện trong một ca kiểm thử thì b cũng cần xuất hiện trong ca kiểm thử
đó
b, Sinh ca kiểm thử theo cặp cho cây đặc trưng
Kiểm thử theo cặp chỉ tạo các ca kiểm thử phủ hết các cặp giá trị của 2 tham
số thay vì các bộ giá trị của tất cả các tham số Chính vì vậy mà kiểm thử theo cặp
là một trong những phương pháp hiệu quả để sinh ca kiểm thử cho mô hình đặc trưng
c, Đánh giá
Rõ ràng, việc sinh ca kiểm thử cho cây đặc trưng với ràng buộc logic đã làm giảm đáng kể số lượng ca kiểm thử, giúp tiết kiệm thời gian và công sức kiểm thử Tuy nhiên, đối với bài toán có số ràng buộc càng lớn thì thời gian thực hiện càng lâu Đối với các ràng buộc số phức tạp thì không thể biểu diễn được dẫn đến một số đầu vào ca kiểm thử bị trùng lặp hoặc không tồn tại
1.5 Kết luận chương
Chương này đã nêu các khái niệm về kiểm thử cũng như các phương pháp sinh ca kiểm thử nói chung và kiểm thử hộp đen nói riêng Đồng thời, khái niệm về phương pháp sinh ca kiểm thử theo cặp được trình bày Kiểm thử theo cặp nhằm
Trang 2213
giảm bớt số lượng các ca kiểm thử mà vẫn đảm bảo chất lượng phần mềm Cuối
cùng, chương này giới thiệu khái niệm về cây đặc trưng, phương pháp biểu diễn cây
đặc trưng và phương thức ứng dụng cây đặc trưng vào kiểm thử
Trang 2314
CHƯƠNG 2 CÂY ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ VÀ
SINH CA KIỂM THỬ THEO CẶP 2.1 Cây đặc trưng có ràng buộc số
Hạn chế của cây đặc trưng
Cây đặc trưng truyền thống chỉ cho phép dùng các ràng buộc logic Khi cần
xử lý các giá trị số, FTT với đặc trưng số ở mục trước có một số khó khăn: (1) cần tính bằng tay để giải các ràng buộc số, (2) không thể biểu diễn các ràng buộc số phức tạp dẫn đến ca kiểm thử bị lặp hoặc không tồn tại
Ví dụ sau trình bày hạn chế của FTT chỉ có đặc trưng boolean:
- Với đầu vào ca kiểm thử FOT (HDD, GraphicCard) ta cần phải gán các giá trị cụ thể ứng với HDD là một trong các giá trị {160, 250, 500} thì GraphicCard = Removeable Do cây đặc trưng chỉ biểu diễn được các ràng
buộc logic, nên ta phải giải các ràng buộc này bằng tay, ta sẽ thu được đầu vào ca kiểm thử cụ thể
- Với đầu vào ca kiểm thử FOT (HDD, Graphicard) ta có ràng buộc HDD là một trong các giá trị {160, 250, 500} thì Monitor > 17inch Do không thể gán các giá trị Monitor > 17inch Do vậy, đầu vào ca kiểm thử FOT này là
không hợp lệ
Như vậy ta có nhận xét như sau:
- Cần tính bằng tay để giải các ràng buộc số để tìm ra giá trị cụ thể
- Một số đầu vào ca kiểm thử FTT là không khả thi vì CTC constraint) hiện tại không thể biểu diễn được đầy đủ các ràng buộc, đặc biệt
(cross-tree-là ràng buộc số
Mở rộng cây đặc trưng với ràng buộc số
Để giải quyết 2 vấn đề nêu trên, đồng thời khắc phục được nhược điểm như luận văn đã trình bày ở phần 2.4, [6] đã đề xuất một cây đặc trưng mới cho phép biểu diễn các đặc trưng và các ràng buộc số Nhờ vậy, ta có thể biểu diễn cả giá trị boolean (như của FTT) và các giá trị số
Trang 2415
Với mô hình đặc trưng truyền thống, giá trị của các đặc trưng được biểu diễn ở dạng logic (hay true-false) Tuy nhiên trong thực tế có nhiều bài toán đặt ra yêu cầu cần giải quyết, nếu chỉ áp dụng mô hình đặc trưng cơ bản thì không thể thực hiện được hết các yêu cầu của bài toán đặt ra (có thêm các ràng buộc số đi kèm) Do
đó việc mở rộng từ mô hình đặc trưng cơ bản này cùng các yêu cầu ràng buộc là cần thiết, ví dụ sau đây tôi sẽ trình bày một bài toán trong thực tế mà mô hình đặc trưng
cơ bản chưa giải quyết được
Ví dụ: Cấu trúc của máy tính xách tay (Laptop) được hình thành từ các bộ phận như pin (Battery), thiết bị ngoại vi (IO), dung lượng ổ cứng tính theo GB (HDD), cạc màn hình (GraphicCard), kết nối ngoại vi (Connectivity), kích thước màn hình (Monitor) Ổ cứng (HDD) có các loại 160GB, 250GB, 500GB Màn hình
có các kích cỡ GW17 inch, GW10 inch Kết nối ngoại vi gồm wifi và bluetooth Cạc màn hình gồm cạc rời (Removeable) và tích hợp (Onboard) Với các điều kiện ràng
buộc như sau:
Nếu (Connectivity) là (Bluetooth) thì bắt buộc (GraphicCard) phải là dạng
(Onboard)
Nếu (HDD) là (160GB hoặc 250GB) thì (Monitor) phải là (GW10)
Rõ ràng, với bài toán Laptop trên, với các cách biểu diễn truyền thống thì các điều kiện ràng buộc phức tạp không thể biểu diễn được Chính vì thế, việc mở rộng
mô hình đặc trưng cùng các yêu cầu ràng buộc là cần thiết Phần 2.1.2, học viên nghiên cứu công thức mở rộng và các điều kiện kèm theo để mở rộng cho cây đặc trưng như sau:
a, Ràng buộc “require”:
Trong đó:
˗ A là một đặc trưng của cây, quan hệ của A và các đặc trưng con
là Alternative
˗ Ax là 1 đặc trưng con dạng số của A
˗ B là một đặc trưng của cây, B có các nút con là là các giá trị số, quan hệ B với các đặc trưng con là quan hệ OR
IF ( A R num "A x ") THEN ( B R num "B x " )
Trang 25˗ Ax là 1 đặc trưng con dạng số của A
˗ B là một đặc trưng của cây, B có các nút con là là các giá trị số, quan hệ B với các đặc trưng con là quan hệ OR
˗ Bx là 1 đặc trưng con của B
NOT ( A R num "A x ") AND ( B R num "B x " )
Trang 2617
Tuy nhiên mô hình đặc trưng của dòng sản phẩm phần mềm là một cấu trúc cây phân cấp nhiều mức Mô hình đặc trưng ở Hình 1.3 chính là một cấu trúc cây phân cấp nhiều mức Trong khi đó, phương pháp kiểm thử theo cặp chỉ áp dụng được cho những cấu trúc cây 2 mức Do đó để áp dụng được phương pháp này chúng ta phải phẳng hóa cây nhiều mức đó thành cây 2 mức (chỉ gồm nút gốc và con)
Cụ thể để sinh ca kiểm thử cho mô hình đặc trưng ta thực hiện theo các bước sau:
Bước 1 Phẳng hóa cây mô hình đặc trưng sử dụng thuật toán phẳng hóa cây Bước 2 Từ mô hình đặc trưng đã phẳng hóa sinh ra đầu vào cho tool PICT
(Pairwise Independent Combinatorial Testing tool)
Bước 3 Dùng tool PICT để sinh ra ca kiểm thử
Bước 4 Chuyển ca kiểm thử được sinh bằng tool PICT thành ca kiểm thử
thực tế
Sơ đồ sau biểu diễn quá trình sinh ca kiểm thử cho mô hình đặc trưng:
Hình 2.1 Quá trình sinh ca kiểm thử cho mô hình đặc trưng
Phẳng hóa cây đặc trưng
Sinh đầu vào cho tool PICT
Sinh ca kiểm thử theo cặp bằng PICT
Chuyển thành ca kiểm thử của cây ban đầu
Mô hình thực hiện ở PICT
Cây một mức Cây một mức
Trang 2718
Phẳng hóa cây đặc trưng có ràng buộc số
Rõ ràng, phẳng hóa cây là hoạt động quan trọng nhất trong quá trình sinh ca kiểm thử cho mô hình đặc trưng Tuy nhiên, việc phẳng hóa cây chỉ áp dụng cho
cây đặc trưng chỉ với hai ràng buộc requires và excludes Điều này dẫn tới hạn chế
khi đưa ra các luật phẳng hóa cây Đồng thời, ta không thể áp dụng các luật trên vào cây đặc trưng với ràng buộc phức tạp hơn như ràng buộc số
Để giải quyết khó khăn này [6] đã đưa ra một thuật toán để áp dụng các luật phẳng hóa vào cây đặc trưng với ràng buộc số Mục đích của thuật toán này là làm giảm độ sâu của mô hình đặc trưng, sau đó gắn thêm tham số với những giá trị tương ứng với tham số đó Chuyển đổi này có thể dễ dàng ứng dụng cho những loại khác nhau của mô hình đặc trưng
a, Thuật toán phẳng hóa
Thuật toán phẳng hóa được thực hiện theo 2 bước sau:
Bước 1: Mọi đặc trưng với các quan hệ và ràng buộc liên quan đều được kéo
lên tới khi nó được đặt trực tiếp bên dưới nút gốc Mọi đặc trưng sau đó được coi như những tham số
Bước 2: Sau đó, thuật toán gán cho mọi tham số những giá trị tương ứng của
nó
Có một số luật sẽ kiểm soát quá trình chuyển đổi này Chúng được áp dụng
đệ quy tới khi chúng ta thu được cây 2 mức của mô hình đặc trưng Một cây con
luôn luôn gồm 3 mức: nút gốc, nút con mức 1, nút con mức 2 Mỗi nút gốc có thể có
vài nút cha và mỗi nút cha có thể có một tập hữu hạn các nút con Để phẳng hóa một cây con, những nút con được đẩy lên mức của nút cha Để đảm bảo tính đúng đắn, nếu cần thiết ta có thể có thêm nhiều ràng buộc phụ thuộc trong một cây
b, Các luật phẳng hóa
Cây đặc trưng của chúng ta gồm 4 loại quan hệ Đối với mỗi sự kết hợp của các quan hệ cha con thì một luật chuyển đổi được yêu cầu Các luật này được áp dụng lặp đi lặp lại cho tới khi ta thu được cây đặc trưng 1 mức Vì vậy cần 4x4 = 16 luật
Trang 28Coi biến boolean có giá trị {0,1}: { 0 = true, 1 = false}
-∞ là số interger nhỏ nhất biểu diễn được
Gọi r là nút gốc, p là con của r và c là con của p
(c) trong các biểu thức ràng buộc
Tóm tắt:
- Xoá c khỏi danh sách con của p
- Thêm danh sách con của c vào p
- Chuyển c thành p trong các biểu thức ràng buộc
- Value (p mới) = value (p cũ) value (c)
- Xoá c khỏi danh sách nút của cây
Trang 2920
Biếu thức ban đầu:
Laptop = |+| Battery |+| Monitor |+| IO
Biểu thức sau khi biến đổi:
Laptop = |+| Battery |+| Monitor |+|
Trang 3021
Trên đây là biểu thức ban đầu và biểu thức sau khi phẳng hóa cây đặc trưng
Laptop Do nút Celltype là Maldatory có 2 nút con Alternative group Integration, Separation Vì vậy khi phẳng hóa, ta chuyển Integration, Separation thành con của Battery Xóa Celltype ra khỏi cây ban đầu Các điểm thay đổi, học viên đã đánh dấu
bằng gạch chân như trên Hình 2.2 dưới đây là cây Laptop sau khi phẳng hóa theo Luật 1
Hình 2.2 Cây sau khi phẳng hóa với c là Maldatory, p bất kỳ
Luật 2 c là optional, p là Mandatory
Do c là Optional, nghĩa là c là đặc trưng được tùy chọn trong cây, đồng thời,
p là Maldatory, do vậy, ta có thể chuyển c ngang hàng với p Lúc này c là con của r
Tóm tắt:
- Chuyển c thành con của r
Trang 3122
Ví dụ:
Biếu thức ban đầu:
Laptop = |+| Battery |+| Monitor |+| IO;
Battery = (|*| Integration |*| Separation);
Monitor = |*| EE16 |*| EE13 |*| GW10 |*|
Biểu thức sau khi biến đổi:
Laptop = |+| Battery |+| Monitor |-|
Camera;
Battery = (|*| Integration |*| Separation); Monitor = |*| EE16 |*| EE13 |*| GW10 |*| GW17;
Do Camera là Optional, IO là Maldatory, nên ta chuyển Camera thành con của Laptop và ngang hàng với IO Hình 2.3 dưới đây là cây Laptop sau khi phẳng
hóa bởi Luật 1 và Luật 2
Trang 3223
Hình 2.3 Cây sau khi phẳng hóa với c là Optional, p là Maldatory
Luật 3 c là optional, p là Optional
Do c là Optional, nghĩa là c là đặc trưng được tùy chọn trong cây, đồng thời,
p là Optional cũng là đặc trưng tùy chọn, do vậy, ta có thể chuyển c ngang hàng với
p Lúc này c là con của r Để đảm bảo ngữ nghĩa, khi chuyển c ngang hàng với p ta cần thêm ràng buộc “c p” trên cây
Tóm tắt:
- Chuyển c thành con của r
- Thêm ràng buộc: c p
Trang 3324
Ví dụ:
Biếu thức ban đầu:
Laptop = |+| Battery |+| Monitor |-|
Camera;
Battery = (|*| Integration |*| Separation);
Monitor = |*| EE16 |*| EE13 |*| GW10 |*|
Biểu thức sau khi biến đổi:
Laptop = |+| Battery |+| Monitor |-| Camera |-| WithLed;
#constraint:
IF (HDD = "160" OR HDD = "250") THEN (Monitor = "GW10");
IF (Laptop = “Camera”) THEN (Laptop = “WithLed”);
Do Withled là Optional là con của Camera (Camera cũng là Optinal), nên khi phẳng hóa, ta chuyển Withled thành con của Laptop và ngang hàng với Camera,
ta thêm ràng buộc IF (Laptop = “Camera”) THEN (Laptop = “WithLed”) vào cây
Trang 3425
Hình 2.4 dưới dây là cây sau khi sử dụng Luật 4 để phẳng hóa cây ở Hình 2.3
Hình 2.4 Cây sau khi phẳng hóa với c là Optional, p là Optional
Luật 4 c là optional, p là alternative
- Làm giống Luật 3
Do c là Optional, nghĩa là c là đặc trưng được tùy chọn trong cây, đồng thời,
p là Alternative là đặc trưng thay thế, do vậy, ta có thể chuyển c ngang hàng với p Lúc này c là con của r Để đảm bảo ngữ nghĩa, khi chuyển c ngang hàng với p ta cần thêm ràng buộc “c p” trên cây
Luật 5 c là optional, p là or
- Làm giống Luật 3
Do c là Optional, nghĩa là c là đặc trưng được tùy chọn trong cây, đồng thời,
p là Or, do vậy, ta có thể chuyển c ngang hàng với p Lúc này c là con của r Để đảm bảo ngữ nghĩa, khi chuyển c ngang hàng với p ta cần thêm ràng buộc “c p” trên cây
Trang 3526
Do (c 1 , …, c n ) là Alternative group, nghĩa là (c 1 , …, c n ) là nhóm đặc trưng thay thế trong cây Đồng thời, p là Maldatory, do vậy, ta có thể chuyển (c 1 , …, c n ) ngang hàng với p Lúc này (c1, …, cn) là con của r
Tóm tắt:
- Chuyển cả nhóm (c 1 , …, c n ) thành con của r
Ví dụ:
Biếu thức ban đầu:
Laptop = |+| Battery |+| Monitor |-|
Camera |-| WithLed |+| Keyboard |+|
Biểu thức sau khi biến đổi:
Laptop = |+| Battery |+| Monitor | Camera
|-| WithLed |-|*|-| EE16 |-|*|-| EE13 |-|*|-| GW10 |-|*|-|
IF (Laptop = “Camera”) THEN (Laptop =
“WithLed”);
Trang 36hóa theo Luật 6
Hình 2.5 Cây sau khi phẳng hóa với c là Alternative group, c là
Maldatory
Luật 7 (c1, …, cn) là Alternative group, p là Optional
Do (c 1 , …, c n ) là Alternative group, nghĩa là (c 1 , …, c n ) là nhóm đặc trưng thay thế trong cây Đồng thời, p là Optinal, do vậy, ta có thể chuyển (c 1 , …, c n ) ngang hàng với p Lúc này (c 1 , …, c n ) là con của r Để đảm bảo ngữ nghĩa, ta bổ