1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu lý thuyết kiểm thử hộp trắng

54 1.3K 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

White Box Testing ThS Nguyễn Xuân Cường 1/ Khái niệm kiểm thử hộp trắng nhằm kiểm tra mã nguồn phần mềm: •Cơ xác minh lỗ hổng thiếu sót, khiếm khuyết mã nguồn •Kiểm tra đường dẫn (Path) bị hỏng không đầy đủ mã nguồn •Kiểm tra dòng chảy cấu trúc đề cập đến tài liệu đặc tả • 1/ Khái niệm (tt) •Kiểm tra xem có dead code (mã chết) mã nguồn hay không? (Sv tự xác định dead code) •Kiểm tra kết đầu có mong đợi? •Kiểm tra vòng lặp, điều kiện mã nguồn có thực không? •Xác minh dòng phần mục mã nguồn & bao phủ phân nhánh xử lý Giải thích Dead code: Dead code (mã chết) phần mã nguồn chương trình thực thi có kết không sử dụng tính toán khác Trong kết tính toán chết không sử dụng, làm tăng lỗi ảnh hưởng đến tốc độ toàn cục, cần loại bỏ mã nhằm thay đổi hiệu chương trình Ví dụ: Dead code int calculate (int X, int Y) { int Z = X/Y; return X*Y; } Lệnh Z = X/Y; không dùng có khả gây lỗi Y = 2/ Các kỹ thuật kiểm thử hộp trắng Có 03 kỹ thuật kiểm thử White box sau: •Statement Coverage (phủ lệnh) •Branch Coverage (phủ nhánh) •Path Coverage (phủ đường đi) 2/ Các kỹ thuật kiểm thử hộp trắng số tài liệu khác 2/ Các kỹ thuật kiểm thử hộp trắng (tt) Một hình thức truyền thống kiểm thử White-box thường trải qua là: •Bước 1: Tạo đồ thị mô tả luồng điều khiển từ mã nguồn – Được gọi đồ thị luồng điều khiển (CFG _ Control Flow Graph) – Đồ thị tạo từ mã nguồn thường tạo tay •Bước 2: Thiết kế Test case để bao phủ toàn phần tử đồ thị (tùy theo kỹ thuật) – Phần tử: nút, cạnh, đường (nodes, edges, paths) 2/ Các kỹ thuật kiểm thử hộp trắng (tt) Đồ thị định nghĩa hình thức tóan học sau: G = (N, E) Node: nút tương ứng với lệnh, điều kiện Edge: cạnh nối nút Ví dụ Control Flow Graph (CFG) s:=0; d:=0; while (x k then ptr ← true x←x+1 result ← result + } print result 48 Vẽ CFG cho Source code sau 1 read (result); read (x,k) while result < { ptr ← false if x > k then ptr ← true x←x+1 result ← result + } print result 49 Vẽ CFG cho Source code sau read (result); read (x,k) while result < { ptr ← false if x > k then ptr ← true x←x+1 result ← result + } print result 50 Vẽ CFG cho Source code sau 1 read (result); read (x,k) while result < { ptr ← false if x > k then ptr ← true x←x+1 result ← result + } print result 1,2 3 9 4,5 6 Join 7,8 51 Bài tập EX 1 if (a < b) then while (a < n)EX a ← a + 1; else read (a, b); while (b < n) if (a ≠ && b ≠ 0) then { b ← b + 1;3 c ← a + b; if c > 10 then c ← max; else c ← min; } else print ‘Done’; EX read (a, b); if (a ≠ || b ≠ 0) then { c ← a + b; while( c < 100) c ← a + b; } c ← a * b; 52 53 Vòng lặp lồng (Nested Loops) • Giả sử: Có vòng lặp lồng test case cho mức, tổng số kết hợp 125 test case nhiều! • Bắt đầu với vòng lặp cùng, thực (m, m-1, typical) test case tương tự cho vòng lặp khác với số • Tiếp tục bên cho vòng lặp, thực kiểm thử (m, m+1, typical, ) test case – Vòng lặp với typical test case – Vòng lặp với test case 54 [...]... mẽ hơn phủ nhánh Kỹ thuật này rất hữu ích để kiểm thử các chương trình phức tạp Hãy lấy một ví dụ đơn giản để hiểu tất cả các kỹ thuật kiểm thử hộp trắng 29 2/ Các kỹ thuật kiểm thử hộp trắng (tt) Xem xét đoạn mã giả sau (pseudo code): 1 INPUT A & B 2 C=A+B 3 IF C>100 4 PRINT “IT’S DONE” 30 * Đối với Statement Coverage: ta chỉ có một trường hợp kiểm thử để kiểm tra tất cả các dòng m Xét Test Case_01... Trong trường hợp của một lệnh IF, sẽ có hai điều kiện kiểm thử: •Một để xác nhận nhánh đúng và •Cái khác để xác nhận nhánh sai Do đó về lý thuyết, Phủ nhánh là một phương pháp kiểm thử mà khi thực hiện đảm bảo rằng từng nhánh của lệnh (có chứa quyết định) sẽ được thi hành 28 2/ Các kỹ thuật kiểm thử hộp trắng (tt) C/ Path Coverage Phủ đường đi là kiểm tra tất cả các đường đi của chương trình Đây là... lần 26 2/ Các kỹ thuật kiểm thử hộp trắng (tt) B/ Branch Coverage Branch trong NNLT là lệnh 'IF', lệnh có các nhánh: đúng và sai, hoặc các lệnh chuyển hướng điều khiển trong mã nguồn như switch(), goto, … Trong phạm vi phủ nhánh (Branch Coverage _ còn gọi là phủ quyết định), chúng ta chứng thực rằng mỗi nhánh được thực hiện ít nhất một lần 27 2/ Các kỹ thuật kiểm thử hộp trắng (tt) B/ Branch Coverage... thuật kiểm thử hộp trắng (tt) A/ Statement Coverage Lệnh là các dòng mã hoặc hướng dẫn cho máy tính hiểu và hành động phù hợp Một lệnh sẽ trở thành một lệnh thực thi khi nó được biên soạn và chuyển đổi thành mã đối tượng và thực hiện các hành động khi chương trình ở chế độ chạy Do đó ‘Phủ lệnh’, cho thấy đó là phương pháp chứng thực rằng mỗi dòng mã được thực hiện ít nhất một lần 26 2/ Các kỹ thuật kiểm. .. các dòng m Xét Test Case_01 với (A = 40 và B = 70), ta thấy tất cả các dòng mã sẽ được thực thi Nếu ta xét trường hợp kiểm thử Test Case_02 với (A = 33 và B = 45) sẽ ra sao? Bởi vì Statement Coverage sẽ chỉ bao trùm bên phía True tức là chỉ có một trường hợp kiểm thử vậy sẽ không đủ để kiểm tra nó Là một Tester, chúng ta cần phải xem xét cả trường hợp False 31 * Đối với Branch Coverage: ta có thể phủ... bonus := 0.7; case Quản lý bonus := 1.5; if (Nghỉ hưu) bonus := 1.2 * bonus case … end switch 14 Tạo các khối lệnh (Block statement) Để đơn giản hóa các mã nguồn lớn có nhiều lệnh, người ta thường tạo CFG bằng các khối lệnh thay vì cho từng lệnh Khối lệnh là tập hợp các lệnh liên tiếp tuần tự, không có phân nhánh (trừ ở cuối), không chứa vòng lặp 15 Ví dụ: 16 Ví dụ: có 2 xử lý riêng biệt 17 Ví dụ:... 5 F 6 7 8 34 Ví dụ về Statement Coverage • Ý tưởng: Tạo đồ thị CFG định nghĩa mục tiêu phủ và viết Test case để đạt được nó • Kinh nghiệm: có thể có 1 số lệnh không bao giờ được thực hiện trong khi kiểm thử • Mục tiêu: bao phủ lệnh (statement coverage) – Cần các Test case thực hiện bao phủ tất cả các nút trong CFG 35 Ví dụ về Branch Coverage Sử dụng lại ví dụ trước •Test case #1: nhánh 1: 1-2exit •Test

Ngày đăng: 27/09/2016, 13:08

Xem thêm: Tài liệu lý thuyết kiểm thử hộp trắng

Mục lục

    Giải thích Dead code:

    Ví dụ: Dead code

    2/. Các kỹ thuật kiểm thử hộp trắng

    2/. Các kỹ thuật kiểm thử hộp trắng 1 số tài liệu khác

    2/. Các kỹ thuật kiểm thử hộp trắng (tt)

    Ví dụ về Control Flow Graph (CFG)

    Các phần tử của CFG

    Biểu diễn IF-THEN, IF-THEN-ELSE, SWITCH

    Biểu diễn vòng lặp (Loop)

    Ví dụ minh hoạ

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w