làm bốn nhóm khác nhau.
Nhóm kĩ thuật kiểm thử tĩnh thú nhất gồm các kĩ thuật thẩm định mà nguồn hay thẩm định đặc tã với mục tiêu kiểm tra sự tuân thủ các nguyên tắc lập trinh hay nguyên tắc đặc tã được đặt ra. Hơn nữa, thẩm định mã nguồn hay đặt tả còn giúp phát hiện ra những điểm khó hiểu và dấu hiệu lỗi. Chất lượng của các kĩ thuật này phụ thuộc nhiều vào năng lực của thẩm định viên.
Bảng 2.2. Hiệu qua phát hiện lỗi cùa các kĩ thuật kiểm thử
Kĩ thuật Loại lỗi Thẩm định mã nguồn Phân tích tĩnh Chứng minh sự đúng đắn Kiểm thử cấu trúc Kiểm thử chức năng Tính
toán trung bình trung bình lớn lớn trung bình
Lô-gic trung bình trung bình lớn lớn trung bình
Xử lí dữ liệu lớn lớn trung bình hạn chế lớn Giao tiếp lớn lớn hạn chế lớn trung bình Định nghĩa dữ liệu
trung bình trung bình trung bình hạn chế trung bình
Bảng 2.3. Tỉ lệ phát hiện các loại lỗi
Kĩ thuật Tỉ lệ phát hiện Thẩm định mã nguồn 0,35-0,90 Phân tích tĩnh 0,20 - 0.40 Chứng minh sự đúng đắn 0,50- 1,00 Kiểm thử cấu trúc 0,20 - 0.70 Kiểm thử chức năng 0.20 - 0.70
Nhóm kĩ thuật kiểm thử tĩnh thứ hai gồm các kĩ thuật đánh giá độ lón một sổ lính chát cùa mã nguồn, như số dòng lệnh, số dữ liệu vào/ra, độ phức tạp... Mục tiêu cùa các kĩ thuật này nhằm so sánh độ lớn một số tính chất của mã nguồn với các ngưỡng đặt ra trước. Các kĩ thuật được sử dụng phổ biển là các kĩ thuật đánh giá độ phức lạp của McCabe hay của Halstead.
- Nhóm kĩ thuật kiểm thử tĩnh thứ ba gồm các kĩ thuật chứng minh sự đúng đắn của chưcmg trình. Mục tiêu của các kĩ thuật này không phải là xác minh mà là chứng tó rằng chương.trình hay thuật toán đúng đắn. Khái niệm đúng đắn phụ thuộc vào đặc tả chương trình. Chứng minh sự đúng đắn là những kĩ thuật phức tạp, thường chỉ được thực hiện đối với các phần mềm đòi hói độ tin cậy cao.
- Nhóm kĩ thuật kiểm thử tĩnh thứ tư gồm các kĩ thuật phân tích luồng dữ liệu hay luồng điều khiển của một chương trình nhằm kiểm tra các tính chất có được tuân thủ hay không. Chẳng hạn, các tính chất có thể kiểm tra bởi các kĩ thuật này, như : biến được khai báo nhựng không sử dụng, biến được gán liên tục hai lần mà không sử dụng giữa hai lần gán đó...
- Nhóm các kĩ thuật kiểm thử chức năng là những kĩ thuật được sử dụng phố biến nhất để kiêm thử phần mềm, bởi vi chúng cho phép trá lời trực tiếp quan tâm cùa kiểm thử viên là “kiểm tra xem phần mềm có thực hiện đúng chức năng cùa nó hay không'’. Mục tiêu của các kĩ thuật kiểm thử này là kiếm thừ tất cả các điều kiện hoạt động cùa phần mềm hay đơn vị phần mềm như nó được đặc tà.
- Mục tiêu của các kĩ thuật kiểm thử cấu trúc là bao phủ cấu trúc mã nguồn. Sự bao phủ có thể dựa trên nhiều tiêu chí khác nhau, nhử bao phủ các lệnh, bao phù các rẽ nhánh, bao phủ các điều kiện, bao phủ các lộ trình...
- Chúng ta có thể nhận thấy rằng mục tiêu của các nhóm kĩ thuật kiểm thử là khác nhau. Việc sử dụng kĩ thuật nào là phụ thuộc vào yêu cầu về kiểm thử đối với phần mềm hay độ tin cậy của phần mềm. Các kĩ thuật kiểm thử này bổ sung lẫn nhau dế phát hiện ra các loại lỗi khác nhau nhàm tạo ra phần mềm có chất lượng tốt nhất có thể.