Bài giảng Kiểm thử phần mềm - Chương 3: Kiểm thử hộp trắng - Nguyễn Thanh Hùng

Phủ kiểm thử  Do đó, ta nên kiểm thử số test case tối thiểu mà kết quả độ tin cậy tối đa. Nhưng làm sao xác định được số test case tối thiểu nào có thể đem lại kết quả có độ tin cậy tối đa?  Phủ kiểm thử (Coverage) : là tỉ lệ các thành phần thực sự được kiểm thử so với tổng thể sau khi đã kiểm thử các test case được chọn. Phủ càng lớn thì độ tin cậy càng cao.  Thành phần liên quan có thể là lệnh, điểm quyết định, điều kiện con, đường thi hành hay là sự kết hợp của chúng.

pdf76 trang | Chia sẻ: thanhle95 | Lượt xem: 485 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiểm thử phần mềm - Chương 3: Kiểm thử hộp trắng - Nguyễn Thanh Hùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Kiểm thử phần mềm TS. Nguyễn Thanh Hùng Bộ Môn Công Nghệ Phần Mềm Email: hungnt@soict.hust.edu.vn Website: Kiểm thử hộp trắng Trường Đại Học Bách Khoa Hà Nội Viện Công Nghệ Thông Tin &Truyền Thông CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung  Giới thiệu về kiểm thử hộp trắng  Các kỹ thuật kiểm thử hộp trắng:  Kiểm thử đường dẫn cơ sở  Kiểm thử điều kiện/kiểm thử nhánh  Kiểm thử vòng lặp  Kiểm thử luồng điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Nhắc lại: Kiểm thử hộp đen Kiểm thử hộp đen là kiểm thử bỏ qua cấu trúc bên trong, chỉ quan tâm tới Output từ Input cho trước có chính xác không. Phân loại:  Kiểm thử biên  Kiểm thử lớp tương tương  Bảng quyết định  Kiểm thử đoán lỗi CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử hộp trắng  ng  n   kiểm thử: • n) • n) • liệu). 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung cần kiểm thử hộp trắng  ?  )  nh)  i)  liẹ ̂u)  u -> kết thúc (từng luồng điều khiển) ng? 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử hộp trắng  ngai: n  Thí dụ đoạn code sau : for (i=1; i<=1000; i++) for (j=1; j<=1000; j++) for (k=1; k<=1000; k++) doSomethingWith(i,j,k); có 1 đường thi hành dài 1000*1000*1000 = 1 tỉ lệnh gọi doSomethingWith(i,j,k) khác nhau.  Thí dụ đoạn code gồm 32 lệnh if else sau : if (c1) s11 else s12; if (c2) s21 else s22; if (c3) s31 else s32; ... if (c32) s321 else s322; có 2^32 = 4 tỉ đường thi hành khác nhau. 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử hộp trắng Kiểm thử hộp trắng cũng không phủ được hết trường hợp if (a>0) doIsGreater(); if (a==0) dolsEqual(); p a < 0 - if (a<0) dolsLess(); int phanso (int a, int b) { return a/b; } i. 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt Phủ kiểm thử  Do đó, ta nên kiểm thử số test case tối thiểu mà kết quả độ tin cậy tối đa. Nhưng làm sao xác định được số test case tối thiểu nào có thể đem lại kết quả có độ tin cậy tối đa?  Phủ kiểm thử (Coverage) : là tỉ lệ các thành phần thực sự được kiểm thử so với tổng thể sau khi đã kiểm thử các test case được chọn. Phủ càng lớn thì độ tin cậy càng cao.  Thành phần liên quan có thể là lệnh, điểm quyết định, điều kiện con, đường thi hành hay là sự kết hợp của chúng. 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt Phủ cấp 0 & 1  Phủ cấp 0 : kiểm thử những gì có thể kiểm thử được, phần còn lại để người dùng phát hiện và báo lại sau. Đây là mức độ kiểm thử không thực sự có trách nhiệm.  Phủ cấp 1 : kiểm thử sao cho mỗi lệnh được thực thi ít nhất 1 lần. 9 Với hàm foo bên cạnh, ta chỉ cần 2 test case sau đây là đạt 100% phủ cấp 1 : 1. foo(0,0,0,0), trả về 0 2. foo(1,1,1,1), trả về 1 nhưng không phát hiện lỗi chia 0 ở hàng lệnh 8 1 float foo(int a, int b, int c, int d) { 2 float e; 3 if (a==0) 4 return 0; 5 int x = 0; 6 if ((a==b) || ((c==d) && bug(a))) 7 x = 1; 8 e = 1/x; 9 return e; 10 }CuuDuongThanCong.com https://fb.com/tailieudientucntt Phủ cấp 2 Phủ cấp 2 : kiểm thử sao cho mỗi điểm quyết định đều được thực hiện ít nhất 1 lần cho trường hợp TRUE lẫn FALSE. Ta gọi mức kiểm thử này là phủ các nhánh (Branch coverage). Phủ các nhánh đảm bảo phủ các lệnh. 10 c u thêm test case 3 : nh. CuuDuongThanCong.com https://fb.com/tailieudientucntt Phủ cấp 3  nh. 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt Phủ cấp 4  u kiện con (branch & subcondition coverage). 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt ng  u đặt ra:  n.  a sai (false).  c hiên.  13 CuuDuongThanCong.com https://fb.com/tailieudientucntt ng  ng?  nh.  nh  m tra. 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử hộp trắng Là kỹ thuật kiểm thử xâm nhập vào nội bộ, cấu trúc bên trong của chương trình Các kỹ thuật kiểm thử hộp trắng phổ biến:  Kiểm thử đường dẫn cơ sở  Kiểm thử rẽ nhánh  Kiểm thử vòng lặp  Kiểm tra luồng điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu ý Không thể có được tất cả các test case mong muốn bằng việc áp dụng 1 kỹ thuật kiểm thử duy nhất. Trước khi áp dụng các kỹ thuật kiểm thử hộp trắng, hãy xem lại code. CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung  Giới thiệu về kiểm thử hộp trắng  Các kỹ thuật kiểm thử hộp trắng:  Kiểm thử đường dẫn cơ sở  Kiểm thử điều kiện/kiểm thử nhánh  Kiểm thử vòng lặp  Kiểm thử luồng điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử đường cơ sở (Basis Path) Định nghĩa: Thu được các trường hợp thử nghiệm từ đường cơ sở, được xác định theo biểu đồ dòng chảy của chương trình Các bước:  1. Xây dựng một đồ thị dòng chảy dựa trên logic của chương trình  2. Tính toán độ phức tạp Cyclomatic của đồ thì dòng chảy  3. Xác định đường cơ sở.  4. Kiểm tra nếu số đường cơ sở không nhiều hơn độ phức tạp Cyclomatic.  5. Thiết kế trường hợp thử nghiệm để kiểm tra các đường cơ sở CuuDuongThanCong.com https://fb.com/tailieudientucntt ng  ng  nh.  nh.  ch: • • 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt ng  m:  n.  n,  ng:  n.  c cung. 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt ng  ng: 21 Các cấu trúc điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt nh 22 u a một nh CuuDuongThanCong.com https://fb.com/tailieudientucntt ng 23 CuuDuongThanCong.com https://fb.com/tailieudientucntt  m:  :  )  11 cung  n 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ 2 25 CuuDuongThanCong.com https://fb.com/tailieudientucntt nh  t một lệnh).  nh  n hơn). 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt nh  ch sau:  V(G) = E - N + 2 (= 11-9+2 = 4)  ng (= 4)  V(G) = P – 1 (= 5-1 =4)  : V(G) = 4 . 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quy trình xác định các đường tuyến tính độc lập c :  t.  i.  i.  a.  C). 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt c nh c ca m thư 29 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt Độ phức tạp Cyclomatic C 31 nh p C = 5+1 = 6. : 1. 1 􏰂 2􏰂 10􏰂 11 2. 1􏰂 2􏰂 3􏰂 10􏰂 11 3. 1􏰂 2􏰂 10􏰂 12 4. 1􏰂 2􏰂 3􏰂 4􏰂 5􏰂 8􏰂 9 5. 1􏰂 2􏰂 3􏰂 4􏰂 5􏰂 6􏰂 8􏰂 9 6. 1􏰂 2􏰂 3􏰂 4􏰂 5􏰂 6􏰂 7􏰂 8􏰂 9 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế các test-cases 32 ng 1: - - a k ng 4 hay 5 hay 6. ng 2: - i 􏰂 p lệ. (2) tcnt = 100. (3) vcnt = 100 ng 3: - ng : (1) average = -999. (2) tcnt = 0 (3) vcnt = 0 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế các test-cases ng 4: value(i) -999 􏰂 i <= 100 i k < i p lệ) ng 5: - i 􏰂 i <= 100 i k <= i p lệ) ng 6: - i 􏰂 i<=100 p lệ. (2) tcnt = 100. (3) vcnt = 100 33 CuuDuongThanCong.com https://fb.com/tailieudientucntt Xét ví dụ về tam giác: 1. program triangle (input, output); 2. VAR a,b,c: integer; 3. IsATriangle: boolean; 4. BEGIN 5. writeln(“Enter integers: “); 6. readln(a,b,c); 7. Writeln(“Side A is: “, a, “Side B is: “, b, “Side C is: “, c); 8. IF(a <b+c) AND (b < a+c) AND (c<a+b) THEN 9. IsATriangle = True; 10. ELSE IsATriangle = False; 11. IF IsATriangle) 12. THEN 13. BEGIN 14. IF (a=b) XOR (a=c) XOR (b=c) AND NOT((a=b) AND (a=c) 15. THEN writeln(“Equilateral”); 16. IF (a=b) AND (b=c) 17. THEN writeln(“Equilateral”); 18. IF(a b) AND (a c) AND (ac) 19. THEN writeln(“Scalene”); 20. END 21. ELSE Writeln(“Not a Triangle”); 22. END Ví dụ CuuDuongThanCong.com https://fb.com/tailieudientucntt 35 Thiết kế trường hợp kiểm thử cho kiểm thử đường cơ sở Ví dụ CuuDuongThanCong.com https://fb.com/tailieudientucntt 36 Ví dụ CuuDuongThanCong.com https://fb.com/tailieudientucntt 37 Đồ thị dòng chảy CuuDuongThanCong.com https://fb.com/tailieudientucntt  Số vùng khép kín bao gồm cả các hình tứ giác = 4 +1  Số lượng nhị phân +1 = 4+1=5  Số cạnh – số nút + 2 = 15-12+2=5 Độ phức tạp “Cyclomatic” CuuDuongThanCong.com https://fb.com/tailieudientucntt 1. 12-15->16->17->21->22->24->26-27->30 Trường hợp kiểm thử: Input = (68,68,56) Kết quả dự kiến: tam giác cân 2. 12-15->16->17->21->22->24->25->30 Trường hợp kiểm thử: Input = (68,60,56) Kết quả dự kiến: tam giác không cân Đường cơ sở và các trường hợp kiểm thử (1) CuuDuongThanCong.com https://fb.com/tailieudientucntt 3. 12-15->16->17->21->22->23->30 Trường hợp kiểm thử: Input = (68,68,68) Kết quả dự kiến: tam giác đều 4. 12-15->16->18->20->21->28-29->30 Trường hợp kiểm thử: Input = (68,8,56) Kết quả dự kiến: không phải là tam giác Đường cơ sở và các trường hợp kiểm thử (2) CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập - BinarySearch 41 13 25 binarySearch() Example public int binarySearch(int sortedArray[ ], int searchValue) { int bottom = 0; int top = sortedArray.length - 1; int middle, locationOfsearchValue; boolean found = flase; locationOfsearchValue = -1; /* the location of searchValue in the sortedArray */ /* location = -1 means that searchValue is not found */ while ( bottom <= top && !found) { middle = (top + bottom)/2; if (searchValue == sortedArray[ middle ]) { found = true; locationOfsearchValue = middle; } else if (searchValue < sortedArray[ middle ]) top = middle - 1; else bottom = middle + 1; } // end while return locationOfsearchValue; } 1 2 4 5 6 7 8 9 10 3 26 The CFG of Function binarySearch() 1 2 3 4 56 7 8 9 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập – BinarySearch - CFG 42 13 25 binarySearch() Example public int binarySearch(int sortedArray[ ], int searchValue) { int bottom = 0; int top = sortedArray.length - 1; int middle, locationOfsearchValue; boolean found = flase; locationOfsearchValue = -1; /* the location of searchValue in the sortedArray */ /* location = -1 means that searchValue is not found */ while ( bottom <= top && !found) { middle = (top + bottom)/2; if (searchValue == sortedArray[ middle ]) { found = true; locationOfsearchValue = middle; } else if (searchValue < sortedArray[ middle ]) top = middle - 1; else bottom = middle + 1; } // end while return locationOfsearchValue; } 1 2 4 5 6 7 8 9 10 3 26 The CFG of Function binarySearch() 1 2 3 4 56 7 8 9 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập – BinarySearch – Độ phức tạp 43 15 29 Cyclomatic Complexity • Three ways to compute cyclomatic complexity: – The number of regions of the flow graph correspond to the cyclomatic complexity. – Cyclomatic complexity, V(G), for a flow graph G is defined as V(G) = E - N + 2 (13-10+2=5) where E is the number of flow graph edges and N is the number of flow graph nodes. – Cyclomatic complexity, V(G) = P + 1 where P is the number of predicate nodes contained in the flow graph G. 30 Cyclomatic Complexity of Function binarySearch() 1 5 7 8 9 10 2 3 4 6 predicate nodes R1 R2 R3 R4 R5 regions V(G) = 5 regions V(G) = 13(edges) – 10(nodes) +2 = 5 V(G) = 4(predicate nodes) + 1 = 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập – BinarySearch – Đường cơ sở 44 15 29 Cyclomatic Complexity • Three ways to compute cyclomatic complexity: – The number of regions of the flow graph correspond to the cyclomatic complexity. – Cyclomatic complexity, V(G), for a flow graph G is defined as V(G) = E - N + 2 (13-10+2=5) where E is the number of flow graph edges and N is the number of flow graph nodes. – Cyclomatic complexity, V(G) = P + 1 where P is the number of predicate nodes contained in the flow graph G. 30 Cyclomatic Complexity of Function binarySearch() 1 5 7 8 9 10 2 3 4 6 predicate nodes R1 R2 R3 R4 R5 regions Path 1: 1-2-10 Path 2: 1-2-3-10 Path 3: 1-2-3-4-5-9-2- ... Path 4: 1-2-3-4-6-7-9-2-... Path 5: 1-2-3-4-6-8-9-2-... CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập – BinarySearch – Test-cases  Path 1 test case:  Inputs: sortedArray = { }, searchValue = 2  Expected results: locationOfSearchValue = -1  Path 2 test case: cannot be tested stand-alone!  Inputs: sortedArray = {2, 4, 6}, searchValue = 8  Expected results: locationOfSearchValue = -1  Path 3 test case:  Inputs: sortedArray={2,4,6,8,10},searchValue = 6  Expected results: locationOfSearchValue = 2  • Path 4 test case:  Inputs: sortedArray = {2, 4, 6, 8, 10}, searchValue = 4  Expected results: locationOfSearchValue = 1  • Path 5 test case:  Inputs: sortedArray = {2, 4, 6, 8, 10}, searchValue = 10  Expected results: locationOfSearchValue = 4 45 CuuDuongThanCong.com https://fb.com/tailieudientucntt Kỹ thuật ma trận kiểm thử  ng:  t  t cột.  t 46 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ ma trận kiểm thử 47 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ ma trận kiểm thử 48 2 – 1 = 1 2 – 1 = 1 1 – 1 = 0 2 – 1 = 1 1 – 1 = 0 1 – 1 = 0 1 – 1 = 0 V(G) = 3 + 1 = 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt  Giới thiệu về kiểm thử hộp trắng  Các kỹ thuật kiểm thử hộp trắng:  Kiểm thử đường dẫn cơ sở  Kiểm thử điều kiện/kiểm thử nhánh  Kiểm thử vòng lặp  Kiểm thử luồng điều khiển Nội dung CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử điền kiện  Kiểm thử điều kiện  Phương pháp thiết kế test-case để kiểm tra các điều kiện logic  Điều kiện logic  u kiẹ ̂n đơn nh): X  u kiẹ ̂n đơn c nh: , ≥ hay ≠ c  p nh (┘) D = X1 & X2 &...Xn Xi bool Nếu một điều kiện sai, ít nhất một thành phần trong điều kiện sai 50 CuuDuongThanCong.com https://fb.com/tailieudientucntt u kiẹ ̂n lo ̂gic Sai biến Bool Sai toán tử Bool Sai số hạng trong biểu thức toán tử Bool Sai toán tử quan hệ Sai biểu thức số học 51 CuuDuongThanCong.com https://fb.com/tailieudientucntt nh  u kiẹ ̂n nh.  u kiẹ ̂n t hiện nh lie ̂n quan.  nh nh “true” “false” n. 52 CuuDuongThanCong.com https://fb.com/tailieudientucntt n n cho c a.  i, song c hiện!  c nh n (quan hệ)  ? 53 CuuDuongThanCong.com https://fb.com/tailieudientucntt BRO BRO quan hệ (branch and relational operation)  ng “ n thư” n chung.  : D=X1&X2&...Xn, Xi bool  a Xi nh?. 54 CuuDuongThanCong.com https://fb.com/tailieudientucntt  ng buộc Xi u kiẹ ̂n D , u kiẹ ̂n đơn Xi trong ng.  : Khi cho c i Xi n để a D 55 – o CuuDuongThanCong.com https://fb.com/tailieudientucntt – ng buọ ̂c  i n Bool B t (true) hoặc f (false).  c quan hệ (AΘB quan hệ: >, <, =, # c). 56 CuuDuongThanCong.com https://fb.com/tailieudientucntt  u kiẹ ̂n C = A ∩ B  n Bool u ra a f.  ng buộc a C.  i C=t  i C=f 57 – ng buọ ̂c 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt  u kiện C=(B=E) “=“ “” i f  c cặp (t,t), (t,f) (f,t) i “=“ i “” : (f,=)  quan hệ trong C 58 – ng buọ ̂c CuuDuongThanCong.com https://fb.com/tailieudientucntt  u kiện c quan hệ (A>B) (E=F)  ng buộc (f,t) : (>,=); (>,,>); (=,=) (<,=).  quan hệ trong C. 59 – ng buọ ̂c CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu về kiểm thử hộp trắng Kiểm thử đường dẫn cơ sở Kiểm thử điều kiện/kiểm thử nhánh Kiểm thử vòng lặp Kiểm thử luồng điều khiển Nội dung CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử vòng lặp Định nghĩa: Tập trung vào hiệu lực của các cấu trúc vòng lặp, đặc biệt là các biến thể vòng lặp. Bốn kiểu vòng lặp:  1. Simple loop: một vòng lặp đơn  2. Nested loops: một vòng lặp trong vòng lặp khác  3. Concatenated loops: một vòng lặp sau vòng lặp khác  4. Unstructured loops: các vòng lặp được nối vòng và lồng nhau phức tạp 61 CuuDuongThanCong.com https://fb.com/tailieudientucntt 62 Simple Loop Nested Loops Concatenated Loops Unstructured Loops Kiểm thử vòng lặp CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểm thử các vòng lặp đơn Với n là số vòng lặp tối đa cho phép, các trường hợp kiểm tra bao gồm: 1. hoàn toàn bỏ qua vòng lặp 2. qua một vòng lặp 3. qua hai vòng lặp 4. qua m vòng lặp với m < n 5. qua (n-1), n, và (n+1) vòng lặp 63 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1. Bắt đầu vòng lặp trong cùng. Đặt tất cả các vòng ngoài với các giá trị tham số tối thiểu cho sự lặp lại của chúng. 2. Kiểm tra các giá trị tối thiểu, điển hình, tối đa cho vòng lặp trong cùng, trong khi giữ các vòng lặp ngoài tại các giá trị tối thiểu của chúng. 3. Di chuyển ra khỏi một vòng lặp và thiết lập nó như trong bước 2, giữ tất cả các vòng lặp bên trong những giá trị tiêu biểu. Tiếp tục bước này cho đến khi vòng lặp ngoài cùng đã được thử nghiệm. 64 Nested Loops Kiểm thử vòng lặp lồng nhau CuuDuongThanCong.com https://fb.com/tailieudientucntt Nếu mỗi vòng lặp là độc lập với các vòng lặp khác thì kiểm tra chúng như các vòng lặp đơn giản. Nếu hai vòng được nối tiếp, vòng lặp 1 được dùng như là giá trị ban đầu cho vòng lặp 2 thì kiểm tra chúng như các vòng lặp lồng nhau. 65 Concaten ated Loops Kiểm thử vòng lặp ghép nối CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu về kiểm thử hộp trắng Kiểm thử đường dẫn cơ sở Kiểm thử điều kiện/kiểm thử nhánh Kiểm thử vòng lặp Kiểm thử luồng điều khiển Nội dung CuuDuongThanCong.com https://fb.com/tailieudientucntt  Đôi khi còn được gọi là tiêu chuẩn kiểm thử phần mềm hoặc tiêu chuẩn kiểm thử dữ liệu đầy đủ có thể được sử dụng như:  Quy tắc dừng để xác định tính đầy đủ.  Kiểm tra đo chất lượng khi mức độ an toàn có liên quan với mỗi tập kiểm tra.  Lựa chọn dữ liệu kiểm thử. Bộ kiểm tra được coi là tương đương nếu đáp ứng các tiêu chí tương tự. Tiêu chuẩn kiểm thử hộp trắng • Tiêu chuẩn có xem xét đến cấu trúc bên trong của chương trình có thể được chia thành. 1. Tiêu chuẩn luồng điều khiển. 2. Tiêu chuẩn luồng dữ liệu. 67 Tiêu chuẩn bao phủ CuuDuongThanCong.com https://fb.com/tailieudientucntt Tiêu chuẩn luồng điều khiển  Kiểm tra các biểu thức logic trong đó xác định các nhánh và cấu trúc vòng lặp của chương trình.  Được sử dụng chủ yếu trong các ngành công nghiệp.  Các tiêu chí phổ biến nhất bao gồm: • 1. Bao phủ câu lệnh • 2. Bao phủ quyết định • 3. Bao phủ điều kiện • 4. Bao phủ quyết định / điều kiện • 5. Bao phủ đa điều kiện 68 Tiêu chuẩn luồng điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Định nghĩa  Nếu tất cả các tập kiểm tra thỏa mãn A cũng đáp ứng B thì ta nói tiêu chuẩn A mạnh hơn tiêu chuẩn B  Thứ tự các tiêu chuẩn  Phạm vi tiêu chuẩn bao phủ là yếu nhất.  Điều kiện tiêu chuẩn bao phủ là mạnh nhất.  Trình tự giữa cả hai là quyết định phạm vi bao phủ, điều kiện bao phủ và quyết định phạm vi / điều khiện bao phủ. 69 Thứ tự tiêu chuẩn luồng điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt 70  Định Nghĩa: • Mỗi câu lệnh trong chương trình được thực hiện ít nhất một lần.  Ví dụ: • Để thoả mãn bao phủ câu lệnh đáp ứng đoạn Code 1, một trường hợp kiểm thử có thể: A = 2 B= 0 X = 3 • Như đã thấy, tất cả các câu lệnh đều được thực thi. • Nhưng điều gì sẽ xảy ra nếu code sai như trong Code 2? Code1: if ((A > 1) && (B == 0)) X = X/A; if ((A == 2) || (X > 1)) X=X+1; Code2: if ((A > 1) || (B == 0)) X = X/A; if ((A == 2) || (X > 1)) X=X+1; Bao phủ câu lệnh CuuDuongThanCong.com https://fb.com/tailieudientucntt 71  Định Nghĩa: • Mỗi câu lệnh trong chương trình được thực hiện ít nhất một lần và mỗi điều kiện có thể xảy r
Tài liệu liên quan