Lý thuyết Tin học 11 Bài 23 (Kết nối tri thức): Kiểm thử và đánh giá chương trình

Tóm tắt lý thuyết Tin học lớp 11 Bài 23: Kiểm thử và đánh giá chương trình hay, chi tiết sách Kết nối tri thức 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 Tin học 11.

1 2088 lượt xem


Lý thuyết Tin học 11 Bài 23: Kiểm thử và đánh giá chương trình

A. Lý thuyết Kiểm thử và đánh giá chương trình

1. Vai trò của kiểm thử chương trình

- Phương pháp 1: Sử dụng bộ dữ liệu kiểm thử để kiểm tra tính đúng của chương trình. Nếu phát hiện lỗi thì kết luận chương trình không đúng, nhưng nếu không có lỗi thì chưa chứng minh được tính đúng của chương trình.

- Mục đích của phương pháp 2 và 3 là tìm và sửa lỗi để tăng tính tin cậy của chương trình, nhưng không chứng minh được tính đúng của thuật toán và chương trình.

- Một thuật toán được thiết kế đúng sẽ cho ra kết quả đúng với mọi bộ dữ liệu đầu vào tương ứng. Phương pháp kiểm thử không có khả năng chứng minh tính đúng của một thuật toán.

2. Kiểm tra tính đúng của chương trình

- Phương pháp 1 sử dụng các bộ dữ liệu kiểm thử để kiểm tra tính đúng của chương trình. Tuy nhiên, việc kiểm tra với các bộ dữ liệu kiểm thử không chứng minh được tính đúng của thuật toán hay chương trình, chỉ làm tăng khả năng đúng của chương trình.

- Phương pháp 2 và 3 nhằm tìm và sửa lỗi của chương trình để chương trình trở nên tin cậy hơn. Tuy nhiên, điều đó không chứng minh được tính đúng của thuật toán và chương trình.

- Việc chứng minh tính đúng của thuật toán đều phải dựa trên logic toán học. Bắt biến vòng lặp là một phương pháp thường được sử dụng. Ví dụ với thuật toán sắp xếp chèn, bằng bất biến vòng lặp, ta có thể chứng minh tính đúng của thuật toán.

- Trong trao đổi 1, việc sử dụng các bộ dữ liệu kiểm thử chưa chứng minh được tính đúng của thuật toán và chương trình. Tuy nhiên, việc thử nhiều bộ dữ liệu kiểm thử sẽ tăng độ tin cậy của chương trình.

- Trao đổi 2 là một luận điệu logic vì nó dựa trên ý tưởng chính của thuật toán sắp xếp chèn. Đây là cách lập luận đơn giản thường được sử dụng để chứng minh tính đúng của thuật toán.

- Trong trao đổi 3, việc chứng minh tính đúng của chương trình thường được thực hiện bằng lập luận toán học, sử dụng phương pháp quy nạp toán học. Đây là cách tốt nhất để chứng minh tính đúng của một thuật toán.

3. Đánh giá hiệu quả chương trình

- Độ phức tạp tính toán (computational complexity) là lượng tài nguyên (amounts of resources) cần thiết để thực hiện chương trình, được sử dụng để đánh giá hiệu quả hoặc tính tối ưu của chương trình.

- Độ phức tạp thời gian (time complexity) được xác định là thời gian thực hiện chương trình/thuật toán, phụ thuộc vào khối lượng dữ liệu cần xử lý và các bước giải quyết vấn đề.

- Độ phức tạp không gian (space complexity) là lượng bộ nhớ máy tính cần sử dụng để thực hiện chương trình/thuật toán.

- Một chương trình/thuật toán được coi là hiệu quả nếu độ phức tạp của nó thấp, tức là tốn ít thời gian và bộ nhớ cần thiết để thực hiện.

- Các tiêu chí như tính dễ hiểu, rõ ràng, ngắn gọn, dễ bảo trì, dễ cài đặt,... của chương trình cũng được quan tâm trong đánh giá hiệu quả chương trình.

- Độ phức tạp thời gian của chương trình/thuật toán phụ thuộc vào số lần thực hiện các phép toán/câu lệnh trong chương trình/thuật toán. Đối với các bài toán kĩ thuật, thiết kế, nghiên cứu khoa học đòi hỏi khối lượng tính toán lớn, việc thiết kế chương trình/thuật toán có độ phức tạp thời gian thấp là mối quan tâm hàng đầu.

- Đối với các bài toán chạy liên tục như các dịch vụ trực tuyến thì tính dễ cài đặt, dễ duy trì và độ tin cậy của phần mềm cũng cỏ vai trò quan trọng.

- Trong phạm vi kiến thức phổ thông, ta chỉ quan tâm đến độ phức tạp thời gian của chương trình/thuật toán. Việc xác định độ phức tạp thời gian dựa trên ước lượng thời gian thực hiện các bước (câu lệnh) trong chương trình/thuật toán sẽ được trình bày trong các bài học sau.

B. Bài tập Kiểm thử và đánh giá chương trình

Đang cập nhật…

Xem thêm các bài lý thuyết Tin học 11 sách Kết nối tri thức hay, chi tiết tại: 

Lý thuyết Bài 21: Các thuật toán sắp xếp đơn giản

Lý thuyết Bài 24: Đánh giá độ phức tạp thời gian thuật toán

Lý thuyết Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình

Lý thuyết Bài 28: Thiết kế chương trình theo Mô đun

Lý thuyết Bài 30: Thiết lập thư viện cho chương trình

1 2088 lượt xem


Xem thêm các chương trình khác: