Thứ Bảy, 3 tháng 9, 2011

Blackbox testing và Whitebox testing

- White box tesing: là cách thức test dựa trên code của chương trình, sau đó viết các test case nhằm phủ kín (coverage) các trường hợp cần test. Có WBT có 2 loại: Control flow và Data flow.

+ Control flow: nghe khá rối rắm nhưng thực ra rất đơn giản.
Các bạn biết trong các ngôn ngữ lập trình các lệnh sẽ được thực hiện theo các cách sau:
1. Tuần tự:
2. Rẽ nhánh: như if... else...
3. Vòng lặp: for, while, loop
Như vậy nếu mình lập ra các trường hợp test cho phủ kín các cấu trúc nào thì coi như đạt yêu cầu
Ví dụ.
if (x>0)
{

}
else
{

}
Cần phải có 2 test case: 1. x>0 2. x<=0

+ Data flow: Tập trung vào kiểm tra giá trị của các biến trong chương trình Biến sẽ xuất hiện theo 2 dạng: khai báo và gán giá trị Biến sẽ được sử dụng theo 2 cách: predicate (kiểm tra điều kiện) và computational (tính toán) Trên thực tế, để hiện thực cách test này phải xây dựng sơ đồ Control Flow Diagram hoặc Data Flow Diagram. Việc này có thể thực hiện tự động bằng cách phần mềm hỗ trợ. Sau khi viết các test case, có thể chạy các Coverage Tool để xem độ phủ code bao nhiêu, chỗ nào cần phải viết thêm test case.

- Black box testing: là phương pháp test dựa trên đầu vào và đầu ra của chương trình để test mà không quan tâm tới code bên trong được viết ra sao. Phương pháp này thường dùng để test chức năng của chương trình. Có nhiều phương pháp dành cho BBT nhưng tựu trung trải qua 3 bước sau:
1. Phân chia giá trị đầu vào thành các miền giá trị khác nhau
2. Tổ hợp các miền giá trị của các đầu vào, mỗi tổ hợp là 1 test case
3. Dựa trên ràng buộc giữa các đầu vào để giảm bớt số lượng test case.

Các phương pháp phổ biến:
- Equivalence Class Partition
- Boundary Value Analysis
- Category Partition
- Cause Effect Graph

(http://javadevelopervietnam.blogspot.com/2010/02/blackbox-testing-va-whitebox-testing.html)

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

Đăng nhận xét