Slide bài giảng Khoa học máy tính 11 cánh diều Chủ đề F(CS) Bài 6: Kiểm thử và sửa lỗi chương trình

Slide điện tử Chủ đề F(CS) Bài 6: Kiểm thử và sửa 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 học môn Khoa học máy tính 11 Cánh diều 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 6. KIỂM THỬ VÀ SỬA LỖI CHƯƠNG TRÌNH

 

HOẠT ĐỘNG KHỞI ĐỘNG

GV đặt câu hỏi: Theo em, tại sao chương trình sau khi hoàn thành thường hiếm khi chạy được ngay lập tức?

NỘI DUNG BÀI HỌC GỒM

  • Nguyên nhân gây lỗi và truy vết lỗi
  • Chạy thử chương trình
  • Một số kinh nghiệm thực hành gỡ lỗi chương trình
  • Tập thói quen tốt khi lập trình để dễ gỡ lỗi
  •  Tổ chức tách biệt các phần của một chương trình
  • Luyện tập
  • Vận dụng

HOẠT ĐỘNG HÌNH THÀNH KIẾN THỨC

Hoạt động 1: Nguyên nhân gây lỗi và truy vết lỗi

GV yêu cầu học sinh trao đổi: 

Nêu một số loại lỗi trong chương trình và nguyên nhân gây ra những lỗi đó.

Tại sao người lập trình có khả năng dễ dàng tìm ra chuỗi dòng lệnh gây lỗi?

Nội dung gợi ý:

Các loại lỗi và nguyên nhân

- Lỗi cú pháp: nguyên nhân có thể là không nhớ quy định, đánh máy nhầm…

- Lỗi thời gian chạy: nguyên nhân thường dó có giá trị không hợp lệ…

Truy vết lỗi và thông báo lỗi

- Vùng soạn thảo các câu lệnh trong môi trường lập trình IDE thường có hiển thị số thứ tự các dòng lệnh, đánh số tăng dần từ 1.

- Khi phát sinh một lỗi, chức năng gỡ lỗi sẽ truy vết ngược lùi về phía trên, tìm đến tận gốc, tới dòng có câu lệnh gây lỗi.

- Thông báo lỗi in ra danh sách các dòng lệnh truy vết được, ghi kèm số thứ tự dòng lệnh trong văn bản chương trình.

Hoạt động 2: Chạy thử chương trình

HS thảo luận trả lời câu hỏi:

Tại sao cần phải thực hiện việc chạy thử chương trình?

Nội dung gợi ý:

- Chạy thử cho phép người lập trình dễ phát hiện lỗi hơn, qua đó kịp thời đưa ra các biện pháp xử lí lỗi. 

→ Hạn chế được rất nhiều rủi ro phát sinh lỗi trong quá trình vận hành.

- Tập hợp toàn bộ các trường hợp đầu vào có thể xảy ra của một chương trình thường là vô hạn.

- Không thể chạy chương trình với tất cả các đầu vào có thể có. 

Hoạt động 3: Một số kinh nghiệm thực hành gỡ lỗi chương trình

GV đặt câu hỏi hướng dẫn học sinh tìm hiểu:

Ca kiểm thử là gì? Cho ví dụ minh họa.

Liệt kê các nguyên tắc hướng dẫn “chia để trị” và “Hãy in ra”.

Nội dung gợi ý:

Các ca kiểm thử để phát hiện lỗi chương trình

Một ca kiểm thử là một trường hợp đã cho các đầu vào cụ thể và dự đoán trước kết quả đầu ra đúng yêu cầu của bài toán.

- Cần kiểm thử:

+ Đủ các trường hợp của cấu trúc rẽ nhánh.

+ Các trường hợp ở đầu mút của một biểu thức điều kiện.

+ Các trường hợp của cấu trúc lặp có số lần lặp là 0 lần, 1 lần, nhiều lần.

Chia dể trị

- Kiểm tra và sửa lỗi một đoạn mã lệnh ngắn, từng hàm riêng biệt trước khi chuyển sang phần khác.

- Việc tổ chức tách biệt các phần công việc của chương trình là một khía cạnh của phương pháp lập trình theo mô đun.

Hãy in ra

- Kiểm soát các giá trị các giá trị biến, biểu thức bằng cách in ra; hoặc theo dõi các giá trị biến, biểu thức bằng trình gỡ lỗi được trang bị sẵn trong IDE.

Hoạt động 4: Tập thói quen tốt khi lập trình để dễ gỡ lỗi

GV đặt câu hỏi hướng dẫn học sinh tìm hiểu:

Liệt kê một số biện pháp giúp chương trình ít lỗi và dễ dàng gỡ lỗi hơn.

