Để cho thấy rằng các hệ thống cơ bản là hoàn hảo bạn hoặc
a) Cần chứng minh họ hoàn hảo
- Chứng minh toán học
- Chỉ thực tế có thể cho các chương trình tầm thường
b) Thực hiện một bài kiểm tra toàn diện
- Chỉ có thể cho các chương trình tầm thường và một số chương trình đơn giản
- Ngay khi một yếu tố thời gian bước vào thử nghiệm, không thể thực hiện một thử nghiệm toàn diện vì thời gian có thể bị chia vô thời hạn.
- Ngoài các chương trình tầm thường, các tùy chọn thực thi có thể bùng nổ theo cấp số nhân.
Trong kiểm thử phần mềm, kiểm tra toàn diện chỉ được sử dụng trong kiểm thử đơn vị một số chức năng đơn giản.
Ví dụ: Bạn muốn kiểm tra đầu vào utf-8 8 ký tự cho một số trường, bạn có thể chọn cắt đầu vào với 8 lần độ dài tối đa 6 của utf-8 tính bằng byte, thực sự có 8 * 6 = 48 byte để thực sự có số lượng hữu hạn của các khả năng.
Bây giờ bạn có thể nghĩ rằng bạn chỉ cần kiểm tra 1.112.064 điểm mã hợp lệ của mỗi trong số 8 ký tự, nghĩa là. 1.112.064 ^ 8 (giả sử 10 ^ 48) thử nghiệm (điều này khó có thể thực hiện được), nhưng bạn thực sự phải kiểm tra từng giá trị của từng trong số 48 byte hoặc 256 ^ 48, khoảng 10 ^ 120, độ phức tạp tương tự như cờ vua so với tổng số nguyên tử trong vũ trụ khoảng 10 ^ 80.
Thay vào đó, bạn có thể sử dụng, theo thứ tự nỗ lực ngày càng tăng và mỗi bài kiểm tra nên bao gồm tất cả các lần trước:
a) kiểm tra một mẫu tốt và xấu.
b) bảo hiểm mã, tức là. hãy thử kiểm tra từng dòng mã, tương đối đơn giản đối với hầu hết các mã. Bây giờ bạn có thể tự hỏi 1% mã cuối cùng mà bạn không thể kiểm tra là gì ... lỗi, mã chết, ngoại lệ phần cứng, v.v.
c) phạm vi bảo hiểm đường dẫn, tất cả các kết quả của tất cả các chi nhánh trong tất cả các kết hợp đều được kiểm tra. Bây giờ bạn biết tại sao bộ phận kiểm tra ghét bạn khi các chức năng của bạn chứa hơn 10 điều kiện. Ngoài ra, bạn tự hỏi tại sao 1% cuối cùng không thể được kiểm tra ... một số chi nhánh phụ thuộc vào các chi nhánh trước đó.
d) kiểm tra dữ liệu, kiểm tra một số mẫu có giá trị biên, giá trị có vấn đề phổ biến và số ma thuật, các giá trị zero, -1, 1, min +/- 1, max +/- 1, 42, rnd. Nếu điều này không cung cấp cho bạn phạm vi bảo hiểm đường dẫn, bạn biết rằng bạn đã nắm bắt được tất cả các giá trị trong phân tích của mình.
Nếu bạn đã làm điều này, bạn nên sẵn sàng cho kỳ thi nền tảng ISTQB.