Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Với tóm tắt lý thuyết Tin học lớp 10 Bài 16: Kiểm thử và gỡ lỗi chương trình sách Cánh diều hay nhất, ngắn gọn sẽ giúp học sinh nắm vững kiến thức trọng tâm, ôn luyện để học tốt môn Tin 10.

Lý thuyết Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

1. Lỗi trong chương trình và kiểm thử

Quảng cáo

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.

Ví dụ: Thiếu hoặc thừa dấu ngoặc trong biểu thức, tên biến sau quy cách, …

- 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).

Quảng cáo


Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 1)

Hình 1a: Chương trình cần kiểm thử và tìm lỗi

Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 2)

Để 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:

Quảng cáo

- 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ể.

2. Truy vết và cách bổ sung câu lệnh theo dõi kết quả trung gian

- Bổ sung vào chương trình những câu lệnh đưa ra các 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 thông tin chú thích.

- Sai sót có thể xảy ra ngay khi nhập dữ liệu vào, đây cũng là chỗ cần quan tâm khi tìm lỗi.

- Câu lệnh để đưa ra các phần tử tham gia tìm kiếm max như sau:

print (“i = “, I, “max= “ , max)

Câu lệnh này có thể đặt trước hay sau câu lệnh đưa ra kết quả của chương trình.

Quảng cáo

3. Truy vết với công cụ gỡ lỗi ngôn ngữ lập trình

Để kích hoạt chế độ gỡ lỗi, cần thực hiện lần lượt thao tác sau:

- 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 ở cửa sổ Code.

- Chọn Debug trên cửa sổ Shell và chọn Debugger (Hình 3). Kết quả là cửa sổ Debug Control sẽ xuất hiện (Hình 4).

Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 3)

- Bắt đầu thực hiện chương trình tiến hành bình thường chọn Run Module (hoặc nhấn phím F5) trong cửa sổ Code.

- Chọn Step để thực hiện câu lệnh hiển thị phía dưới, lệnh vào – ra dữ liệu nháy chuột một số lần.

Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 4)

Hình 5: Sự thay đổi của biến khi một câu lệnh được thực hiện

4. Thực hành gỡ lỗi chương trình

Bài toán: Cho a là danh sách các số nguyên. Em hãy tạo danh sách b có các phần tử ở vị trí lẻ bằng phần tử ở vị trí tương đương của a, các phần tử ở vị trí chẵn bằng phần tử ở vị trí tương ứng của a cộng thêm 1, tức là:

Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 5)

So sánh số lượng các phần tử giá trị chẵn ở a với số lượng các phần tử giá trị chẵn b, đưa ra thông báo. Gọi p là số lượng các phần tử giá trị chẵn ở a, q là số lượng các phần tử giá trị chẵn ở b và đưa ra thông báo “a ít hơn nếu p < q, “b ít hơn” nếu p > q và “Bằng nhau” trong trường hợp còn lại.

Nhiệm vụ: Chương trình ở Hình 6 giải bài toán đã nêu nhưng còn có lỗi và cần được gỡ lỗi. Em hãy áp dụng các phương pháp truy vết để xác định lỗi và đề xuất cách sửa một số ít nhất các câu lệnh để có chương trình đúng.

Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 6)

Hướng dẫn:

- Phương pháp dùng công cụ gỡ lỗi (Debug)

Để gỡ lỗi cần chuẩn bị một danh sách số nguyên, ví dụ: [5, 3, 2, 2, 1, 2]. Chọn Debugger sau đó chọn Step để thực hiện từng bước các câu lệnh, quan sát giá trị hai danh sách a và b, Sau một vài lần thực hiện câu lệnh trong vòng lặp:

for i in range (0, n, 2) :

b[i] = b[i] + 1

Ta thấy a và b đồng thời thay đổi giá trị, mặc dù trong vòng lặp chỉ chứa câu lệnh thay đổi giá trị của danh sách b. Ví dụ, sau khi i=2 ta có kết quả như Hình 7.

Lý thuyết Tin học 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình (ảnh 7)

Hình 7: Minh họa kết quả của phương pháp dùng công cụ gỡ lỗi

Điều này nói lên rằng chương trình chưa tạo ra bản sao của danh sách a mà chỉ tạo ra một tên mới cho cùng một danh sách a. Vậy câu lệnh sai trong chương trình là b = a. Cần thay nó bằng câu lệnh b= [] + a. Đây là một lỗi mà nếu chỉ đọc chương trình sẽ rất khó phát hiện.

- Phương pháp bổ sung vào chương trình các câu lệnh truy vết

Ta có thể thêm các câu lệnh print (a)print (b) để xuất ra giá trị các danh sách a và b sau mỗi vòng lặp. Dễ dàng nhận thấy a và b cùng đồng thời thay đổi, từ đó rút ra được kết luận như đã nêu ở phương pháp dùng công cụ gỡ lỗi.

Xem thêm tóm tắt lý thuyết Tin học lớp 10 Cánh diều hay khác:

Xem thêm các tài liệu học tốt lớp 10 hay khác:

ĐỀ THI, GIÁO ÁN, SÁCH LUYỆN THI DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 10

Bộ giáo án, bài giảng powerpoint, đề thi, sách dành cho giáo viên và gia sư dành cho phụ huynh tại https://tailieugiaovien.com.vn/ . Hỗ trợ zalo VietJack Official

Tổng đài hỗ trợ đăng ký : 084 283 45 85

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.


Giải bài tập lớp 10 Cánh diều khác
Tài liệu giáo viên