Lỗi nào khó phát hiện nhất?
A. Lỗi cú pháp.
B. Lỗi ngữ nghĩa.
C. Lỗi ngoại lệ.
D. Cả ba lỗi trên.
Đáp án đúng là: B
Các lỗi ngữ nghĩa khó phát hiện hơn, chỉ có thể đoán nhận và tìm thấy thông qua quan sát kết quả thực hiện chương trình với các bộ dữ liệu vào khác nhau.
Sử dụng kiến thức dưới đây:
Lỗi trong chương trình và kiểm thử
Quá trình xác định lỗi và sửa lỗi được gọi là gỡ lỗi. Các lỗi thường gặp như sau:
- Lỗi cú pháp là lỗi câu lệnh viết không theo đúng quy định của ngôn ngữ, lỗi thông báo cụ thể, rõ ràng về đặc trưng lỗi và nơi xảy ra lỗi.
- Lỗi ngoại lệ là lỗi Runtime, xảy ra khi chương trình đang chạy, một lệnh nào đó không thực hiện được, lỗi sẽ thông báo trên màn hình.
- Lỗi ngữ nghĩa là lỗi logic, dù viết đúng quy định của ngôn ngữ nhưng sai trong thao tác xử lí nào đó. Viết nhầm dấu phép tính, nhầm tên biến, … là lỗi khó phát hiện nhất.
Ví dụ: Xét chương trình ở Hình 16.1a, chương trình này thực hiện yêu cầu nhập hai số nguyên p, q và danh sách a gồm các số nguyên, sau đó đưa ra max{|ai|, i = p, p + 1, …, q}. Biết rằng các phần tử của danh sách a được đánh chỉ số bắt đầu từ 0 và 0 ≤ p ≤ q < len(a).
Hình 1a: Chương trình cần kiểm thử và tìm lỗi
Để kiểm tra tính đúng đắn của chương trình so với yêu cầu đề bài, chuẩn bị các bộ dữ liệu vào.
Dữ liệu kiểm thử phải phù hợp với các ràng buộc đã cho và chia thành ba nhóm:
- Kiểm thử những trường hợp thường gặp trong thực tế.
- Kiểm thử những trường hợp đặc biệt.
- Kiểm thử những trường hợp các tham số nhận giá trị lớn nhất có thể.
Tham khảo thêm một số tài liệu liên quan:
Lý thuyết Tin học 10 Bài 16 (Cánh diều): Kiểm thử và gỡ lỗi chương trình
Trắc nghiệm Tin học 10 Bài 16 (Cánh diều): Kiểm thử và gỡ lỗi chương trình
Cho đoạn chương trình sau:
a=int(input()
print(a)
Lỗi trong chương trình trên là lỗi:
Để kiểm thử những trường hợp thường gặp trong thực tế ta chọn bộ dữ liệu như thế nào?
Để xem giá trị các biến sau khi thực hiện một câu lệnh ta dùng:
Để kiểm thử chương trình có bao nhiêu nhóm dữ liệu khác nhau cần tạo ra: