Bài kiểm thử gỡ lỗi chương trình 110 SGK Tin Học lớp 10 – Cánh Diều, mời các em tham khảo cùng Bumbii.
Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính. Bài 16F. Kiểm thử và gỡ lỗi chương trình.
KHỞI ĐỘNG
Có những chương trình còn lỗi vì khi thực hiện cho ra kết quả sai. Theo em, việc biết giá trị của một số biến ngay sau khi mỗi câu lệnh được thực hiện có thể giúp tìm ra lỗi của chương trình hay không?
Đáp án:
Việc biết giá trị của một số biến ngay sau khi mỗi câu lệnh được thực hiện sẽ cho em biết câu lệnh đó có cho kết quả đúng như em mong muốn hay không.
Do vậy có thể giúp em tìm ra lỗi của câu lệnh, tìm ra lỗi của chương trình.
LỖI TRONG CHƯƠNG TRÌNH VÀ KIỂM THỬ
Hoạt động 1
Trong những phần trước, các bài tập và bài thực hành không quá phức tạp. Đã lần nào em soạn chương trình và thực hiện được ngay từ lần chạy đầu tiên chưa?
Đáp án:
Chương trình chạy lần đầu tiên thường gặp lỗi. Người lập trình thường gặp các lỗi như sau:
– Lỗi cú pháp: lỗi câu lệnh viết không theo đúng quy định của ngôn ngữ, ví dụ như thiếu hoặc thừa dấu ngoặc trong biểu thức, tên biến sai quy cách,…
– Lỗi ngoại lệ (Exceptions Error) còn gọi là lỗi Runtime, là lỗi xảy ra khi chương trình đang chạy một câu lệnh nào đó không thể thực hiện được. Lỗi này sẽ được thông báo ngay trên màn hình.
– Lỗi ngữ nghĩa (lỗi logic) là lỗi mặc dù các câu lệnh viết đúng quy định của ngôn ngữ nhưng sai trong thao tác xử lí nào đó, ví dụ như viết nhầm dấu phép tính, nhầm tên biến, thiếu câu lệnh cần thiết,..
TRUY VẾT VỚI CÁCH BỔ SUNG CÂU LỆNH THEO DÕI KẾT QUẢ TRUNG GIAN
Hoạt động 2
Tại sao rất khó phát hiện lỗi nếu chỉ dùng biện pháp đọc kĩ lại chương trình?
Đáp án:
Khi đọc kĩ lại chương trình ta không biết được là thực tế máy có thực hiện đúng ý muốn của người lập trình hay không. Có thể ở một bước nào đó kết quả không như mong muốn, vì chủ quan mà ta không nhận thấy được.
LUYỆN TẬP
Em hãy soạn thảo và thực hiện từng bước chương trình ở hình sau:
Đáp án:
Cách 1. Thêm các câu lệnh để quan sát được sự thay đổi của các biến sau mỗi bước xử lí.
Chương trình:
s = 0
for i in range(1,4):
print("i = ", i)#Lần lặp thứ i
print("s = ", s)#Giá trị s trước khi cộng dồn ở lần i
s = s + i*i
print("s + i*i = ",s)#Giá trị s sau khi cộng dồn ở lần lặp i
print("s = ",s)
Kết quả chương trình:
Cách 2. Sử dụng cửa sổ Debug Control của Python. Chạy chương trình, mở cửa sổ Debug Control và nhấn phím Step rồi theo dõi kết quả của bước chạy, tiếp theo nhấn phím Step chạy bước tiếp theo,…Một vài cửa sổ quan sát dưới đây:
CÂU HỎI TỰ KIỂM TRA
Câu 1. Em hãy nêu một vài lỗi thuộc nhóm lỗi cú pháp và một vài lỗi thuộc nhóm lỗi ngữ nghĩa.
Đáp án: Một số lỗi thường gặp là:
– Lỗi cú pháp: lỗi viết sai từ khoá, viết nhầm chữ hoa thành chữ thường khi viết tên biến, lỗi viết sai tên hàm, biểu thức thiếu dấu ngoặc.
– Lỗi ngữ nghĩa: lỗi không lùi bên phải theo quy định của cấu trúc khối lệnh, viết sai chỉ số của phần tử trong câu lệnh trích xâu con trong một xâu hay một danh sách con trong một danh sách, công thức trong một lệnh xử lí dữ liệu bị sai,…
Câu 2. Tại sao phải tạo nhiều bộ dữ liệu vào khác nhau để kiểm thử chương trình?
Đáp án:
Bộ dữ liệu kiểm thử (bộ test) không chứng minh tính đúng đắn cua chương trình mà chỉ giúp tìm lỗi. Chương trình có thể cho ra kết quả đúng với bộ dữ liệu này nhưng có thể cho ra kết quả sai trong một số trường hợp dữ liệu vào khác.
Ví dụ: Giải phương trình bậc hai nhưng chưa xử lí riêng trường hợp biệt số delta bằng 0.
Do vậy nên xây dựng bộ test có thể bao gồm nhiều test, mỗi test có ý đồ riêng, với mục đích là khi chương trình chạy lỗi, người lập trình có thể xác định được vấn đề nằm trong trường hợp nào.
Câu 3. Có bao nhiêu nhóm dữ liệu khác nhau cần tạo ra để kiểm thử chương trình?
Đáp án:
Nên tạo ra 3 nhóm dữ liệu để kiểm thử chương trình:
– 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, nhỏ nhất có thể.
Câu 4. Có thể xem giá trị các biến sau khi thực hiện một câu lệnh ở đâu?
Đáp án:
Ở cửa sổ Shell nếu có lệnh hiển thị các giá trị biến đó ra màn hình. Ngoài ra có thể xem giá trị các biến sau khi thực hiện một câu lệnh bằng việc chạy từng bước của chương trình với công cụ Debugger của phần mềm ngôn ngữ Python.
Xem thêm các bài khác tại Giải bài tập sách giáo khoa Tin học Lớp 10 – Cánh Diều
Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech
Không bao giờ từ bỏ hy vọng. Cố gắng mỗi ngày.