Thứ Ba, 18 tháng 11, 2014

WHITE BOX TESTING



 Khái niệm: Còn được gọi là clear box testing, glass box testing, transparent box testing, or structural testing,  thường thiết kế các trường hợp kiểm thử dựa vào cấu trúc bên trong của phần mềm.
whitebox-testing
Đặc điểm: Phụ thuộc vào các cài đặt hiện tại của hệ thống và của phần mềm, nếu có sự thay đổi thì các bài test cũng cần thay đổi theo. Được ứng dụng trong các kiểm tra ở cấp độ mô đun(điển hình), tích hợp (có khả năng) và hệ thống của quá trình test phần mềm.
Các kỹ thuật:
Kiểm thử luồng, lộ trình ( Deriving Test Cases)
+ Lộ trình cơ sở (Basis path Testing)
Luồng điều khiển / Phạm vi
(Control-flow / Coverage Testing)
+ Phương thức – Method Coverage
+ Câu lệnh – Statement Coverge
+ Nhánh –  Branch Coverge
+ Điều kiện – Condition Converage
Kiểm thử luồng dữ liệu ( Data Flow Test )
Trường hợp hỏng ‘rác’ – Failure ‘Dirty’ Case Test
Flow Groaps Revisited
Basis Path Testing ( Kiểm thử lộ trình cơ sở)
Equivalence Partitioning / Boundary Value( Phân vùng tương đương và Giá trị biên )
Kiểm tra lộ trình cơ sở :
+ Là kĩ thuật kiểm thử mà phần mềm được chia thành các lộ trình
+ Đảm bảo các lộ trình độc lập qua một mô đun mã sẽ được kiểm thử đầy đủ
Một số khái niệm:
Đồ hình lộ trình : Bao gồm các hình, mũi tên (cạnh), chỉ số, mô tả khác
Độ phức tạp chu trình ( Cyclomatic Complexity ) : Được tìm ra bởi chu trình McCabe, chỉ ra độ phức tạp lôgic của một chương trình.
do-thi-test
Cách tạo kiểm thử:
Sử dụng một đoạn code hoặc thiết kế làm cơ sở để xây dựng lên đồ hình luồng.
Đưa ra các chu trình lộ trình từ đồ hình vừa có được.
Quyết định một lộ trình độc lập tuyến tính
Kiểm tra tất các chu trình đã tạo.
v Luồng điều khiển / Gom  (Control-flow / Coverage Testing)
Là cách tạo ra các bộ giá trị kiểm thử để có thể xem được 100% các trường hợp có thể xảy ra với các thành phần của một chương trình bao gồm :
+ Các phương thức ( Method )
+ Các câu lệnh (Statement )
+ Các nhánh (branch)
+ Các điều kiện
Ví dụ: Kiểm tra phương thức bằng các bộ giá trị của hàm foo sau :



Bộ giá trị được chọn là  foo(0,0,0,0,0)
v Luồng điều khiển / Phạm vi (Control-flow / Coverage Testing)
Với nhánh (branch )
IF ( a equals b AND c less than d ) THEN
statement 1
ELSE
statement 2
END IF
Chọn bộ giá trị a b c d sao cho có thể kiểm tra hết các nhánh rẽ .
Ví dụ : (a,b,c,d) = (1, 1, 2, 6) & (1,2,3,3)
v Kiểm thử luồng dữ liệu ( Data Flow Test )
Kiểm tra sự khởi tạo, biến đổi và huỷ của các các luồng  dữ liệu.
Thường  được phân tích qua đồ hình và đặt ra các bộ giá trị thử và giá trị trả về  mong muốn  dựa vào đồ hình đó.
Một số trạng thái của biến dữ liệu trong quá trình biến đối

Ví dụ: Hoá đơn thanh toán cho việc sử dụng điện -> Xét sự biến đổi luồng dữ liệu của hóa đơn

v Trường hợp hỏng ‘rác’ (Failure ‘Dirty’ Case Test)
Là trường hợp kiểm thử các trường hợp mà người lập trình cần đứng ở vị trí người dùng để nhập giá trị
Cụ thể là người dùng có thể nhập số thay cho chữ, hoặc không nhập gì, tạo ra lỗi phép toán (divided by Zero )…
Cách kiểm thử:
Tạo ra tất cả các trường hợp test mà người dùng thường mắc lỗi ( dựa vào kinh nghiệm thực tế )
Kiểm tra các lỗi toán học, số học, phạm vi biến, kiểu biến ….

Không có nhận xét nào:

Đăng nhận xét