1. Kiến thức trọng tâm
Kiểm thử là chạy chương trình với dữ liệu mẫu để phát hiện lỗi; đánh giá chương trình là nhận xét tính đúng đắn, hiệu quả và dễ sử dụng. Đây là bước không thể thiếu, vì chương trình dù cẩn thận cũng có thể chứa lỗi; phát hiện lỗi càng sớm, chi phí sửa càng thấp.
Ba loại lỗi thường gặp: lỗi cú pháp khi vi phạm quy tắc ngôn ngữ, ví dụ thiếu dấu hai chấm, được trình biên dịch phát hiện ngay; lỗi logic khi chương trình chạy được nhưng cho kết quả sai, ví dụ sai công thức, đây là lỗi khó phát hiện nhất; lỗi thời gian chạy khi chương trình đang chạy thì dừng đột ngột, ví dụ chia cho số không.
Để kiểm thử hiệu quả, cần thiết kế test case bao phủ nhiều tình huống: dữ liệu bình thường, dữ liệu biên, dữ liệu đặc biệt, dữ liệu không hợp lệ. Ví dụ: với chương trình tính trung bình cộng, cần thử dãy bình thường, dãy một số, dãy rỗng, dãy chứa chữ cái. Đánh giá dựa trên tính đúng đắn, thời gian chạy, bộ nhớ và tính dễ đọc của mã nguồn.
2. Ví dụ minh họa
Ví dụ: kiểm thử chương trình tính tổng từ 1 đến n.
n = int(input())
tong = 0
for i in range(1, n + 1):
tong += i
print(tong)
Các test case: n = 5 cho 15, đúng; n = 1 cho 1, đúng; n = 0 cho 0, đúng. Nếu nhập n = -3, chương trình in ra 0, trong khi bài toán có thể không cho phép n âm, nên cần bổ sung kiểm tra đầu vào. Nếu nhập chữ cái, chương trình báo lỗi thời gian chạy. Vậy cần thêm bước kiểm tra n là số nguyên không âm.
3. Ghi nhớ
- Kiểm thử: chạy chương trình với dữ liệu mẫu để phát hiện lỗi; đánh giá: nhận xét tính đúng đắn và hiệu quả.
- Ba loại lỗi: lỗi cú pháp, lỗi logic, lỗi thời gian chạy.
- Test case cần bao phủ dữ liệu bình thường, biên, đặc biệt và không hợp lệ.
- Phát hiện lỗi càng sớm, chi phí sửa lỗi càng thấp.
