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?
Ở lớp 10, em đã học một số phương pháp kiểm thử chương trình. Em hãy thảo luận với các bạn về các phương pháp kiểm thử sau, nêu ý nghĩa của chúng trong việc đánh giá độ tin cậy và chứng minh tính đúng của chương trình:
1.Tạo các bộ dữ liệu kiểm thử (test) để kiểm tra dữ liệu đầu ra có chính xác hay không.
2.Thiết lập điểm dừng hoặc cho chương trình chạy theo từng lệnh để kiểm tra và tìm ra lỗi (bug) của chương trình.
3.Thực hiện in dữ liệu trung gian trong quá trình kiểm thử để tìm ra lỗi của chương trình (nếu có).
THAM KHẢO!
1.Tạo các bộ dữ liệu kiểm thử để kiểm tra dữ liệu đầu ra: Phương pháp này giúp đánh giá tính chính xác của dữ liệu đầu ra của chương trình. Bằng cách tạo ra các bộ dữ liệu kiểm thử đa dạng và phong phú, ta có thể đảm bảo rằng chương trình hoạt động đúng trên nhiều trường hợp khác nhau, từ đó đánh giá được độ tin cậy của chương trình. Nếu chương trình không đáp ứng được kết quả mong đợi trên các bộ dữ liệu kiểm thử, ta có thể suy ra rằng chương trình chưa hoạt động chính xác hoặc có thể chứa các lỗi còn chưa được phát hiện.
2.Thiết lập điểm dừng hoặc kiểm tra từng lệnh của chương trình: Phương pháp này giúp kiểm tra từng bước thực thi của chương trình, từ đó giúp tìm ra các lỗi hoặc bug của chương trình. Bằng cách dừng chương trình ở các điểm kiểm tra hoặc theo dõi từng lệnh, ta có thể kiểm tra giá trị của các biến, xác nhận tính đúng đắn của các phép tính, kiểm tra điều kiện của các câu lệnh rẽ nhánh, v.v. Nếu phát hiện lỗi trong quá trình này, ta có thể xác định nguyên nhân và sửa chữa chúng.
3.Thực hiện in dữ liệu trung gian trong quá trình kiểm thử: Phương pháp này giúp theo dõi dữ liệu giữa các bước trong quá trình kiểm thử. Bằng cách in ra dữ liệu trung gian, ta có thể xác nhận tính đúng đắn của các giá trị được sử dụng trong chương trình, theo dõi dòng dữ liệu từ đầu vào đến đầu ra của chương trình, từ đó giúp phát hiện và sửa chữa lỗi nếu có. Điều này giúp đảm bảo tính đúng đắn của kết quả của chương trình trong quá trình kiểm thử.
Đọc dữ liệu từ tập và tổ chức dữ liệu trong chương trình. Viết chương trình thực hiện hàm nhapTuTep và chạy thử kiểm tra. Hướng dẫn thực hiện:
- Tạo tập dữ liệu đầu vào Một cách đơn giản là cắt dán cả khối ô cần thiết từ cửa số phần mềm bảng tính điện tử vào tập đang soạn thảo trong IDE của Python. Lưu thành tập có đuôi tên "txt". Để tiện trình bày, ta đặt tên tập đầu vào, ví dụ là “bangDiem.txt". Bổ sung thêm vào dòng đầu tiên của tập hai số nguyên dương a, x là số học sinh và số môn học.
- Mo lepo che do "doc":
- Viết các câu lệnh đọc dữ liệu từ tập kế thừa, sử dụng các câu lệnh đã viết trong các bài thực hành về cấu trúc mảng một và hai chiều. Kết quả đầu ra:
Tham khảo:
+ Danh sách tenfES: từ cột Tên của bangDiem
+ Danh sách tenlfon từ hàng tên cột của bangDiem.
+ Mảng hai chiều n - m, mỗi hàng là dãy điểm của một học sinh.
Đóng tập sau khi đọc xong.
Có một chương trình giải bài toán:“Nhập từ bàn phím hai số thực a và b. Hãy tìm nghiệm của phương trình ax + b = 0”Em hãy nêu một vài bộ dữ liệu kiểm thử để kiểm định tính đúng đắn của chương trình đó.
Test 1:
a=2; b=4
=>-2
Test 2:
a=0; b=0;
=>Vô số nghiệm
Giả sử một chương trình kiểm thử với 10 bộ dữ liệu cho kết quả 9 lần đúng, 1 lần sai. Chương trình đó là sai hay đúng?
Dựa trên kết quả của 10 bộ dữ liệu kiểm thử, với 9 lần đúng và 1 lần sai, không thể kết luận chương trình đó là đúng hoặc sai một cách chắc chắn. Kết quả này chỉ cho thấy chương trình có khả năng hoạt động chính xác trên hầu hết các trường hợp, nhưng vẫn có một trường hợp đặc biệt nào đó mà chương trình không xử lý đúng.
Việc phát hiện được một lỗi trong 1 lần kiểm thử không đồng nghĩa với việc chương trình đó là sai. Có thể có nhiều nguyên nhân dẫn đến kết quả sai trong lần kiểm thử đó, chẳng hạn như dữ liệu đầu vào đặc biệt, điều kiện biên, hay một vấn đề trong việc cấu hình môi trường kiểm thử.
Vì vậy, để đưa ra đánh giá chính xác về tính đúng của chương trình, cần phải tiếp tục kiểm thử với nhiều bộ dữ liệu kiểm thử khác nhau, đánh giá kết quả và phân tích sâu hơn về nguyên nhân của lỗi nếu có. Sau đó, cần tiến hành sửa chữa lỗi và thực hiện kiểm thử lại để đảm bảo tính đúng đắn của chương trình trước khi có thể kết luận chương trình là đúng hoặc sai.
THAM KHẢO!
Thực hành theo các yêu cầu sau:
a) Tạo chương trình ở Hình 4.
b) Chạy thử chương trình với các bộ dữ liệu thử em đã đề xuất ở hoạt động làm của Mục 1 để phát hiện lỗi chương trình.
c) Thực hiện gỡ lỗi để chương trình tính đúng nghiệm của phương trình ax + b = 0 với mọi cặp số a, b.
a) Học sinh tự thực hiện tạo chương trình như Hình 4.
b) Chạy thử với bộ dữ liệu thử: a = 0, b = 2 và a = 0, b = 0.
c) Gỡ lỗi:
Hình 6 là kết quả kiểm thử chương trình ở Hình 4. Em hãy quan sát Hình 6 và cho biết:
a) Lỗi được phát hiện khi thực hiện chương trình với những bộ dữ liệu nào?
b) Câu lệnh nào trực tiếp tạo ra lỗi? Câu lệnh nào liên quan đến lỗi?
c) Nguyên nhân gây ra lỗi này là gì?
Tham khảo!
a) Lỗi được phát hiện khi thực hiện chương trình với bộ dữ liệu Hình 6b: a = 0, b = 2 và Hình 6c: a = 0, b = 0.
b) Câu lệnh trực tiếp tạo ra lỗi là:
Câu lệnh liên quan đến lỗi là:
c) Nguyên nhân gây ra lỗi này là: lỗi logic vì phép chia cho 0 là không xác định.
Tìm hiểu và đề xuất bộ dữ liệu thử để phát hiện lỗi chương trình ở Hình 4. Theo em lỗi chương trình ở Hình 4 thuộc loại nào.
Tham khảo!
Bộ dữ liệu thử: a = 0, b bất kì.
- Theo em lỗi ở chương trình 4 thuộc loại lỗi logic.
Khi vẽ biểu đồ, chương trình bảng tính ngầm định miền dữ liệu để tạo biểu đồ là gì?
A. Cột đầu tiên của bảng số liệu
B. Phải chọn trước miền dữ liệu, không có ngầm định
C. Toàn bộ dữ liệu
D. Hàng đầu tiên của bảng số liệu
Hãy sắp xếp các việc dưới đây theo trình tự để phát hiện, gỡ lỗi chương trình.
A. Xây dựng bộ dữ liệu thử với các tình huống có thể xảy ra khi đưa chương trình vào sử dụng.
B. Tìm câu lệnh, cấu trúc điều khiển gây ra lỗi.
C. Thực hiện chương trình với các bộ dữ liệu thử.
D. Sửa lỗi cho chương trình.
E. Xác định nguyên nhân gây lỗi.
Sắp xếp theo trình tự, lần lượt sẽ là : A-C-B-E-D.
Câu 3: Khi vẽ biểu đồ, chương trình bảng tính ngầm định miền dữ liệu để tạo biểu đồ là gì?
A. Hàng đầu tiên của bảng số liệu
B. Cột đầu tiên của bảng số liệu
C. Toàn bộ dữ liệu
D. Phải chọn trước miền dữ liệu, không có ngầm định
Câu 2: Muốn thay đổi kiểu biểu đồ đã được tạo ra, em có thể:
A. Phải xóa biểu đồ cũ và thực hiện lại các thao tác tạo biểu đồ
B. Nháy nút (Change Chart Type) trong nhóm Type trên dải lệnh Design và chọn kiểu thích hợp
C. Nháy nút (Chart Winzard) trên thanh công cụ biểu đồ và chọn kiểu thích hợp
D. Đáp án khác
Câu 5: Để mô tả tỉ lệ của giá trị dữ liệu so với tổng thể người ta thường dùng dạng biểu đồ nào?
A. Biểu đồ cột
B. Biểu đồ đường gấp khúc
C. Biểu đồ hình tròn
D. Biểu đồ miền
Câu 1: Typing Master là phần mềm dùng để:
A. luyện gõ phím nhanh bằng mười ngón.
B. luyện gõ phím nhanh.
C. luyện gõ mười ngón.
D. luyện gõ bàn phím.
Câu 2: Phần mềm Typing Master, gồm các bài học, bài kiểm tra và
A. các biểu đồ.
B. các hình ảnh.
C. các trò chơi.
D. các bài nhạc.
Câu 3: Sau khi khởi động phần mềm Typing Master, trong hộp “Enter your name” ta gõ
A. tên trò chơi.
B. tên lớp học.
C. tên Thầy/Cô hướng dẫn.
D. tên của em.
Câu 4: Để khởi động phần mềm Typing Master, ta thực hiện:
A. nháy đúp chuột lên biểu tượng Typing Master.
B. nháy chuột phải lên biểu tượng Typing Master.
C. nháy chuột lên biểu tượng Typing Master.
D. nháy đúp chuột phải lên biểu tượng Typing Master.
Câu 3: Khi vẽ biểu đồ, chương trình bảng tính ngầm định miền dữ liệu để tạo biểu đồ là gì?
A. Hàng đầu tiên của bảng số liệu
B. Cột đầu tiên của bảng số liệu
C. Toàn bộ dữ liệu
D. Phải chọn trước miền dữ liệu, không có ngầm định
Câu 2: Muốn thay đổi kiểu biểu đồ đã được tạo ra, em có thể:
A. Phải xóa biểu đồ cũ và thực hiện lại các thao tác tạo biểu đồ
B. Nháy nút (Change Chart Type) trong nhóm Type trên dải lệnh Design và chọn kiểu thích hợp
C. Nháy nút (Chart Winzard) trên thanh công cụ biểu đồ và chọn kiểu thích hợp
D. Đáp án khác
Câu 5: Để mô tả tỉ lệ của giá trị dữ liệu so với tổng thể người ta thường dùng dạng biểu đồ nào?
A. Biểu đồ cột
B. Biểu đồ đường gấp khúc
C. Biểu đồ hình tròn
D. Biểu đồ miền
Câu 1: Typing Master là phần mềm dùng để:
A. luyện gõ phím nhanh bằng mười ngón.
B. luyện gõ phím nhanh.
C. luyện gõ mười ngón.
D. luyện gõ bàn phím.
Câu 2: Phần mềm Typing Master, gồm các bài học, bài kiểm tra và
A. các biểu đồ.
B. các hình ảnh.
C. các trò chơi.
D. các bài nhạc.
Câu 3: Sau khi khởi động phần mềm Typing Master, trong hộp “Enter your name” ta gõ
A. tên trò chơi.
B. tên lớp học.
C. tên Thầy/Cô hướng dẫn.
D. tên của em.
Câu 4: Để khởi động phần mềm Typing Master, ta thực hiện:
A. nháy đúp chuột lên biểu tượng Typing Master.
B. nháy chuột phải lên biểu tượng Typing Master.
C. nháy chuột lên biểu tượng Typing Master.
D. nháy đúp chuột phải lên biểu tượng Typing Master.