
•Với mỗi bài toán, làm thế nào để:
–Thiết kế giải thuật nhằm giải quyết bài toán đó
–Cài đặt giải thuật bằng một chương trình máy tính
- Hãy làm cho chương trình
chạy đúng trước khi tăng tính
hiệu quả của chương trình
- Hãy tăng tính hiệu quả của
chương trình và đồng thời thể
hiện tốt phong cách lập trình
của cá nhân

CHƯƠNG IV.
CÁC KỸ THUẬT KIỂM TRA
TÍNH ĐÚNG ĐẮN VÀ TÍNH AN
TOÀN CỦA CHƯƠNG TRÌNH
PHẦN MỀM
I. Bẫy lỗi (error handling)
II. Lập trình phòng ngừa (defensive programming)
III. Kiểm thử (Testing)
IV. Gỡ rối (Debugging)

Mở đầu
•Lỗi: chương trình chạy không đúng như đã định
•Chuỗi kiểm tra chương trình
–Bẫy lỗi (error handling)
–Lập trình phòng ngừa (defensive programming)
–Kiểm thử (testing)
–Gỡ rối (debugging)
•Phân biệt:
–Bẫy lỗi: Prevent errors
–Lập trình phòng ngừa: Detect problems as early as
possible
–Kiểm thử: finished code
–Gỡ rối: fixing defects uncovered by testing

I. BẪY LỖI

Nguyên tắc
•Khi lỗi xảy ra cần
–Định vị nguồn gây lỗi
–Kiểm soát lỗi
•Luôn có ý thức đề phòng các lỗi hay xảy ra trong
chương trình, nhất là khi đọc file, dữ liệu do
người dùng nhập vào và cấp phát bộ nhớ.
•Áp dụng các biện pháp phòng ngừa ngay cả khi
điều đó có thể dẫn tới việc dừng chương trình
•In các lỗi bằng stderr stream.
fprintf (stderr,"There is an error!\n");