Nội dung gợi ý:

Nên ghi nhớ và tập dần một số thói quen tốt để giúp chương trình ít lỗi và việc gỡ lỗi dễ dàng hơn:

- Không viết các câu lệnh ngay sau khi đọc xong bài toán.

- Thiết kế chương trình, chia thành một số hàm.

- Chọn đặt tên gợi nhớ cho các hàm và các biến.

Viết chú thích đầy đủ.

Hoạt động 5: Tổ chức tách biệt các phần của một chương trình

GV đặt câu hỏi hướng dẫn học sinh tìm hiểu:

1. Định nghĩa hàm để thực hiện thuật toán.

2. Nêu các câu lệnh để chạy thử phát hiện lỗi.

3. Việc tổ chức tách biệt các phần công việc có những lợi ích gì?

Nội dung gợi ý:

Định nghĩa hàm để thực hiện thuật toán

- Người lập trình tự định nghĩa một (hay một số) hàm: chọn tên hàm, tên các biến đầu vào và cách trả về kết quả.

- Phần thân hàm là kết quả chuyển từ mô tả thuật toán thành câu lệnh của ngôn ngữ lập trình đã chọn.

Các câu lệnh để chạy thử phát hiện lỗi

Trong chương trình cần có thêm các câu lệnh làm những việc sau:

- Gán dữ liệu đầu vào: Một số câu lệnh gán giá trị cho các biến đầu vào. 

→ Dữ liệu đầu vào cũng có thể đọc từ tệp cho trước.

- Xuất kết quả đầu ra: Một số câu lệnh in ra màn hình. 

→ Để tiện kiểm tra, đỡ nhầm làn, nên in kèm mô tả đầu ra là gì; có thể in kèm cả dữ liệu đầu vào tương ứng.

Lợi ích của việc tổ chức tách biệt các phần công việc

- Dễ chạy thử: Các câu lệnh để chạy thử kiểm tra ở các chỗ cần theo dõi giá trị của các biến, việc thực hiện các đoạn chương trình.

- Dễ sửa lỗi: Bố cục chương trình có logic rõ ràng, dễ thấy lỗi xảy ra ở việc nào.

HOẠT ĐỘNG LUYỆN TẬP

Câu 1: Hoàn thành phát biểu sau: “Có rất nhiều công cụ và phương pháp khác nhau để kiểm thử chương trình. Các công cụ có mục đích … của chương trình và …, … các lỗi phát sinh trong tương lai”

A. Tìm ra lỗi, phòng ngừa, ngăn chặn.

B. Tìm ra lỗi, phòng ngừa, xử lí.

C. Phòng ngừa, ngăn chặn, xử lí lỗi.

D. Xử lí lỗi, phòng ngừa, ngăn chặn.

Câu 2: Đâu không là công cụ để kiểm thử chương trình?

A. Công cụ in biến trung gian.

B. Công cụ sinh các bộ dữ liệu test.

C. Công cụ thống kê dữ liệu

D. Công cụ điểm dừng trong phần mềm soạn thảo lập trình.

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: Phát biểu nào sau đây đúng nhất khi nói về các bộ dữ liệu test khi kiểm thử chương trình?

A. Các bộ test có thể có đầu vào theo các tiêu chí khác nhau.

B. Các bộ test có đầu vào theo một số tiêu chí nhất định.

C. Các bộ test có thể có đầu vào theo các tiêu chí khác nhau như độ lớn, tính đa dạng của dữ liệu.

D. Các bộ test có đầu vào phải theo các tiêu chí về độ lớn, tính đa dạng của dữ liệu.

Câu 5: Số phát biểu đúng trong các phát biểu sau:

1) Cần chú ý nên có nhiều bộ test khi test các bộ dữ liệu.

2) Việc sinh ngẫu nhiên dữ liệu đầu vào trong miền xác định của chương trình làm tăng khả năng tìm lỗi.

3) Thực tế cho thấy ít khi phát sinh lỗi tại các vùng biên hoặc lân cận biên.

4) Không thể sử dụng các lệnh print() để in ra các biến trung gian.

A. 2.

B. 3.

C. 1.

D. 4.

Đáp án gợi ý:

Câu 1

Câu 2

Câu 3

Câu 4

Câu 5

A

C

A

C

A

HOẠT ĐỘNG VẬN DỤNG

GV yêu cầu HS hoàn thành Vận dụng SGK trang 116: 

Câu 1. Kể một số ca kiểm thử cho chương trình:

a) Tìm số x trong một dãy số (đã cho cụ thể).

b) Sắp xếp một dãy số.