Câu hỏi:

24/08/2024 8 K

Chương trình chạy phát sinh lỗi ngoại lệ TypeError, nên xử lí như thế nào?

A. Kiểm tra lại chỉ số trong mảng.

B. Kiểm tra lại giá trị số chia.

C. Kiểm tra giá trị của số bị chia.

D. Kiểm tra kiểu dữ liệu nhập vào.

Đáp án chính xác

Trả lời:

verified Giải bởi Vietjack

Đáp án đúng là: D

Lỗi ngoại lệ TypeError xảy ra khi xuất hiện lỗi kiểu dữ liệu.

Sử dụng kiến thức dưới đây:

Một vài phương pháp kiểm thử chương trình

a) Quan sát mã lỗi Runtime và bắt lỗi ngoại lệ

Nếu chương trình có lỗi Runtime (đang chạy mà dừng lại), cần quan sát các mã lỗi để kiểm tra vị trí dòng lệnh sinh lỗi này. Từ đó tìm và sửa lỗi.

b) Kiểm thử chương trình với các bộ dữ liệu test

- 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 phụ thuộc đặc thù của bài toán và kết quả đầu ra đã biết trước.

- Cần chú ý:

+ Cần có nhiều bộ test (theo các tiêu chí khác nhau).

+ Cần có bộ test ngẫu nhiên.

+ Cần có bộ test dữ liệu ở vùng biên. Ví dụ dữ liệu đầu vào là cặp (x, y) xác định trên miền [0, 1]. Khi đó cần kiểm tra với bộ dữ liệu biên (0, 0), (0; 1), (1; 0), (1; 1). Thực tế cho thấy lỗi thường phát sinh tại vùng biên hoặc lân cận của biên.

c) In các thông số trung gian

- Bổ sung vào giữa các dòng lệnh câu lệnh print() để in ra biến trung gian, kiểm tra quy trình hay thuật toán.

- Giả sử chương trình có đầu vào là (x1, x2) đầu ra là (a1, a2) nhưng sử sụng biến trung gian (y1, y2). Khi đó bổ sung thêm các dòng lệnh để in ra các giá trị trung gian, từ đó sẽ dễ tìm lỗi hơn.

d) Sử dụng công cụ break point (điểm dừng)

- 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, kiểm tra tính đúng đắn của chương trình.

Tham khảo thêm một số tài liệu liên quan:

Lý thuyết Tin học 10 Bài 30 (Kết nối tri thức): Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin học 10 Bài 30 (Kết nối tri thức): Kiểm thử và gỡ lỗi chương trình

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Chương trình chạy phát sinh lỗi ngoại lệ IndexError, nên xử lí như thế nào?

Xem đáp án » 15/08/2024 9.2 K

Câu 2:

Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu ?

>>> fruits = ['Banana', 'Apple', 'Lime']

>>> loud_fruits = [fruit.upper() for fruit in fruits]

>>> print(loud_fruits)

>>> list(enumerate(fruits))

Xem đáp án » 20/07/2024 4.7 K

Câu 3:

Chương trình chạy phát sinh lỗi ngoại lệ NameError, nên xử lí như thế nào?

Xem đáp án » 21/07/2024 4.6 K

Câu 4:

Chương trình sau phát sinh lỗi gì?

>>> 1 / 0

0.5

>>> 2 ** 3

8

Xem đáp án » 17/07/2024 4.1 K

Câu 5:

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

Xem đáp án » 18/07/2024 4.1 K

Câu 6:

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?

Xem đáp án » 21/07/2024 4.1 K

Câu 7:

Để tính giá trị trung bình của một danh sách số A, người lập trình đã dùng lệnh gttb = sum(A) / len(A). Những mã lỗi ngoại lệ nào có thể xảy ra ?

Xem đáp án » 15/08/2024 3.9 K

Câu 8:

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”

Xem đáp án » 18/07/2024 3.5 K

Câu 9:

Chương trình sau có lỗi ở dòng lệnh nào?

n = int(input("Nhập số tự nhiên n: "))

s = ""

for i in range(10):

    s = s + i

Xem đáp án » 14/08/2024 2.2 K

Câu 10:

Chương trình chạy phát sinh lỗi ngoại lệ ZeroDivision, nên xử lí như thế nào?

Xem đáp án » 22/07/2024 1.6 K

Câu 11:

Chương trình sau nên sửa như thế nào. Chọn phương án đúng nhất.

fruits = ['Banana', 'Apple', 'Lime']

print(fruits[4])

Xem đáp án » 17/07/2024 1.3 K

Câu 12:

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?

Xem đáp án » 23/07/2024 1.1 K

Câu 13:

Chương trình sau mắc lỗi gì?

def func(n)

    a, b = 0, 1

    while a < n:

        print(a, end=' ')

        a, b = b, a+b

        print()

print(func(1000))

Xem đáp án » 18/07/2024 1 K

Câu 14:

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.

Xem đáp án » 17/07/2024 659