Một ca sai đủ bác bỏ; nhiều ca đúng chưa đủ chứng minh
Một chương trình tính tiền gửi xe giả định có thể cho đúng với 10, 20 và 30 phút nhưng sai đúng tại mốc 60 phút. Mười kết quả đúng chỉ cho biết chương trình **đã đúng trên mười đầu vào ấy**. Nếu tìm thấy một đầu vào hợp lệ mà kết quả sai, có thể khẳng định chương trình chưa đáp ứng yêu cầu.
Kiểm thử nên có dữ liệu thông thường, mốc ranh giới và tình huống đặc biệt. Chẳng hạn quy tắc giả định “không quá 60 phút trả 5000 đơn vị, quá 60 phút trả 8000 đơn vị” cần thử 59, 60 và 61 phút. Các con số này chỉ dùng để học kiểm thử, không phải bảng giá thực tế.
Quan sát chỗ sai rồi sửa
Khi kết quả sai, có thể cho chương trình chạy từng lệnh, đặt điểm dừng hoặc in giá trị trung gian để biết điều kiện nào đã được xét. Sau khi sửa, chạy lại ca đã gây lỗi và các ca khác có liên quan. Cách này giúp tìm và sửa lỗi, làm tăng độ tin cậy; nó không thay cho lập luận rằng chương trình đúng với **mọi đầu vào hợp lệ**.
Bài luyện
Một chương trình cho kết quả đúng ở 20 ca thử. Kết luận nào chắc chắn đúng?
Số ca hữu hạn không bao phủ mọi đầu vào.
Đây là điều kết quả thử thực sự cho biết.
Ca biên có thể lộ lỗi chưa thấy.
Chạy thử không phải phép chứng minh tổng quát.
Lời giải
Hai mươi ca đúng là bằng chứng cho chính hai mươi ca ấy, chưa chứng minh đúng với mọi đầu vào hợp lệ.
Bài luyện
Nếu một đầu vào hợp lệ cho kết quả sai so với yêu cầu, cần kết luận gì?
Một phản ví dụ đủ cho thấy chương trình chưa đúng.
Số ca đúng không xóa được ca sai.
Đề đã nói đây là đầu vào hợp lệ.
Tốc độ không sửa tính đúng.
Lời giải
Một ca hợp lệ nhưng sai là phản ví dụ. Cần tìm nguyên nhân và sửa chương trình.
Bài luyện
Với quy tắc giả định “không quá 60 phút: 5000; quá 60 phút: 8000”, nhóm ca thử nào kiểm mốc tốt nhất?
Các ca đều xa mốc.
Hai phía và đúng mốc 60 giúp kiểm dấu so sánh.
Chỉ thử phía trên mốc.
Chỉ thử phía dưới mốc.
Lời giải
59, 60, 61 phút kiểm được điều kiện “không quá 60” ở sát hai phía mốc.
Đang học