KCPM Bai 9 Kiem thu hop trang White box Testing Kiểm chứng phần mềm Bộ môn Công nghệ phần mềm £ Structural/Clear box/Glass box testing £ Thiết kế các trường hợp kiểm thử dựa vào cấu trúc của thủ tục đ[.]
White-box Testing Kiểm chứng phần mềm Bộ môn Công nghệ phần mềm Kiểm thự hộp trắng £ Structural/Clear box/Glass box testing £ Thiết kế trường hợp kiểm thử dựa vào cấu trúc thủ tục để suy dẫn trường hợp cần kiểm thử £ Nguyên tắc p Thực đường dẫn độc lập lần p Thực điều kiện logic True/False p Thực vòng lặp biên phạm vi hoạt động p Thực cấu trúc liệu bên để đảm bảo tính hợp lệ Nhập môn kiểm thử phần mềm 4/23/18 Kiểm thự hộp trắng £ hướng tiếp cận p Kiểm thử đường dẫn sở (Basic path testing) p Kiểm thử cấu trúc điều kiện (Control structure testing) Nhập môn kiểm thử phần mềm 4/23/18 Kiểm thử đường dẫn sở £ Đảm bảo tất đường dẫn độc lập (independent path) điều kiểm thử £ Đường dẫn độc lập đường dẫn từ đầu đến cuối chương trình mà khơng chứa đường dẫn độc lập khác £ Tập đường dẫn độc lập tập sở (basic set) Nhập môn kiểm thử phần mềm 4/23/18 Kiểm thử đường dẫn sở £ Các bước thực p Bước 1: Vẽ đồ thị lưu trình (flowgraph) p Bước 2: Xác định độ phức tạp Cyclomat đồ thị lưu trình p Bước 3: Xác định tập sở đường dẫn độc lập p Bước 4: Thiết kế test case cho đường dẫn độc lập Nhập môn kiểm thử phần mềm 4/23/18 B1: Vẽ đồ thị lưu trình B2: Xác định độ phức tạp cyclomat £ cho biết số lượng đường dẫn độc lập p V(G) = R(số vùng) = p V(G) = P(số đỉnh điều kiện)+1 = 2+1 = p V(G) = E(số cạnh)–N(số đỉnh)+2 = 10-9+2 = Nhập mơn kiểm thử phần mềm 4/23/18 B3: Tìm tập sở đường dẫn độc lập £ Tìm đường dẫn từ đầu đến cuối chương trình £ Tìm đường dẫn có qua cạnh mà khơng trùng với đường dẫn trước £ Làm đủ số lượng đường dẫn £ Ví dụ: p Đường dẫn 1: S1àC1àS3àC2àS5 p Đường dẫn 2: S1àC1àS2 p Đường dẫn 3: S1àC1àS3àC2àS4àS5 Nhập môn kiểm thử phần mềm 4/23/18 B4: Thiết kế test case cho đường dẫn độc lập £ Test case p Đầu vào: … p Đầu mong muốn: … p Mục đích: … £ Ví dụ test case cho đường dẫn p Đường dẫn 1: S1àC1àS3àC2àS5 p Đầu vào: a=1, b=0, c=1, d=0 p Đầu mong muốn: ¡ x=0, e=1/x => Divide by zero error Nhập môn kiểm thử phần mềm 4/23/18 B4: Thiết kế test case cho đường dẫn độc lập #TC a b c d Expected Output 1 Divide by zero error 0 0 1 1 Kiểm thử đường dẫn sở £ Bước 4: thiết kế test case cho đường dẫn độc lập £ Ví dụ: p Test case cho đường dẫn ¡ Đầu vào: … ¡ Đầu mong muốn: … ¡ Mục đích: … 13 Nhập mơn kiểm thử phần mềm 4/23/18 Kiểm thử cấu trúc điều kiện £ Kiểm thử dòng điều khiển (Controlflow/Coverage testing) £ Kiểm thử dòng liệu (Data flow testing) £ Kiểm thử vòng lặp (loop testing) 14 Nhập môn kiểm thử phần mềm 4/23/18 Kiểm thử dòng điều khiển £ Coverage dùng để đánh giá tính phủ tập test case p Statement coverage p Decision/branch coverage p Condition coverage p Path coverage 15 Nhập mơn kiểm thử phần mềm 4/23/18 Ví dụ Read A IF A > 0 THEN IF A = 21 THEN Print “Key” ENDIF ENDIF } } Read A>0 No Cyclomatic complexity: _ Minimum tests to achieve: } } Yes A=21 No Yes Print End Statement coverage: Branch coverage: _ 16 Nhập môn kiểm thử phần mềm 4/23/18 Ví dụ Read Read A Read B IF A > 0 THEN IF B = 0 THEN Print “No values” ELSE Print B IF A > 21 THEN Print A ENDIF ENDIF ENDIF A>0 Yes B=0 Yes No Print No Print Yes A>21 Print No End } } Cyclomatic complexity: _ Minimum tests to achieve: } } Statement coverage: Branch coverage: _ Nhập môn kiểm thử phần 17 mềm 4/23/18 Kiểm thử dòng liệu £ Một biến (variable) p Được xác định (define): gán hay thay đổi giá trị p Được sử dụng (use): tính tốn (c-use) hay điều kiện (p-use) £ Def-use path: đường dẫn từ def đến use biến £ Dữ liệu test tạo để phủ tất def-use 18 Nhập môn kiểm thử phần mềm 4/23/18 Kiểm thử dịng liệu £ Ví dụ 19 Nhập môn kiểm thử phần mềm 4/23/18