Báo cáo học liệu
Mua học liệu
Mua học liệu:
-
Số dư ví của bạn: 0 coin - 0 Xu
-
Nếu mua học liệu này bạn sẽ bị trừ: 2 coin\Xu
Để nhận Coin\Xu, bạn có thể:
Lý thuyết SVIP
1. 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 khi có lệnh viết sai cú pháp hoặc sai cấu trúc quy định, chương trình sẽ lập tức dừng và thông báo lỗi cú pháp (Syntax Error).
Ví dụ: Chương trình dưới đây thông báo lỗi vì câu lệnh while viết sai cú pháp.
- Lỗi khi không thể thực hiện một lệnh trong chương trình, chương trình dừng lại và thông báo mã lỗi gọi là lỗi ngoại lệ (Exceptions Error).
Ví dụ:
- Chương trình chạy không lỗi ngoại lệ nhưng kết quả đưa ra sai, không chính xác là lỗi ngữ nghĩa (còn gọi là lỗi logic) bên trong chương trình.
Ví dụ:
Môi trường lập trình có công cụ hỗ trợ người dùng tìm lỗi.
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 các kết quả chương trình.
Cần có nhiều bộ dữ liệu vào (các bộ test) khác nhau.
Cần chuẩn bị các bộ dữ liệu vào để kiểm tra tính đúng đắn của chương trình. Dữ liệu kiểm thử phải phù hợp với các ràng buộc đã cho và chia thành 3 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 (ví dụ, khi danh sách chỉ bao gồm một phần tử).
- Kiểm thử những trường hợp các tham số nhận giá trị lớn nhất có thể.
Dữ liệu kiểm thử ở 2 nhóm đầu cần có kích thước đủ nhỏ để có thể kiểm chứng các kết quả chương trình đưa ra.
Mục đích của dữ liệu ở các nhóm:
- Dữ liệu nhóm 2 kiểm tra tính trọn vẹn của thuật toán trong thực hiện chương trình.
- Dữ liệu nhóm 3 kiểm tra tính hiệu quả của chương trình và tính hợp lí trong tổ chức dữ liệu.
2. Truy vết với cách bổ sung câu lệnh theo dõi kết quả trung gian
Một cách tìm ra lỗi ngữ nghĩa là bổ sung vào chương trình những câu lệnh đưa ra kết quả trung gian nhằm truy vết các xử lí của chương trình.
Sau khi đã chỉnh sửa xong, cần xóa đi các câu lệnh đã thêm để truy vết hoặc biến chúng thành dòng chú thích.
Ví dụ:
Ở ví dụ này, câu lệnh print("i =", i, "max =", max) được thêm vào để đưa ra các phần tử tham gia tìm kiếm max, tránh hiện tượng chương trình cho kết quả sai do nguyên nhân ở khâu nhập dữ liệu hoặc ở phạm vi tìm kiếm max.
3. Truy vết với công cụ gỡ lỗi của ngôn ngữ lập trình
Để người lập trình không cần phải can thiệp vào chương trình như cách đã nêu ở mục 2 mà vẫn truy vết tìm được lỗi, ngôn ngữ Python cung cấp công cụ Debug (gỡ lỗi).
Các thao tác kích hoạt chế độ gỡ lỗi:
- Trên cửa sổ Shell, mở file chương trình cần gỡ lỗi, kết quả là chương trình này xuất hiện (trong cửa sổ Code).
- Chọn Debug trên cửa sổ Shell và sau đó chọn Debugger. Kết quả là cửa sổ Debug Control sẽ xuất hiện.
Việc bắt đầu thực hiện chương trình vẫn được tiến hành như bình thường bằng cách chọn Run Module (hoặc ấn F5) trong cửa sổ Code.
Công cụ Debug của Python cho phép đặt các điểm dừng (Breakpoint) để tránh các đoạn chương trình không cần truy vết.
Python còn trang bị một thư viện riêng cung cấp các dịch vụ gỡ lỗi, đó là thư viện PDB.
Bạn có thể đánh giá bài học này ở đây