[toc:ul]
- Kiểm thử là công đoạn quan trọng trong quy trình sản xuất phần mềm, giúp kiểm tra tính hoạt động của chương trình.
- Phát hiện lỗi trong chương trình là một trong những mục đích chính của việc kiểm thử.
- Lỗi chương trình có thể được phân thành hai loại:
+ Lỗi cú pháp: là lỗi viết chương trình, câu lệnh sai cú pháp dẫn đến chương trình không hoạt động.
Hầu hết các ngôn ngữ lập trình cung cấp công cụ phát hiện lỗi cú pháp.
Ngôn ngữ lập trình trực quan như Scratch giúp hạn chế những tình huống gây ra lỗi cú pháp.
+ Lỗi logic: là lỗi xảy ra trong trường hợp chương trình hoạt động nhưng đưa ra kết quả sai.
VD: Chương trình ở Hình 2 đưa ra kết quả sai khi nhập giá trị a, b bằng nhau.
Thực hiện chương trình với các bộ dữ liệu cụ thể là cách thường được sử dụng để phát hiện lỗi logic trong chương trình.
- Các bộ dữ liệu thử cần được xây dựng để kiểm thử các tình huống có thể xảy ra khi đưa chương trình vào sử dụng.
- Bộ dữ liệu thử dùng để phát hiện lỗi trong chương trình; bộ dữ liệu thử cần được xây dựng để kiểm tra các tình huống xảy ra khi đưa chương trình vào sử dụng.
- Chương trình ở Hình 4 trong SGK thực hiện giải phương trình bậc nhất ax - b = 0
với hệ số a, b được nhập từ bàn phím; hệ số a phải khác không; có ba trường hợp:
phương trình vô nghiệm khi a = 0, b ≠ 0; phương trình có vô số nghiệm khi a = 0, b = 0; phương trình có một nghiệm khi a ≠ 0.
- Các bộ dữ liệu thử tương ứng với các trường hợp là: a = 0, b ≠ 0; a = 0, b =0; a ≠ 0, b là số bất kì.
- Sau khi phát hiện lỗi, ta cẩn tìm câu lệnh, cấu trúc điều khiển gây ra lỗi, nguyên nhân gây ra lỗi và sửa lỗi chương trình (còn được gọi là gỡ lỗi).
a) Tìm lỗi
- Các công cụ hỗ trợ lập trình giúp xác định các câu lệnh, cấu trúc điều khiển sai cú pháp một cách dễ dàng.
- Tuy nhiên, việc phát hiện lỗi logic thường không dễ dàng bằng cách này.
- Dưới đây là một số lưu ý trong việc xác định vị trí, nguyên nhân gây lỗi logic:
+ Cần tập trung xem xét câu lệnh trực tiếp tạo ra lỗi và những câu lệnh, cấu trúc điều khiển có liên quan logic đến lỗi.
+ Xem xét kỹ lưỡng, cụ thể hoạt động của câu lệnh, cấu trúc điều khiển này trong tình huống phát sinh lỗi.
+ Bằng tư duy logic của bản thân, ta cần phân tích, suy luận để xác định nguyên nhân gây lỗi.
- Bổ sung câu lệnh để theo dõi sự thay đổi giá trị của các biến, kết quả thực hiện câu lệnh, cấu trúc điều khiển nào đó giúp xác định vị trí, nguyên nhân gây ra lỗi dễ dàng và nhanh chóng hơn khi cần thiết.
b) Sửa lỗi
- Khi đã xác định được câu lệnh, cấu trúc điều khiển, nguyên nhân gây ra lỗi ta có thể thực hiện chỉnh sửa lỗi.