Cặp đôi: Các cặp đôi bất kỳ 2 biến là: Stt Cặp 1 (True, 0) 2 (True, 5) 3 (False, 0) 4 (False, 5) 5 (True, Q) 6 (True, R) 7 (False, Q) 8 (False, R) 9 (0, Q) 10 (0, R) 11 (5, Q) 12 (5, R) Bảng 1.7Số cặp đôi của hệ thống S Và sẽ tạo ra đƣợc Stt X Y Z 1 True 0 Q 2 True 5 R 3 False 0 Q 4 False 5 R
Theo phƣơng pháp cặp 3/ Cặp N sẽ có các cặp là: Stt Cặp 1 (True, 0, p) 2 (True, 0, Q) 3 (False, 0, P) 4 (False, 0, Q) 5 (True, 5, P) 6 (True, 5, Q) 7 (False, 5, P) 8 (False, 5, Q) Bảng1.9Số cặp 3 của hệ thống S
Tạo ra 8 ca kiểm thử với bộ dữ liệu nhƣ sau:
Stt X Y Z 1 True 0 Q 2 False 0 Q 3 False 0 P 4 True 5 Q 5 False 5 P 6 True 0 P 7 False 5 Q 8 True 5 P
Bảng 1.10Số ca kiểm thử hệ thống S cho kỹ thuật cặp 3
Ví dụ 2.Áp dụng với chức năng setting của skype trên hình vẽ trên.
Cặp 1 sẽ có số ca kiểm thử:
Stt Allow call from Automatical receive video Allow ims from Keep heep history accept skype browser Allow microft tar.. 1 anyone People in my contact list
only
People in may
contact3 foever False False
2 people in my contact list only Anyone Anyone 3 month True True
3 people in my contact list only Anyone Anyone 1 month True True
4 people in my contact list only Anyone Anyone 2 week True True
5 people in my contact list only Anyone Anyone No history True True
Cặp đôi sẽ có số ca kiểm thử: Stt Allow call from
Automatical receive video Allow ims from Keep heep history accept skype browser Allow microft tar.. 1 people in my contact list only People in my contact list
only
People in may
contact3 foever True True
2 anyone Anyone People in may contact3 2 week True True
3 people in my contact list only Anyone People in may contact3 3 month False False
4 anyone Anyone Anyone No history False True
5 anyone People in my contact list
only Anyone 1 month True False
6 people in my contact list only
People in my contact list only
Anyone 2 week False False
7 anyone People in my contact list
only Anyone No history True False
8 people in my contact list only
People in my contact list only
People in may
contact3 3 month True True
9 people in my contact list only Anyone People in may contact3 No history False True
10 people in my contact list only Anyone People in may contact3 1 month False True
11 anyone Anyone Anyone 3 month False False
12 anyone Anyone Anyone foever False False
Bảng 1.12Số ca kiểm thử chức năng setting privacy của skype cho kỹ thuật cặp đôi. Cặp 3 sẽ có số ca kiểm thử:
Stt Allow call from receive video Automatical Allow ims from Keep heep history
accept skype browser
Allow microft tar.. 1 people in my contact list
only People in my contact list only People in may
contact3 No history True False
2 anyone People in my contact list only
People in may contact3
1 month True True
3 people in my contact list only People in my contact list only People in may
contact3 foever False True
4 anyone Anyone People in may contact3
No history False True
5 anyone Anyone Anyone 2 week False True
6 people in my contact list
only Anyone
People in may
7
people in my contact list
only Anyone Anyone 3 month True False
8 people in my contact list only People in my contact list only
Anyone 3 month False False
9 anyone Anyone Anyone No history False False
10 people in my contact list only
People in my contact list
only Anyone foever True False
11 people in my contact list only People in my contact list only People in may
contact3 3 month False True
12 anyone
People in my contact list
only Anyone 2 week False True
13 anyone People in my contact list only
People in may contact3
foever True False
14 people in my contact list only
People in my contact list
only Anyone 1 month True True
15 anyone People in my contact list only
People in may contact3
3 month True True
16 anyone Anyone Anyone foever False True
17 people in my contact list
only Anyone Anyone No history True True
18
people in my contact list only
Anyone People in may contact3
1 month False True
19 people in my contact list only
People in my contact list
only Anyone 2 week False False
20 anyone People in my contact list only
Anyone 2 week True False
21 people in my contact list
only Anyone
People in may
contact3 foever False False
22 anyone Anyone Anyone 1 month False False
23 anyone People in my contact list only
People in may contact3
1 month True False
24 anyone Anyone People in may
contact3 3 month True True
25
people in my contact list only
Anyone People in may contact3
1 month True False
26 anyone Anyone People in may
contact3 3 month False False
27
people in my contact list only
Anyone People in may contact3
foever True True
only 29 people in my contact list only People in my contact list only
Anyone 1 month False False
30 anyone People in my contact list
only Anyone 3 month True True
31 anyone People in my contact list only
People in may contact3
2 week False False
32 people in my contact list only People in my contact list only People in may
contact3 No history False False
33 anyone Anyone Anyone 2 week True False
Bảng 1.13Số ca kiểm thử chức năng setting privacy của skype cho kỹ thuật cặp 3 N wise thì sẽ có tổng số: 2 *3*2*5*2*2 = 240 ca kiểm thử.
CHƢƠNG 2: KIỂM THỬ CẶP ĐÔI DỮ LIỆU(PAIRWISE TESTING) 2.1 Tổng quan
Pairwise testing là chiến lƣợc kiểm thử trong kiểm thử tổ hợp đƣợc trình bàytrong mục (1.7) của chƣơng 1. Nó thuộc phạm vi của kiểm thử chức năng. Mục đích của nó là tạo ra bộ dữ liệu kiểm thử có kích thƣớc nhỏ nhƣng có thể phủ (cover) đƣợc nhiều lỗi nhất có thể. Kỹ thuật này đƣợc biết đến gần 20 năm nay, nhƣng nó chỉ phổ biến và gia tăng trong vòng 5 năm nay và hiện nay đã trở thành một kỹ thuật không thể thiếu trong kiểm thử phần mềm.
Nhiều kỹ thuật nhƣ là phân tích giá trị biên và phân vùng tƣơng đƣơng đã nói trong chƣơng một, giúp cho việc chuyển đổi số lƣợng lớn của biến vào trong một tập nhỏ hơn nhiều. Và qua nhiều năm một số chiến lƣợc kết hợp đã đƣợc đƣa ra để giúp nhân viên kiểm thử chọn lựa đƣợc tập con của tổ input đầu vào nhƣ random testing, each-choice and base choice và cuối cùng chiến lƣợc T-wise testing, với pairwise testing đã trở thành mạnh nhất trong số này.
Chƣơng này trình bày về kiểm thử cặp đôi dữ liệu với 2 kỹ thuật cơ bản là mảng trực giao(orthogonal array) và thứ tự tham số (In parameter order)[7, pp.222- 259], cùng với công cụ sinh ra bộ dữ liệu kiểm thử theo kỹ thuật pairwise đó là PICT[4].
2.2Kiểm thử cặp đôi dữ liệu (Parirwise testing)
Đầu tiên tôi xin nhấn mạnh lại về mục đích của chiến lƣợc: Tạo ra bộ dữ liệu ít nhƣng có thể cover đƣợc nhiều lỗi nhất có thể.
Vídụ: Ta xét 3 biến X,Y,Z là 3 biến đầu vào của hệ thống S. D(X) = {True, False}
D(Y) = {0, 5} D(Z)={Q, R}
Theo N wise/ all wise hay all-combination testing. Tổng số trƣờng hợp kiểm thử là = 2x2x2=8 vector kiểm thử: Stt X Y Z 1 True 0 Q 2 True 0 R 3 True 5 Q 4 True 5 R 5 False 0 Q 6 False 0 R 7 False 5 Q 8 False 5 R
Nhƣng với pairwise testing ta sẽ chỉ cố 4 vector: Stt X Giá Y Giá trị Z 1 True 0 Q 2 True 5 R 3 False 0 Q 4 False 5 R
Bảng 2.2Tổng số ca kiểm thửtheo phƣơng pháp pairwise.
Một câu hỏi đƣợc đặt ra, chúng ta tạo ra 4 ca kiểm thử trên bằng cách nào?Và cái ý nghĩa của pairwise đƣợc thể hiện trong đó ra sao.Để trả lời câu hỏi đó chúng ta sẽ đi nghiên cứu 2 phƣơng pháp kỹ thuật mảng trực giao (Orthogonal array) và thứ tự tham số (In parameter order).
2.2.1 Mảng trực giao (Orthogonal array (Lrun(Leverfactors))) a. Tổng quát a. Tổng quát
Phƣơng pháp đƣợc nghiên cứu bởi nhà thống kê CR.Raoo va sau năm 1940 Genichi Tagumi là ngƣời đầu tiên sử dụng ý tƣởng mảng trực giao trong những thiết kế thí nghiệm về quản lý chất lƣợng toàn diện (total quality management). Vì vậy mà phƣơng pháp này đƣợc biết đến là phƣơng pháp Tagumi, đã đƣợc sử dụng trong những kỹ thuật thiết kế thử nghiệm trong lĩnh vực sản xuất và cung cấp một cách có hiệu quả, hệ thống để tối ƣu hóa thiết kế đảm bảo hiệu xuất, chất lƣợng và chi phí.
Phƣơng pháp đƣợc sử dụng thành công tại nhật và mỹ, với mục tiêu là thiết kế có độ tin cậy cao, chất lƣợng sản phẩm cao với chi phí thấp trong ngành công nghiệp điện tử ô tô và tiêu dùng.
Mandl là ngƣời đầu tiên sử dụng khái niệm của mảng trực giao trong việc thiết kế các ca kiểm thử của pairwise.
b. Ƣu và nhƣợc điểm của phƣơng pháp. Ƣu điểm của phƣơng pháp:
Đảm bảo sự kết hợp của tất cả các biến đƣợc lựa chọn.
Tạo ra một bộ dữ liệu cho ca kiểm thử hiệu quả và ngắn gọn.
Tạo ra một tập dữ liệu các ca kiểm thửcó sự phân bốđồng đều của tất cả các sự kết hợp trong kỹ thuật pairwise.
Đơn giản để tạo ra và ít lỗi so với đƣợc tạo bằng tay (phƣơng pháp khác).
Nhƣợc điểm của phƣơng pháp:
Không phải cái gì cũng có thể sử dụng.
Không phải tất cả đểu có thể áp dụng kỹ thuật này. Ví dụ nhƣ kỹ thuật này chỉ áp dụng đối với các biến rời rạc.
c. Các bƣớc của phƣơng pháp mảng trực giao:
Bƣớc 1: Xác định số lớn nhất (max) của biến độc lập của hệ thống. Số này sẽ đƣợc gán làm factors. 1 biến đầu vào sẽ là 1 factor.
Bƣớc 2: Xác định số lớn nhất giá trị của mỗi biến đầu vào. Số này đƣợc gán là Levels của mảng trực giao.
Bƣớc 3: Tìm mảng trƣc giao phù hợp với số run nhỏ nhất.
Ta có Lrun(xy) trong đó x: Levers, y: Factors, (Lrun(Leverfactors)) Trong bảng này ta sẽ có:
Runs: Số lƣợng của hàng trong mảng, cũng chính là sốca kiểm thửđƣợc tạo ra bởi phƣơng pháp OA này.
Factors: Số cột của mảng trực giao.
Levers: Số lớn nhất của values, đƣợc mang bởi một bất kỳ một factor đơn nào đó.
Bƣớc 4: Ánh xạ mỗi biến vào 1 factors và mỗi giá trị vào 1 levers trên bảng
Bƣớc 5: Kiểm ta bất cứ levers còn lại trong mảng chƣa đƣợc ánh xạ. Chọn một giá trị hợp lệ tùy ý.
Bƣớc 6: Chuyển đổi run thành ca kiểm thử.
d. Một số mảng trực giao.
Sau đây là bảng giúp cho việc lựa chọn mảng trực giao phù hợp:
Một số ví dụ về chi tiết của mảng trực giao: L4(23)
Hình 2.2Mảng trực giao L4(23)
L9 (34)
Hình 2.3Mảng trực giao L9 (34).
Một số mẫu bảng khác có thể tham khảo tại 2 tài liệu tham khảo [10] và [11].
e. Ví dụ
Hãy xem xét một trang web, đƣợc xem trên một số trình duyệt và với một vài plugin và một số hệ điều hành, thông qua một số kết nối khác nhau nhƣ sau:
Browser Netscape, IE, FF
Plug in Real player, media player
Os Window, linux,macintosh.
Connection Lan,PPP, Isps
Bƣớc 1: Có 4 biến độc lập, là Browser, Plug-in, Os,Connecter ---Factor =4.
Bƣớc 2: Mỗi biến mang 2 hoặc 3 giá trị, maxvalue = 3,lever=3.
Bƣớc 3: Chọn mảng trực giao phù hợp là L9(34) Factors Runs 1 2 3 4 1 1 1 1 1 2 1 2 2 2 3 1 3 3 3 4 2 1 2 3 5 2 2 3 1 6 2 3 1 2 7 3 1 3 2 8 3 2 1 3 9 3 3 2 1
Bƣớc 4: Ánh xạ các biến vào các factors, các giá trị vào các levers. Theo thứ tự: Browser =1; plug-in =2; connection =3; Và tƣơng ứng
Netscape =1; IE=2, FF=3 Real player=1, media player =2 Window=1, linux=2,macintosh=3 Lan=1,PPP=2, Isps=3
Ta sẽ đƣợc mảng trực giao sau đây.
Factors
Run Browsers Phug-in OS Connection
1 Netscape Realplayer Window Lan
2 Netscape 2 Linux PPP
3 Netscape Mediaplayer Macintosh Isdn
4 IE Realplayer Linux Isdn
5 IE 2 Macintosh Lan
6 IE Mediaplayer Window PPP
7 FF Realplayer Macintosh PPP
8 FF 2 Window Isdn
Bƣớc 5: Yếu tố Phug-in có 3 mức, nhƣng chỉ có 2 giá trị cho biến đƣợc ánh xạ, 1. Chúng ta phải cung cấp một giá trị trong ô, việc lựa chọn giá trị tùy ý nhƣng phải coverage. Bắt đầu ở phía trên của cột phug-in và vòng thông qua các giá trị có thể khi điền vào left-over. Chúng ta có bảng sau:
Factors
Runs Browsers Phug-in OS Connection
1 Netscape Realplayer Window Lan
2 Netscape Readplayer Linux PPP
3 Netscape Mediaplayer Macintosh Isdn
4 IE Readplayer Linux Isdn
5 IE Mediaplayer Macintosh Lan
6 IE Mediaplayer Window PPP
7 FF Readplayer Macintosh PPP
8 FF Readplayer Window Isdn
9 FF Mediaplayer Linux Lan
Bƣớc 6: Tạo ra 9 ca kiểm thử từ 9 run.
Mỗi browsers sẽ kiểm đƣợc kiểm tra ở tất cả các Plug-in, tất cả OS và Connection.
Mỗi plug-in sẽ đƣợc kiểm tra với tất cả mọi trình duyệnt và mội OS và connection
Mỗi OS sẽ đƣợc kiểm tra với tất cả browser, plug-in, và connection
Mỗi connection sẽ đƣợc kiểm tra với tất cả browser, plugin, OS
2.2.2 Thứ tự tham số (In parameter order) a. Thuật toán: a. Thuật toán:
Mục đích: Tạo ra bộ dữ liệu (Testsuite) theo kỹ thuật pairwise cho các biến đầu vào. Thuật toán đƣợc đƣa ra bởi Tai và Lei.
Thuật toán:
Input: Tham số p1, p2 ,p3..…, pi,...,pn với i =1,2,3..n; và D(pi) ={v1,v2,v3,v4,…vq}
Giải thuật IPO:
Hình 2.4Thuật toán IPO.
Thuật toán IPO_H[6].
Thuật toán IPO_V[6].
Hình 2.6Thuật toán vertical
b. Giải thích thuật toán (Các bƣớc cụ thể của thuật toán):
Bƣớc 1: Với 2 tham số đầu vào p1 và p2 tạo ra test suite. T={(v1,v2)|v1 và v2 theo thứ tự là những giá trị của của p1 và p2}.
Bƣớc 2: Nếu i =2, ngừng. Còn không với i = 3,4,…, n sẽ lặp lại bƣớc 3 và bƣớc 4.
Giai đoạn Horizontal Growth:
Bƣớc 3: Cho D(pi) ={v1,v2,v3,v4,…vq}
Tạo căpi ={cặp giữa các giá trị của pi và tất cả các giá trị của p1,p2,…,pi-1}
Nếu |T| <=q thì:
Xét j chạy từ 1|T| (1<=j<=|T|), mở rộng kiểm thử thứ j trong T bằng cách thêm vào giá trị vjvà xóa đi từ i cặp đôi đã phủ bởi kiểm thử đã mở rộng.
Còn nếu không (|T| > q):
Xét với j chạy từ 1 |q| (1<=j<=|q|), mở rộng phần tử thứ j trong T bằng cách thêm thêm vào giá trị vjvà xóa đi từ icặp đã đƣợc cover bởi kiểm thử mở rộng này.
Còn với j chạy từ q |T| (q <j<=|T|) mở rộng kiểm thử thứ j trong T bằng cách thêm vào một giá trịvjcủa pi, giả sử rằng kết quả kiểm thử covers đƣợc hầu hết số lƣợng của cặp trong i, và remove từ
icặp đã đƣợc cover bởi phần tử mở rộng.
Giai đoạn Vertical Growth:
Bƣớc 4:
Hãy gán cho T‘=( tập rỗng) và |i| >0;
Với mỗi cặp trong i (cặp chứa giá trị w của pk, 1k<i, và những giá trị u của pi)hãy làm:
Nếu T‘ chứa một kiểm tra với – nhƣ là giá trị của Pk và u nhƣ là giá trị của pi ), thay đổi kiểm thử này và thay thế – bằng w.
Còn nếu không: Thêm vào một kiểm thử mới trong T‘, cái có w nhƣ là giá trị của pk, u nhƣ là giá trị của Pi, và –nhƣ là giá trị của tất cả các tham số khác.
T:= T T‘-
c. Minh họa thuật toán IPO:
Áp dụng với hệ thống S với 3 biến đầu vào là x,y,z với: D(x) = {True,False}
D(y) = {0, 5} D(z) = {P,Q, R}
Bƣớc 1: Tạo ra một testsuite gồm 4 ca kiểm thử tƣơng ứng cho 2 tham số đầu tiên là x và y. T = 𝑇𝑟𝑢𝑒, 0 𝑇𝑟𝑢𝑒, 5 𝐹𝑎𝑙𝑠𝑒, 0 𝐹𝑎𝑙𝑠𝑒, 5
Bƣớc 2: Có 3 biến (p) là x,y,z nên i = 3>2, tiếp tục thực hiện bƣớc 3 và 4 với i bằng 3.
Bƣớc 3 Với biến thứ 3 là z, có D(z) = {P,Q,R}, ―[D(pi) ={v1,v2,v3,v4,…vq}]‖vậy q(z) = 3tạo tập π 3 ={ cặp giữa giá trị của z và x,y}.