Giải SBT Tin 10 KNTT Bài 30. Kiểm thử và gỡ lỗi chương trình có đáp án
-
130 lượt thi
-
10 câu hỏi
-
30 phút
Danh sách câu hỏi
Câu 1:
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.
Đá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 2:
Để 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?
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 3:
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.
Đá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 4:
Đ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.
Đá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 5:
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ì.
Đá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 6:
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.
Đá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 7:
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.
Đá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 8:
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.
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 9:
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ử.
* 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 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.
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)