Slide bài giảng tin học 10 kết nối bài 30: Kiểm thử và gỡ lỗi chương trình
Slide điện tử bài 30: Kiểm thử và gỡ lỗi chương trình. Trình bày với các hiệu ứng hiện đại, hấp dẫn. Giúp học sinh hứng thú học bài. Học nhanh, nhớ lâu. Có tài liệu này, hiệu quả học tập của môn Tin học 10 Kết nối tri thức sẽ khác biệt
Bạn chưa đủ điều kiện để xem được slide bài này. => Xem slide bài mẫu
Tóm lược nội dung
BÀI 30: KIỂM THỬ VÀ GỠ LỖI CHƯƠNG TRÌNH (2 TIẾT)
KHỞI ĐỘNG
- GV yêu cầu HS thảo luận và trả lời:
Làm thế nào để kiểm tra (test) và gỡ lỗi (debug) một chương trình?
NỘI DUNG BÀI HỌC GỒM
- Một vài phương pháp kiểm thử chương trình
- Một số ví dụ minh hoạ
HÌNH THÀNH KIẾN THỨC
1. Một vài phương pháp kiểm thử chương trình
- Cần có những gì để kiểm thử chương trình với các bộ dữ liệu test?
Nội dung ghi nhớ:
- Quan sát mã lỗi Runtime và bắt lỗi ngoại lệ: Giúp kiểm tra vị trí dòng lệnh sinh ra lỗi này, từ đó phân tích, tìm và sửa lỗi.
- Kiểm thử chương trình với các bộ dữ liệu test:
+ Cần có nhiều bộ test
+ Cần có bộ test ngẫu nhiên
+ Cần có bộ test dữ liệu ở vùng biên
- In các thông số trung gian: Thông qua các giá trị trung gian trong quá trình thực hiện chương trình, nếu kết quả cuối cùng có lỗi thì sẽ dễ tìm ra lỗi đó.
- Sử dụng công cụ breakpoint (điểm dừng): cho phép tạo ra các điểm dừng bên trong chương trình, giúp người kiểm thử có thể quan sát, kiểm tra tính đúng đắn của chương trình.
2. Một số ví dụ minh hoạ
- Để kiểm thử có những bước nào?
Nội dung ghi nhớ:
- Cách 1: In các giá trị trung gian để kiểm soát chương trình
- Cách 2: Sử dụng công cụ tạo điểm dừng của phần mềm soạn thảo lập trình.
Với phần mềm soạn thảo lập trình Wingware, các bước trên như sau:
+ Bước 1: Thiết lập điểm dừng: Nháy chuột tại vị trí muốn tạo điểm dừng trong cột đầu tiên. Sẽ xuất hiện ô tròn màu đỏ tại vị trí điểm dừng.
+ Bước 2: Tiến chạy chương trình bằng cách nháy vào nút hoặc F5 để chạy. Chương trình sẽ chạy bình thường nhưng sẽ dừng lại trước lệnh đã đánh dấu.
- Bước 3: Quan sát các biến hệ thống của chương trình tại thời điểm hiện thời. Nháy chuột vào nút để chạy tiếp và dừng lại tại vị trí điểm dừng tiếp theo (hoặc vòng lặp tiếp theo). Muốn xem thông tin các biến, nháy lên trang Stack Data để quan sát.
C. HOẠT ĐỘNG LUYỆN TẬP
- Hoàn thành bài tập trắc nghiệm sau:
Câu 1: Chương trình sau nên sửa như thế nào. Chọn phương án đúng nhất
fruits = ['Banana', 'Apple', 'Lime']
print(fruits[4])
A. Thay đổi kiểu dữ liệu của từng phần tử trong mảng.
B. Kiểm tra chỉ số của mảng khi thực hiện lệnh.
C. Thay đổi tên mảng.
D. Chương trình không có lỗi.
Câu 2: Chương trình sau phát sinh lỗi gì?
>>> 1 / 0
0.5
>>> 2 ** 3
8
A. NameError.
B. TypeError.
C. ZeroDivisionError.
D. Syntax Error.
Câu 3: Trong các phát biểu sau, phát biểu nào chưa chính xác về kiểm thử chương trình?
A. Hiện nay, có ít phương pháp và công cụ khác nhau để kiểm thử chương trình.
B. Chương trình cần được thử với một số bộ dữ liệu test gồm đầu vào tiêu biểu và kết quả đầu ra biết trước.
C. Các bộ test phụ thuộc vào các tiêu chí khác nhau.
D. Các bộ test dữ liệu nên có nhiều bộ test ngẫu nhiên,...
Câu 4: Để tính giá trị trung bình của một danh sách số A, người lập trình đã dùng lệnh gttb = sum(A) / len(A). Những mã lỗi ngoại lệ nào có thể xảy ra?
A. NameError.
B. ZeroDivisionError.
C. Không thể xảy ra lỗi
D. Có thể xảy ra cả hai lỗi trên.
Câu 5: Lỗi chương trình Python có bao nhiêu loại?
A. 2.
B. 3.
C. 4.
D. 5.
Gợi ý đáp án:
Câu | 1 | 2 | 3 | 4 | 5 |
Đáp án | B | C | A | D | B |
D. HOẠT ĐỘNG VẬN DỤNG
Vận dụng kiến thức, GV yêu cầu HS trả lời câu hỏi:
Câu 1: Chương trình sau có lỗi ở dòng lệnh nào?
n = int(input("Nhập số tự nhiên n: "))
s = ""
for i in range(10):
s = s + i
Câu 2:Chương trình sau mắc lỗi gì?
def func(n)
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
print(func(1000))