Giải sách bài tập Tin học lớp 10 Bài 30: Kiểm thử và gỡ lỗi chương trình
Câu 30.1 trang 61 SBT Tin học 10: Mục đích của kiểm thử chương trình là gì?
A. Để tự động sửa lỗi chương trình.
B. Để tìm ra lỗi của chương trình.
C. Để tìm ra lỗi và tự động sửa lỗi chương trình.
D. Để tìm ra lỗi và phòng ngừa, ngăn chặn các lỗi phát sinh trong tương lai.
Trả lời:
Đáp án đúng là: D
Mục đích của kiểm thử chương trình: Để tìm ra lỗi và phòng ngừa, ngăn chặn các lỗi phát sinh trong tương lai.
Câu 30.2 trang 61 SBT Tin học 10: Để kiểm thử một chương trình bạn An đã tạo ra rất nhiều bộ dữ liệu test. Với tất cả các bộ dữ liệu test chương trình đều chạy đúng. Có thể kết luận chương trình hết lỗi hay chưa?
Trả lời:
Chưa thể khẳng định chương trình hết lỗi. Kiểm thử chỉ có chức năng phát hiện lỗi (nếu có) ứng với các bộ dữ liệu test, không có chức năng chứng minh chương trình chạy đúng với mọi bộ dữ liệu.
Câu 30.3 trang 61 SBT Tin học 10: Nếu chương trình chạy bị lỗi với thông báo lỗi là ZeroDivisionError thì đó là lỗi gì và em cần sửa lỗi như thế nào? Chọn phương án đúng nhất.
A. Đây là lỗi không thể sửa được.
B. Đây là lỗi chia cho 0, em cần xoá lệnh này khỏi chương trình.
C. Đây là lỗi chia cho 0, em cần thay thế phép toán khác để không xảy ra lỗi này nữa.
D. Đây là lỗi chia cho 0, em cần tìm hiểu nguyên nhân vì sao lại xuất hiện 0 khi chia, có thể bổ sung lệnh kiểm tra trước khi thực hiện phép chia.
Trả lời:
Đáp án đúng là: D
Lỗi ZeroDivisionError là lỗi chia cho 0, em cần tìm hiểu nguyên nhân vì sao lại xuất hiện 0 khi chia, có thể bổ sung lệnh kiểm tra trước khi thực hiện phép chia.
Câu 30.4 trang 62 SBT Tin học 10: Điểm dừng (break point) trong các phần mềm soạn thảo lập trình có ý nghĩa gì?
A. Đó là vị trí chương trình chạy tới đó thì kết thúc.
B. Đó là vị trí chương trình dừng lại để người lập trình quan sát phát hiện lỗi.
C. Đó là vị trí chương trình mỗi khi chạy đến dòng lệnh đó sẽ kêu pip pip.
D. Đó là vị trí chương trình tạm dừng, người lập trình sẽ quan sát các biến của chương trình và có thể điều khiển để chương trình tiếp tục chạy.
Trả lời:
Đáp án đúng là: D
Công cụ break point cho phép tạo ra các “điểm dừng” bên trong chương trình. Khi chạy, chương trình sẽ tạm dừng tại các “điểm dừng” cho phép người kiểm thử có thể quan sát các thông tin khác bên trong chương trình, qua đó kiểm tra tính đúng đắn của chương trình.
Câu 30.5 trang 62 SBT Tin học 10: Bộ dữ liệu kiểm thử (test) có những tính chất gì?
A. Tính chất phát hiện lỗi của chương trình.
B. Cần có càng nhiều càng tốt.
C. Cần được sinh ngẫu nhiên và phủ kín các trường hợp biên của dữ liệu đầu vào bài toán.
D. Không cần có tính chất gì.
Trả lời:
Đáp án đúng là: C
Bộ dữ liệu kiểm thử (test) cần được sinh ngẫu nhiên và phủ kín các trường hợp biên của dữ liệu đầu vào bài toán.
Câu 30.6 trang 62 SBT Tin học 10: Giả sử đầu vào của dữ liệu bài toán là vùng {x ≥ 0}. Khi đó dữ liệu ở vùng biên là những dữ liệu nào?
A. x = 0.
B. x = 1000000.
C. x ở gần 0.
D. x ở gần 0 hoặc x rất lớn.
Trả lời:
Đáp án đúng là: D
Dữ liệu ở vùng biên là: x ở gần 0 hoặc x rất lớn.
Câu 30.7 trang 62 SBT Tin học 10: Phần mềm soạn thảo lập trình có thể tạo bao nhiêu điểm dừng?
A. 0.
B. 1.
C. Không hạn chế.
D. 10.
Trả lời:
Đáp án đúng là: C
Phần mềm soạn thảo lập trình không hạn chế điểm dừng.
Câu 30.8 trang 62 SBT Tin học 10: Các phương pháp nào dưới đây được coi là phương pháp kiểm thử chương trình?
A. In các dữ liệu trung gian.
B. Viết chú thích chi tiết trong chương trình.
C. Sinh các bộ dữ liệu test để kiểm tra chương trình.
D. Đặt tên biến và hàm có ý nghĩa.
E. Tạo điểm dừng để quan sát và phát hiện lỗi chương trình.
F. Ghi nhớ các mã lỗi ngoại lệ khi phát sinh.
Trả lời:
Các phương pháp được coi là phương pháp kiểm thử chương trình là:
A. In các dữ liệu trung gian.
C. Sinh các bộ dữ liệu test để kiểm tra chương trình.
E. Tạo điểm dừng để quan sát và phát hiện lỗi chương trình.
Câu 30.9 trang 62 SBT Tin học 10: Viết chương trình nhập số n, sau đó lần lượt nhập n số của dãy. Yêu cầu khi nhập vào các số sẽ được sắp xếp ngay theo thứ tự tăng dần. Viết chương trình sau đó thực hiện các công việc kiểm thử.
Trả lời:
* Chương trình có thể viết như sau:
A = []
n = int(input(“Nhập số tự nhiên n: “))
for i in range(n):
num = eval(input(“Nhập số thứ “+str(i+1)+”: “))
k = 0
while k < len(A) and A[k] < num:
k = k + 1
A.insert(k,num)
print(“Dãy số đã nhập:”,A)
* Các em tự tiến hành kiểm thử chương trình.
Câu 30.10 trang 63 SBT Tin học 10: Chương trình sau sẽ yêu cầu nhập một danh sách học sinh trong lớp cùng với cân nặng, chiều cao, sau đó tự động tính chỉ số BMI và in ra danh sách các bạn béo phì. Quan sát chương trình và đưa thêm các lệnh in giá trị trung gian để kiểm soát lỗi chương trình.
Trả lời:
Chương trình có thể viết như sau:
def bmi(m,h):
return m/(h*h)
def NhapDL():
DS = []
n = int(input(“Nhập số học sinh: “))
for k in range(n):
ten = input(“Nhập tên học sinh thứ “+ str(k+1)+” : “)
mass = float(input(“Nhập cân nặng: “))
h = float(input(“Nhập chiều cao: “))
DS. append([ten, mass, h])
return DS
# Chương trình chính
DS = NhapDL()
DSBP = []
for k in range(len(DS)):
hs = DS [K]
if bmi(hs[1], hs[2]) > 25:
DSBP.append(hs[0])
print(“Danh sách học sinh béo phì trong lớp:”)
for hs in DSBP:
print(hs)
Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết không:
Giải SBT Tin học 10 Bài 29: Nhận biết lỗi chương trình
Giải SBT Tin học 10 Bài 30: Kiểm thử và gỡ lỗi chương trình
Giải SBT Tin học 10 Bài 31: Thực hành viết chương trình đơn giản
Giải SBT Tin học 10 Bài 32: Ôn tập lập trình Python
Giải SBT Tin học 10 Bài 33: Nghề thiết kế đồ họa máy tính