Một chiến lược kiểm thử là một kế hoạch kiểm thử, xác định các chức năng của hệ thống hay các luồng của ITG cần được kích hoạt. Trong công cụ SATAN, chiến lược kiểm thử dựa trên các luồng. Đặc tả các ca kiểm thử là định nghĩa tập con các luồng cần được kích hoạt nhằm đảm bảo sự bao phủ hệ thống.
SATAN định nghĩa hai chiến lược kiểm thử:
o Chiến lược kết hợp (combinative strategies): nguyên tắc của các chiến lược này là phân tích một chuỗi các ca kiểm thử để định vị
51
lỗi. Chúng ta kích hoạt tất cả các luồng được chọn và ghi nhận các thông tin lỗi có thể có. Các thông tin lỗi này sẽ được phân tích trong giai đoạn chẩn đoán lỗi. Có hai chiến lược kết hợp sau:
Chiến lược All-path: trong chiến lược này, tất cả các luồng của ITG được kích hoạt.
Chiến lược Multi-Clue: tập hợp các luồng được kích hoạt là tập hợp nhỏ nhất các luồng bao phủ tất cả các mô-đun của ITG và đảm bảo xác định chính xác nhất các lỗi, như minh họa trong hình 2.4 và 2.5.
Hình 2.4. Minh họa chiến lược Multi-Clue
Hình 2.5. Phân tích kết quả kiểm thử khi áp dụng chiến lược Multi-Clue
T1 T2 T2 A và B A hoặc B Hệ thống C lỗi A lỗi B lỗi Thành công Thất bại Thành công Thất bại Thành công Thất bại A C B Kiểm thử T1 Kiểm thử T2
52
o Chiến lược tăng dần (incremental strategies): các chiến lược này tìm cách bao phủ dần dần tất cả các mô-đun của đồ thị, như minh họa trong hình 2.6. Nguyên tắc của các chiến lược này là khi chúng ta tìm thấy một lỗi, chúng ta phải sửa lỗi trước khi thực hiện ca kiểm thử tiếp theo. Các luồng cần kích hoạt được sắp xếp bởi các lớp theo một số tiêu chí. Chúng ta có thể phân biệt các chiến lược tăng dần theo tiêu chí kiểm thử:
Chiến lược Start-Small: tiêu chí của chiến lược này giảm tối thiểu chi phí chẩn đoán lỗi. Luồng đầu tiên được thực thi chứa một số ít nhất các mô-đun. Chọn luồng được thực thi tiếp theo sao cho phủ được số tối thiểu các mô-đun chưa được kích hoạt. Chúng ta tiếp tục như vậy cho đến khi tất cả các mô-đun được kích hoạt.
Chiến lược Big-Start: tiêu chí của chiến lược này là bao phủ một cách nhanh nhất các mô-đun của ITG. Luồng đầu tiên được thực thi chứa một số lớn nhất các mô-đun. Chọn luồng được thực thi tiếp theo sao cho phủđược số lớn nhất các mô-đun chưa được kích hoạt. Chúng ta tiếp tục như vậy cho đến khi tất cả các mô-đun được kích hoạt.
Hình 2.6. Chiến lược Start-Small