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

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 01 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Khi viết chương trình, loại lỗi nào sau đây thường được trình biên dịch hoặc trình thông dịch phát hiện ngay trước khi chương trình bắt đầu chạy?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Runtime Error/Exception)
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Lỗi logic ngầm (Implicit Logic Error)

Câu 2: Một chương trình Python đang chạy bình thường nhưng khi người dùng nhập số 0 vào một phép tính chia, chương trình dừng lại và báo lỗi. Đây là loại lỗi nào?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ (Runtime Error)
  • C. Lỗi ngữ nghĩa
  • D. Lỗi biên dịch

Câu 3: Lỗi ngữ nghĩa (Semantic Error) là loại lỗi khiến chương trình:

  • A. Không thể chạy được do sai quy tắc viết lệnh.
  • B. Dừng đột ngột trong quá trình thực thi do gặp phải điều kiện bất thường.
  • C. Chạy được và không báo lỗi, nhưng kết quả đầu ra không đúng như mong đợi.
  • D. Không thể được phát hiện bằng bất kỳ công cụ kiểm thử nào.

Câu 4: Quá trình tìm và sửa lỗi trong chương trình được gọi là gì?

  • A. Biên dịch (Compiling)
  • B. Thực thi (Executing)
  • C. Kiểm thử (Testing)
  • D. Gỡ lỗi (Debugging)

Câu 5: Mục đích chính của việc kiểm thử chương trình là gì?

  • A. Tìm ra càng nhiều lỗi càng tốt trước khi đưa chương trình vào sử dụng.
  • B. Chứng minh rằng chương trình không có lỗi.
  • C. Chỉ chạy thử chương trình với các dữ liệu đầu vào thông thường.
  • D. Tối ưu hóa tốc độ thực thi của chương trình.

Câu 6: Khi kiểm thử một hàm tính căn bậc hai, bộ dữ liệu test nào sau đây được xem là "vùng biên" hoặc "lân cận biên" cần đặc biệt chú ý?

  • A. Các số nguyên dương lớn (ví dụ: 1000000)
  • B. Các số nguyên âm (ví dụ: -4, -9)
  • C. Số 0 và các số dương rất gần 0 (ví dụ: 0.0001)
  • D. Các số thập phân ngẫu nhiên (ví dụ: 3.14, 2.718)

Câu 7: Bạn đang gỡ lỗi một chương trình Python. Bạn nghi ngờ giá trị của biến `count` bị sai sau khi vòng lặp kết thúc. Công cụ gỡ lỗi nào sau đây giúp bạn xem giá trị của `count` tại một dòng lệnh cụ thể mà không làm dừng hoàn toàn chương trình?

  • A. Sử dụng lệnh `print()` để in giá trị biến.
  • B. Đặt điểm dừng (breakpoint) tại dòng đó.
  • C. Sử dụng công cụ sinh dữ liệu test.
  • D. Chạy lại chương trình nhiều lần với cùng dữ liệu.

Câu 8: Trong các môi trường phát triển tích hợp (IDE) như PyCharm, VS Code, công cụ nào cho phép bạn tạm dừng chương trình tại một dòng code được chỉ định và thực hiện từng bước (step-by-step) để theo dõi luồng thực thi và giá trị biến?

  • A. Trình biên dịch/thông dịch
  • B. Trình gỡ lỗi (Debugger) với chức năng điểm dừng (breakpoint).
  • C. Công cụ phân tích cú pháp (Parser).
  • D. Công cụ tối ưu hóa mã nguồn.

Câu 9: Bạn viết một hàm tìm kiếm phần tử trong danh sách. Khi test với một danh sách rỗng, chương trình báo lỗi `IndexError`. Điều này có ý nghĩa gì?

  • A. Bạn đã sử dụng sai tên biến hoặc hàm.
  • B. Bạn đang cố chia cho số 0.
  • C. Bạn đang thực hiện phép toán với kiểu dữ liệu không phù hợp.
  • D. Bạn đang cố truy cập một chỉ số không tồn tại trong danh sách.

Câu 10: Đoạn mã sau đây sẽ gây ra lỗi gì? `print("Hello" + 5)`

  • A. SyntaxError
  • B. ZeroDivisionError
  • C. TypeError
  • D. IndexError

Câu 11: Bạn đang gỡ lỗi một chương trình và nhận được thông báo `NameError: name "my_variable" is not defined`. Lỗi này cho biết điều gì?

  • A. Bạn đang cố gắng sử dụng một biến hoặc hàm mà chưa được khai báo hoặc nằm ngoài phạm vi truy cập hiện tại.
  • B. Bạn đã viết sai cú pháp của một lệnh.
  • C. Bạn đang thực hiện một phép tính toán không hợp lệ.
  • D. Bạn đang truy cập vào một phần tử không có trong danh sách.

Câu 12: Khi kiểm thử một chương trình xử lý số, việc sử dụng các giá trị đầu vào là "số âm", "số 0", "số dương nhỏ", "số dương lớn" là ví dụ về việc kiểm thử dựa trên tiêu chí nào?

  • A. Kiểm thử ngẫu nhiên (Random testing)
  • B. Kiểm thử vùng biên (Boundary testing)
  • C. Kiểm thử chức năng (Functional testing)
  • D. Kiểm thử hiệu năng (Performance testing)

Câu 13: Giả sử bạn có một chương trình nhận vào một số nguyên dương N và tính tổng các số từ 1 đến N. Bạn đã test với N=5 và kết quả đúng. Để kiểm thử hiệu quả hơn, bạn nên thử thêm với bộ dữ liệu nào sau đây?

  • A. N=1 (giá trị biên nhỏ nhất) và N với giá trị rất lớn (ví dụ: 1000000).
  • B. Các số nguyên âm (ví dụ: N=-5).
  • C. Các số thực (ví dụ: N=3.5).
  • D. Chỉ cần test với một vài số nguyên dương ngẫu nhiên khác.

Câu 14: Quy trình gỡ lỗi cơ bản thường bao gồm các bước theo thứ tự nào?

  • A. Sửa lỗi → Xác định lỗi → Tìm vị trí lỗi → Kiểm thử lại.
  • B. Tìm vị trí lỗi → Sửa lỗi → Xác định lỗi → Kiểm thử lại.
  • C. Xác định lỗi → Tìm vị trí lỗi → Sửa lỗi → Kiểm thử lại.
  • D. Kiểm thử lại → Xác định lỗi → Tìm vị trí lỗi → Sửa lỗi.

Câu 15: Trong quá trình gỡ lỗi, việc "xác định lỗi" (identifying the error) có nghĩa là gì?

  • A. Tìm ra dòng mã cụ thể gây ra lỗi.
  • B. Thay đổi mã nguồn để loại bỏ lỗi.
  • C. Chạy lại chương trình với dữ liệu khác.
  • D. Hiểu rõ lỗi đang xảy ra là gì (ví dụ: chương trình bị dừng đột ngột, kết quả sai, giao diện không hiển thị đúng).

Câu 16: Khi sử dụng trình gỡ lỗi (debugger), chức năng "Step Over" (Bước qua) có tác dụng gì?

  • A. Thực thi toàn bộ một dòng lệnh hoặc một lời gọi hàm mà không đi sâu vào bên trong hàm đó.
  • B. Đi sâu vào thực thi từng dòng lệnh bên trong một hàm được gọi.
  • C. Thực thi chương trình cho đến khi gặp điểm dừng (breakpoint) tiếp theo hoặc kết thúc chương trình.
  • D. Dừng gỡ lỗi và thoát khỏi chương trình.

Câu 17: Bạn viết một chương trình xử lý văn bản và cần đếm số lần xuất hiện của một từ trong một chuỗi. Khi test với chuỗi rỗng (`""`), chương trình báo lỗi. Lỗi này có khả năng cao là loại lỗi nào?

  • A. SyntaxError (chuỗi rỗng là cú pháp hợp lệ).
  • B. ZeroDivisionError (không có phép chia nào liên quan).
  • C. Logic Error (chương trình không xử lý đúng trường hợp chuỗi rỗng).
  • D. NameError (chuỗi rỗng không liên quan đến tên biến).

Câu 18: Tại sao việc kiểm thử chương trình với các bộ dữ liệu "tiêu biểu" (typical cases) là cần thiết nhưng chưa đủ để đảm bảo chất lượng chương trình?

  • A. Vì dữ liệu tiêu biểu luôn gây ra lỗi.
  • B. Vì lỗi thường xảy ra ở các trường hợp đặc biệt, vùng biên hoặc dữ liệu không hợp lệ mà dữ liệu tiêu biểu không bao phủ.
  • C. Vì dữ liệu tiêu biểu làm chậm quá trình kiểm thử.
  • D. Vì dữ liệu tiêu biểu chỉ kiểm tra được lỗi cú pháp.

Câu 19: Khi kiểm thử một hàm nhận vào một số nguyên dương `n` (n >= 1), các bộ dữ liệu test nào sau đây là ví dụ tốt về kiểm thử "vùng biên"?

  • A. 10, 50, 100
  • B. -5, 0, 5
  • C. 1.5, 2.7, 3.0
  • D. 1, 2, và một giá trị rất lớn (ví dụ: 10^9)

Câu 20: Đoạn mã Python sau có lỗi gì? `if x > 0 print("Positive")`

  • A. SyntaxError (Thiếu dấu hai chấm sau điều kiện `if`).
  • B. TypeError (Không liên quan đến kiểu dữ liệu).
  • C. NameError (Không liên quan đến tên biến).
  • D. Logic Error (Cú pháp sai nên không chạy tới logic).

Câu 21: Bạn đang sử dụng trình gỡ lỗi. Bạn gặp một vòng lặp mà bạn tin rằng có lỗi. Bạn muốn xem giá trị của biến lặp và các biến khác sau mỗi lần lặp. Chức năng nào của trình gỡ lỗi giúp bạn thực hiện điều này một cách hiệu quả?

  • A. Chỉ đặt một điểm dừng ở đầu vòng lặp.
  • B. Sử dụng "Step Over" cho toàn bộ vòng lặp.
  • C. Đặt điểm dừng bên trong vòng lặp và sử dụng "Step Over" hoặc "Step Into" để đi qua từng lần lặp.
  • D. Xóa tất cả các điểm dừng và chạy lại chương trình.

Câu 22: Khi nào thì việc sử dụng lệnh `print()` để in giá trị biến trở nên kém hiệu quả hơn so với sử dụng trình gỡ lỗi (debugger)?

  • A. Khi chương trình rất ngắn và đơn giản.
  • B. Khi chương trình lớn, phức tạp, có nhiều hàm lồng nhau hoặc cần theo dõi giá trị của nhiều biến tại nhiều điểm khác nhau.
  • C. Khi chỉ cần kiểm tra giá trị của một biến duy nhất.
  • D. Khi chương trình không có bất kỳ lỗi nào.

Câu 23: Bạn viết một chương trình đọc dữ liệu từ một tệp tin. Lỗi nào có thể xảy ra nếu tệp tin không tồn tại hoặc chương trình không có quyền truy cập?

  • A. SyntaxError
  • B. TypeError
  • C. ZeroDivisionError
  • D. FileNotFoundError (một loại Runtime Error/Exception phổ biến)

Câu 24: Việc "kiểm thử lại" (re-testing) sau khi đã sửa một lỗi là bước quan trọng trong quy trình gỡ lỗi vì lý do nào sau đây?

  • A. Để đảm bảo rằng lỗi ban đầu đã được khắc phục và việc sửa lỗi không vô tình tạo ra lỗi mới ở các phần khác của chương trình.
  • B. Để làm tăng số lần chạy chương trình.
  • C. Để thay đổi kết quả đầu ra của chương trình.
  • D. Chỉ cần thiết nếu lỗi ban đầu là lỗi ngữ nghĩa.

Câu 25: Bạn có một hàm tính trung bình cộng của các số trong danh sách. Hàm này hoạt động sai khi danh sách chứa các giá trị không phải là số (ví dụ: `[1, 2, "a", 4]`). Lỗi này thuộc loại nào?

  • A. SyntaxError
  • B. TypeError (khi thực hiện phép tính với kiểu dữ liệu không phù hợp)
  • C. IndexError
  • D. NameError

Câu 26: Khi kiểm thử một hàm xử lý ngày tháng, việc sử dụng các ngày không hợp lệ (ví dụ: ngày 30 tháng 2, ngày 32 tháng 1) là ví dụ về kiểm thử loại dữ liệu nào?

  • A. Dữ liệu tiêu biểu
  • B. Dữ liệu vùng biên
  • C. Dữ liệu không hợp lệ (Invalid data)
  • D. Dữ liệu ngẫu nhiên

Câu 27: Một chương trình Python có đoạn code sau: `my_dict = {"a": 1, "b": 2}`. Nếu bạn cố gắng truy cập `my_dict["c"]`, lỗi nào sẽ xảy ra?

  • A. TypeError
  • B. SyntaxError
  • C. IndexError
  • D. KeyError (một loại Runtime Error/Exception)

Câu 28: Bạn đã sửa một lỗi ngữ nghĩa trong chương trình. Bước tiếp theo quan trọng nhất trong quy trình gỡ lỗi là gì?

  • A. Kiểm thử lại chương trình, đặc biệt với bộ dữ liệu đã gây ra lỗi ban đầu và các bộ dữ liệu khác.
  • B. Chuyển ngay sang viết tính năng mới.
  • C. Xóa tất cả các lệnh `print` đã dùng để gỡ lỗi.
  • D. Chỉ cần chạy thử chương trình một lần duy nhất để xem còn báo lỗi không.

Câu 29: Điều nào sau đây là một lợi ích chính của việc sử dụng trình gỡ lỗi (debugger) so với chỉ dùng lệnh `print()` để tìm lỗi?

  • A. Trình gỡ lỗi giúp sửa lỗi tự động.
  • B. Trình gỡ lỗi làm cho chương trình chạy nhanh hơn.
  • C. Trình gỡ lỗi cho phép tạm dừng chương trình, xem giá trị của TẤT CẢ các biến trong phạm vi hiện tại, và thực thi từng bước lệnh.
  • D. Trình gỡ lỗi có thể phát hiện lỗi ngữ nghĩa mà không cần chạy chương trình.

Câu 30: Tại sao việc kiểm thử với các bộ dữ liệu ngẫu nhiên trong miền xác định của đầu vào có thể giúp tìm ra lỗi?

  • A. Vì dữ liệu ngẫu nhiên luôn nhỏ hơn dữ liệu tiêu biểu.
  • B. Vì dữ liệu ngẫu nhiên có thể tạo ra các trường hợp đầu vào mà người lập trình không nghĩ tới khi thiết kế bộ test thủ công.
  • C. Vì dữ liệu ngẫu nhiên chỉ kiểm tra được lỗi cú pháp.
  • D. Vì dữ liệu ngẫu nhiên giúp chứng minh chương trình không có lỗi.

1 / 30

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

Tags: Bộ đề 1

Câu 1: Khi viết chương trình, loại lỗi nào sau đây thường được trình biên dịch hoặc trình thông dịch phát hiện ngay trước khi chương trình bắt đầu chạy?

2 / 30

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

Tags: Bộ đề 1

Câu 2: Một chương trình Python đang chạy bình thường nhưng khi người dùng nhập số 0 vào một phép tính chia, chương trình dừng lại và báo lỗi. Đây là loại lỗi nào?

3 / 30

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

Tags: Bộ đề 1

Câu 3: Lỗi ngữ nghĩa (Semantic Error) là loại lỗi khiến chương trình:

4 / 30

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

Tags: Bộ đề 1

Câu 4: Quá trình tìm và sửa lỗi trong chương trình được gọi là gì?

5 / 30

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

Tags: Bộ đề 1

Câu 5: Mục đích chính của việc kiểm thử chương trình là gì?

6 / 30

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

Tags: Bộ đề 1

Câu 6: Khi kiểm thử một hàm tính căn bậc hai, bộ dữ liệu test nào sau đây được xem là 'vùng biên' hoặc 'lân cận biên' cần đặc biệt chú ý?

7 / 30

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

Tags: Bộ đề 1

Câu 7: Bạn đang gỡ lỗi một chương trình Python. Bạn nghi ngờ giá trị của biến `count` bị sai sau khi vòng lặp kết thúc. Công cụ gỡ lỗi nào sau đây giúp bạn xem giá trị của `count` tại một dòng lệnh cụ thể mà không làm dừng hoàn toàn chương trình?

8 / 30

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

Tags: Bộ đề 1

Câu 8: Trong các môi trường phát triển tích hợp (IDE) như PyCharm, VS Code, công cụ nào cho phép bạn tạm dừng chương trình tại một dòng code được chỉ định và thực hiện từng bước (step-by-step) để theo dõi luồng thực thi và giá trị biến?

9 / 30

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

Tags: Bộ đề 1

Câu 9: Bạn viết một hàm tìm kiếm phần tử trong danh sách. Khi test với một danh sách rỗng, chương trình báo lỗi `IndexError`. Điều này có ý nghĩa gì?

10 / 30

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

Tags: Bộ đề 1

Câu 10: Đoạn mã sau đây sẽ gây ra lỗi gì? `print('Hello' + 5)`

11 / 30

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

Tags: Bộ đề 1

Câu 11: Bạn đang gỡ lỗi một chương trình và nhận được thông báo `NameError: name 'my_variable' is not defined`. Lỗi này cho biết điều gì?

12 / 30

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

Tags: Bộ đề 1

Câu 12: Khi kiểm thử một chương trình xử lý số, việc sử dụng các giá trị đầu vào là 'số âm', 'số 0', 'số dương nhỏ', 'số dương lớn' là ví dụ về việc kiểm thử dựa trên tiêu chí nào?

13 / 30

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

Tags: Bộ đề 1

Câu 13: Giả sử bạn có một chương trình nhận vào một số nguyên dương N và tính tổng các số từ 1 đến N. Bạn đã test với N=5 và kết quả đúng. Để kiểm thử hiệu quả hơn, bạn nên thử thêm với bộ dữ liệu nào sau đây?

14 / 30

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

Tags: Bộ đề 1

Câu 14: Quy trình gỡ lỗi cơ bản thường bao gồm các bước theo thứ tự nào?

15 / 30

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

Tags: Bộ đề 1

Câu 15: Trong quá trình gỡ lỗi, việc 'xác định lỗi' (identifying the error) có nghĩa là gì?

16 / 30

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

Tags: Bộ đề 1

Câu 16: Khi sử dụng trình gỡ lỗi (debugger), chức năng 'Step Over' (Bước qua) có tác dụng gì?

17 / 30

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

Tags: Bộ đề 1

Câu 17: Bạn viết một chương trình xử lý văn bản và cần đếm số lần xuất hiện của một từ trong một chuỗi. Khi test với chuỗi rỗng (`''`), chương trình báo lỗi. Lỗi này có khả năng cao là loại lỗi nào?

18 / 30

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

Tags: Bộ đề 1

Câu 18: Tại sao việc kiểm thử chương trình với các bộ dữ liệu 'tiêu biểu' (typical cases) là cần thiết nhưng chưa đủ để đảm bảo chất lượng chương trình?

19 / 30

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

Tags: Bộ đề 1

Câu 19: Khi kiểm thử một hàm nhận vào một số nguyên dương `n` (n >= 1), các bộ dữ liệu test nào sau đây là ví dụ tốt về kiểm thử 'vùng biên'?

20 / 30

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

Tags: Bộ đề 1

Câu 20: Đoạn mã Python sau có lỗi gì? `if x > 0 print('Positive')`

21 / 30

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

Tags: Bộ đề 1

Câu 21: Bạn đang sử dụng trình gỡ lỗi. Bạn gặp một vòng lặp mà bạn tin rằng có lỗi. Bạn muốn xem giá trị của biến lặp và các biến khác sau mỗi lần lặp. Chức năng nào của trình gỡ lỗi giúp bạn thực hiện điều này một cách hiệu quả?

22 / 30

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

Tags: Bộ đề 1

Câu 22: Khi nào thì việc sử dụng lệnh `print()` để in giá trị biến trở nên kém hiệu quả hơn so với sử dụng trình gỡ lỗi (debugger)?

23 / 30

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

Tags: Bộ đề 1

Câu 23: Bạn viết một chương trình đọc dữ liệu từ một tệp tin. Lỗi nào có thể xảy ra nếu tệp tin không tồn tại hoặc chương trình không có quyền truy cập?

24 / 30

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

Tags: Bộ đề 1

Câu 24: Việc 'kiểm thử lại' (re-testing) sau khi đã sửa một lỗi là bước quan trọng trong quy trình gỡ lỗi vì lý do nào sau đây?

25 / 30

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

Tags: Bộ đề 1

Câu 25: Bạn có một hàm tính trung bình cộng của các số trong danh sách. Hàm này hoạt động sai khi danh sách chứa các giá trị không phải là số (ví dụ: `[1, 2, 'a', 4]`). Lỗi này thuộc loại nào?

26 / 30

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

Tags: Bộ đề 1

Câu 26: Khi kiểm thử một hàm xử lý ngày tháng, việc sử dụng các ngày không hợp lệ (ví dụ: ngày 30 tháng 2, ngày 32 tháng 1) là ví dụ về kiểm thử loại dữ liệu nào?

27 / 30

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

Tags: Bộ đề 1

Câu 27: Một chương trình Python có đoạn code sau: `my_dict = {'a': 1, 'b': 2}`. Nếu bạn cố gắng truy cập `my_dict['c']`, lỗi nào sẽ xảy ra?

28 / 30

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

Tags: Bộ đề 1

Câu 28: Bạn đã sửa một lỗi ngữ nghĩa trong chương trình. Bước tiếp theo quan trọng nhất trong quy trình gỡ lỗi là gì?

29 / 30

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

Tags: Bộ đề 1

Câu 29: Điều nào sau đây là một lợi ích chính của việc sử dụng trình gỡ lỗi (debugger) so với chỉ dùng lệnh `print()` để tìm lỗi?

30 / 30

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

Tags: Bộ đề 1

Câu 30: Tại sao việc kiểm thử với các bộ dữ liệu ngẫu nhiên trong miền xác định của đầu vào có thể giúp tìm ra lỗi?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 02 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong quá trình phát triển chương trình, kiểm thử (testing) chủ yếu nhằm mục đích gì?

  • A. Chỉ để đảm bảo chương trình chạy nhanh nhất có thể.
  • B. Để làm đẹp giao diện người dùng.
  • C. Tìm ra lỗi và đảm bảo chương trình hoạt động đúng theo yêu cầu.
  • D. Để viết tài liệu hướng dẫn sử dụng cho chương trình.

Câu 2: Đâu là điểm khác biệt cốt lõi giữa kiểm thử (testing) và gỡ lỗi (debugging)?

  • A. Kiểm thử chỉ thực hiện sau khi gỡ lỗi xong.
  • B. Kiểm thử là quá trình sửa lỗi, còn gỡ lỗi là quá trình tìm lỗi.
  • C. Kiểm thử chỉ dùng cho lỗi cú pháp, gỡ lỗi dùng cho lỗi logic.
  • D. Kiểm thử nhằm phát hiện sự tồn tại của lỗi, còn gỡ lỗi nhằm tìm nguyên nhân và sửa lỗi.

Câu 3: Khi chạy đoạn code Python sau, lỗi gì sẽ xảy ra?
```python
prnt("Hello World")
```

  • A. Syntax Error (Lỗi cú pháp)
  • B. NameError (Lỗi tên)
  • C. TypeError (Lỗi kiểu dữ liệu)
  • D. ZeroDivisionError (Lỗi chia cho 0)

Câu 4: Quan sát đoạn code sau và cho biết lỗi gì có thể xảy ra khi chạy với giá trị `n = 0`?
```python
def chia_hai_so(a, n):
ket_qua = a / n
return ket_qua

print(chia_hai_so(10, 0))
```

  • A. Syntax Error
  • B. IndexError
  • C. ZeroDivisionError
  • D. TypeError

Câu 5: Đoạn code sau sẽ gây ra lỗi gì?
```python
danh_sach = [1, 2, 3]
print(danh_sach[3])
```

  • A. KeyError
  • B. IndexError
  • C. AttributeError
  • D. ValueError

Câu 6: Khi chạy đoạn code sau, lỗi gì sẽ xuất hiện?
```python
so = 5
chuoi = "10"
ket_hop = so + chuoi
```

  • A. Syntax Error
  • B. NameError
  • C. ZeroDivisionError
  • D. TypeError

Câu 7: Đoạn code sau sẽ báo lỗi gì?
```python
def chao_mung():
print("Xin chào")

chao_mung_ai_do()
```

  • A. NameError
  • B. Syntax Error
  • C. TypeError
  • D. AttributeError

Câu 8: Một chương trình được viết để tính tổng các số từ 1 đến N. Khi chạy với N=5, chương trình cho kết quả là 10 thay vì 15. Đây có khả năng là loại lỗi nào?

  • A. Syntax Error
  • B. Runtime Error
  • C. Logic Error
  • D. Compilation Error

Câu 9: Tại sao việc sử dụng các bộ dữ liệu test đa dạng, bao gồm cả trường hợp điển hình, trường hợp biên và trường hợp không hợp lệ, lại quan trọng trong kiểm thử chương trình?

  • A. Để làm cho quá trình kiểm thử nhanh hơn.
  • B. Chỉ cần test với dữ liệu điển hình là đủ.
  • C. Chủ yếu để kiểm tra tốc độ xử lý của chương trình.
  • D. Để tăng khả năng phát hiện lỗi, đặc biệt là các lỗi xảy ra ở các trường hợp đặc biệt hoặc không mong muốn.

Câu 10: Đối với một hàm tính căn bậc hai của một số, bộ dữ liệu test nào sau đây không phải là trường hợp biên hoặc trường hợp không hợp lệ cần kiểm thử?

  • A. Số âm (ví dụ: -4)
  • B. Số dương lớn (ví dụ: 100)
  • C. Số 0
  • D. Kiểu dữ liệu không phải số (ví dụ: "abc")

Câu 11: Khi gỡ lỗi một chương trình, việc đặt điểm dừng (breakpoint) và chạy từng bước (step-by-step execution) giúp ích gì cho lập trình viên?

  • A. Giúp tự động sửa lỗi chương trình.
  • B. Chỉ làm chậm quá trình chạy chương trình.
  • C. Giúp theo dõi luồng thực thi của chương trình và giá trị của các biến tại từng thời điểm cụ thể.
  • D. Làm cho mã nguồn dễ đọc hơn.

Câu 12: Bạn đang gỡ lỗi một chương trình phức tạp. Sau khi chạy thử với một bộ dữ liệu, chương trình không cho kết quả mong muốn. Bước tiếp theo hợp lý nhất trong quy trình gỡ lỗi là gì?

  • A. Xác định vị trí có khả năng xảy ra lỗi trong mã nguồn.
  • B. Xóa toàn bộ mã nguồn và viết lại từ đầu.
  • C. Thêm thật nhiều lệnh `print()` vào khắp nơi trong code.
  • D. Bỏ qua lỗi và chuyển sang tính năng khác.

Câu 13: Loại lỗi nào sau đây thường khó phát hiện nhất chỉ bằng cách chạy thử chương trình với dữ liệu điển hình?

  • A. Syntax Error
  • B. NameError
  • C. Logic Error
  • D. ZeroDivisionError

Câu 14: Một kịch bản kiểm thử (test case) thường bao gồm những thành phần chính nào?

  • A. Chỉ cần dữ liệu đầu vào.
  • B. Chỉ cần kết quả đầu ra mong muốn.
  • C. Chỉ cần mô tả chức năng cần kiểm thử.
  • D. Dữ liệu đầu vào, kết quả đầu ra mong muốn và các bước thực hiện (nếu cần).

Câu 15: Công cụ gỡ lỗi (debugger) nào giúp bạn tạm dừng chương trình tại một dòng code cụ thể để kiểm tra trạng thái của chương trình?

  • A. Điểm dừng (Breakpoint)
  • B. Lệnh print()
  • C. Trình biên dịch (Compiler)
  • D. Trình soạn thảo mã nguồn (Code editor)

Câu 16: Bạn viết một chương trình tính diện tích hình tròn với bán kính R. Công thức là `dien_tich = 3.14 * R * R`. Nếu người dùng nhập R là chuỗi "5", lỗi gì có khả năng xảy ra?

  • A. ZeroDivisionError
  • B. IndexError
  • C. NameError
  • D. TypeError (do nhân số với chuỗi)

Câu 17: Khi kiểm thử một hàm xử lý danh sách, bộ dữ liệu test nào sau đây thuộc loại "trường hợp biên"?

  • A. Một danh sách chứa 1000 phần tử.
  • B. Một danh sách chứa các số nguyên tố.
  • C. Một danh sách rỗng hoặc một danh sách chỉ có một phần tử.
  • D. Một danh sách chứa các chuỗi.

Câu 18: Bạn đang cố gắng gỡ lỗi một vòng lặp `for` mà bạn nghi ngờ nó không chạy đúng số lần. Công cụ hoặc kỹ thuật nào sau đây hiệu quả nhất để kiểm tra giá trị của biến đếm sau mỗi lần lặp?

  • A. Kiểm tra lại cú pháp của vòng lặp.
  • B. Đặt điểm dừng bên trong vòng lặp và theo dõi biến đếm trong debugger.
  • C. Chỉ chạy chương trình và quan sát kết quả cuối cùng.
  • D. Thay đổi kiểu dữ liệu của biến đếm.

Câu 19: Một chương trình yêu cầu người dùng nhập một số nguyên dương. Nếu người dùng nhập chuỗi

  • A. ZeroDivisionError
  • B. IndexError
  • C. NameError
  • D. ValueError (Lỗi giá trị không hợp lệ)

Câu 20: Lợi ích chính của việc gỡ lỗi từng bước (stepping over, stepping into) trong debugger là gì?

  • A. Tự động sửa lỗi cho bạn.
  • B. Làm cho chương trình chạy nhanh hơn.
  • C. Cho phép bạn đi sâu vào chi tiết việc thực thi của từng dòng lệnh hoặc hàm, giúp xác định chính xác nơi lỗi xảy ra.
  • D. Giúp chương trình tự động tạo ra các bộ test.

Câu 21: Khi chương trình Python gặp một lỗi ngoại lệ (exception) mà không có cơ chế xử lý lỗi (ví dụ: khối `try...except`), điều gì thường xảy ra?

  • A. Chương trình sẽ tự động sửa lỗi và tiếp tục chạy.
  • B. Chương trình sẽ dừng đột ngột và hiển thị thông báo lỗi (traceback).
  • C. Chương trình sẽ bỏ qua lỗi và tiếp tục thực thi các dòng lệnh khác.
  • D. Chương trình sẽ tự động khởi động lại.

Câu 22: Bạn viết một hàm kiểm tra xem một năm có phải là năm nhuận hay không. Theo quy tắc, năm nhuận là năm chia hết cho 4, trừ các năm chia hết cho 100 mà không chia hết cho 400. Bộ dữ liệu test nào sau đây là đầy đủ nhất để kiểm tra hàm này?

  • A. 2000, 2004, 2023
  • B. 1900, 2000, 2100
  • C. 2020, 2024, 2028
  • D. 1900 (chia hết 100, không chia hết 400 - không nhuận), 2000 (chia hết 400 - nhuận), 2023 (không chia hết 4 - không nhuận), 2024 (chia hết 4, không chia hết 100 - nhuận).

Câu 23: Lệnh `print()` có thể được sử dụng như một công cụ gỡ lỗi cơ bản. Tuy nhiên, nó có nhược điểm gì so với việc sử dụng debugger chuyên nghiệp?

  • A. Cần phải thêm/bớt lệnh `print()` trong code, có thể làm thay đổi code gốc và tạo ra output rườm rà; không thể tạm dừng chương trình tương tác.
  • B. Không thể in ra giá trị của biến.
  • C. Chỉ hoạt động với các lỗi cú pháp.
  • D. Làm cho chương trình chạy nhanh hơn một cách đáng kể.

Câu 24: Trong quá trình gỡ lỗi, sau khi đã xác định và sửa lỗi, bước cuối cùng quan trọng là gì?

  • A. Gửi chương trình cho người dùng sử dụng ngay lập tức.
  • B. Xóa bỏ tất cả các bộ dữ liệu test cũ.
  • C. Kiểm thử lại chương trình với các bộ dữ liệu test ban đầu (và có thể thêm bộ test mới) để xác nhận lỗi đã được sửa và không phát sinh lỗi mới.
  • D. Thay đổi hoàn toàn cấu trúc của chương trình.

Câu 25: Loại lỗi nào thường được phát hiện bởi trình thông dịch (interpreter) hoặc trình biên dịch (compiler) trước khi chương trình kịp thực thi?

  • A. Syntax Error
  • B. Runtime Error
  • C. Logic Error
  • D. Semantic Error

Câu 26: Cho đoạn code:
```python
def tinh_giam_gia(gia, phan_tram):
if phan_tram > 100:
phan_tram = 100
gia_sau_giam = gia - (gia * phan_tram / 100)
return gia_sau_giam

print(tinh_giam_gia(200, 50))
print(tinh_giam_gia(100, 120))
```
Khi chạy đoạn code này, kết quả in ra cho lần gọi thứ hai (`tinh_giam_gia(100, 120)`) là bao nhiêu? (Đây là câu hỏi kiểm tra khả năng phân tích logic code).

  • A. -20.0
  • B. 0.0
  • C. 100.0
  • D. Sẽ xảy ra lỗi.

Câu 27: Bạn viết một hàm nhận vào một danh sách số và trả về số lớn nhất trong danh sách đó. Bộ dữ liệu test nào sau đây sẽ giúp bạn kiểm tra xem hàm có xử lý đúng trường hợp danh sách chỉ có một phần tử không?

  • A. [] (danh sách rỗng)
  • B. [1, 5, 2, 8]
  • C. [7]
  • D. [10, 10, 10]

Câu 28: Gỡ lỗi là một kỹ năng quan trọng. Điều gì sau đây không phải là một phương pháp gỡ lỗi hiệu quả?

  • A. Sử dụng công cụ debugger để theo dõi biến và luồng thực thi.
  • B. Giải thích code của bạn cho người khác (hoặc cho chính bạn như thể cho người khác).
  • C. Cô lập phần code nghi ngờ có lỗi để kiểm tra riêng.
  • D. Thay đổi code một cách ngẫu nhiên cho đến khi chương trình chạy mà không báo lỗi.

Câu 29: Việc kiểm thử hồi quy (regression testing) là gì và tại sao nó lại cần thiết sau khi sửa lỗi hoặc thêm tính năng mới?

  • A. Kiểm thử lại các tính năng đã có để đảm bảo việc thay đổi/sửa lỗi không làm phát sinh lỗi mới hoặc phá vỡ chức năng cũ.
  • B. Chỉ kiểm thử các tính năng mới được thêm vào.
  • C. Chỉ kiểm thử các lỗi đã sửa để đảm bảo chúng không tái diễn.
  • D. Kiểm thử hiệu suất của chương trình.

Câu 30: Trong Python, lỗi `KeyError` thường xảy ra khi nào?

  • A. Khi chia cho số 0.
  • B. Khi cố gắng truy cập một khóa (key) không tồn tại trong từ điển (dictionary).
  • C. Khi chỉ số truy cập vượt quá phạm vi của danh sách.
  • D. Khi sử dụng một biến chưa được khai báo.

1 / 30

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

Tags: Bộ đề 2

Câu 1: Trong quá trình phát triển chương trình, kiểm thử (testing) chủ yếu nhằm mục đích gì?

2 / 30

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

Tags: Bộ đề 2

Câu 2: Đâu là điểm khác biệt cốt lõi giữa kiểm thử (testing) và gỡ lỗi (debugging)?

3 / 30

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

Tags: Bộ đề 2

Câu 3: Khi chạy đoạn code Python sau, lỗi gì sẽ xảy ra?
```python
prnt('Hello World')
```

4 / 30

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

Tags: Bộ đề 2

Câu 4: Quan sát đoạn code sau và cho biết lỗi gì có thể xảy ra khi chạy với giá trị `n = 0`?
```python
def chia_hai_so(a, n):
ket_qua = a / n
return ket_qua

print(chia_hai_so(10, 0))
```

5 / 30

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

Tags: Bộ đề 2

Câu 5: Đoạn code sau sẽ gây ra lỗi gì?
```python
danh_sach = [1, 2, 3]
print(danh_sach[3])
```

6 / 30

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

Tags: Bộ đề 2

Câu 6: Khi chạy đoạn code sau, lỗi gì sẽ xuất hiện?
```python
so = 5
chuoi = '10'
ket_hop = so + chuoi
```

7 / 30

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

Tags: Bộ đề 2

Câu 7: Đoạn code sau sẽ báo lỗi gì?
```python
def chao_mung():
print('Xin chào')

chao_mung_ai_do()
```

8 / 30

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

Tags: Bộ đề 2

Câu 8: Một chương trình được viết để tính tổng các số từ 1 đến N. Khi chạy với N=5, chương trình cho kết quả là 10 thay vì 15. Đây có khả năng là loại lỗi nào?

9 / 30

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

Tags: Bộ đề 2

Câu 9: Tại sao việc sử dụng các bộ dữ liệu test đa dạng, bao gồm cả trường hợp điển hình, trường hợp biên và trường hợp không hợp lệ, lại quan trọng trong kiểm thử chương trình?

10 / 30

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

Tags: Bộ đề 2

Câu 10: Đối với một hàm tính căn bậc hai của một số, bộ dữ liệu test nào sau đây *không* phải là trường hợp biên hoặc trường hợp không hợp lệ cần kiểm thử?

11 / 30

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

Tags: Bộ đề 2

Câu 11: Khi gỡ lỗi một chương trình, việc đặt điểm dừng (breakpoint) và chạy từng bước (step-by-step execution) giúp ích gì cho lập trình viên?

12 / 30

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

Tags: Bộ đề 2

Câu 12: Bạn đang gỡ lỗi một chương trình phức tạp. Sau khi chạy thử với một bộ dữ liệu, chương trình không cho kết quả mong muốn. Bước tiếp theo hợp lý nhất trong quy trình gỡ lỗi là gì?

13 / 30

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

Tags: Bộ đề 2

Câu 13: Loại lỗi nào sau đây thường khó phát hiện nhất chỉ bằng cách chạy thử chương trình với dữ liệu điển hình?

14 / 30

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

Tags: Bộ đề 2

Câu 14: Một kịch bản kiểm thử (test case) thường bao gồm những thành phần chính nào?

15 / 30

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

Tags: Bộ đề 2

Câu 15: Công cụ gỡ lỗi (debugger) nào giúp bạn tạm dừng chương trình tại một dòng code cụ thể để kiểm tra trạng thái của chương trình?

16 / 30

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

Tags: Bộ đề 2

Câu 16: Bạn viết một chương trình tính diện tích hình tròn với bán kính R. Công thức là `dien_tich = 3.14 * R * R`. Nếu người dùng nhập R là chuỗi '5', lỗi gì có khả năng xảy ra?

17 / 30

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

Tags: Bộ đề 2

Câu 17: Khi kiểm thử một hàm xử lý danh sách, bộ dữ liệu test nào sau đây thuộc loại 'trường hợp biên'?

18 / 30

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

Tags: Bộ đề 2

Câu 18: Bạn đang cố gắng gỡ lỗi một vòng lặp `for` mà bạn nghi ngờ nó không chạy đúng số lần. Công cụ hoặc kỹ thuật nào sau đây hiệu quả nhất để kiểm tra giá trị của biến đếm sau mỗi lần lặp?

19 / 30

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

Tags: Bộ đề 2

Câu 19: Một chương trình yêu cầu người dùng nhập một số nguyên dương. Nếu người dùng nhập chuỗi "hello", lỗi gì sẽ xảy ra tại câu lệnh `int(input(...))`?

20 / 30

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

Tags: Bộ đề 2

Câu 20: Lợi ích chính của việc gỡ lỗi từng bước (stepping over, stepping into) trong debugger là gì?

21 / 30

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

Tags: Bộ đề 2

Câu 21: Khi chương trình Python gặp một lỗi ngoại lệ (exception) mà không có cơ chế xử lý lỗi (ví dụ: khối `try...except`), điều gì thường xảy ra?

22 / 30

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

Tags: Bộ đề 2

Câu 22: Bạn viết một hàm kiểm tra xem một năm có phải là năm nhuận hay không. Theo quy tắc, năm nhuận là năm chia hết cho 4, trừ các năm chia hết cho 100 mà không chia hết cho 400. Bộ dữ liệu test nào sau đây là *đầy đủ nhất* để kiểm tra hàm này?

23 / 30

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

Tags: Bộ đề 2

Câu 23: Lệnh `print()` có thể được sử dụng như một công cụ gỡ lỗi cơ bản. Tuy nhiên, nó có nhược điểm gì so với việc sử dụng debugger chuyên nghiệp?

24 / 30

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

Tags: Bộ đề 2

Câu 24: Trong quá trình gỡ lỗi, sau khi đã xác định và sửa lỗi, bước cuối cùng quan trọng là gì?

25 / 30

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

Tags: Bộ đề 2

Câu 25: Loại lỗi nào thường được phát hiện bởi trình thông dịch (interpreter) hoặc trình biên dịch (compiler) trước khi chương trình kịp thực thi?

26 / 30

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

Tags: Bộ đề 2

Câu 26: Cho đoạn code:
```python
def tinh_giam_gia(gia, phan_tram):
if phan_tram > 100:
phan_tram = 100
gia_sau_giam = gia - (gia * phan_tram / 100)
return gia_sau_giam

print(tinh_giam_gia(200, 50))
print(tinh_giam_gia(100, 120))
```
Khi chạy đoạn code này, kết quả in ra cho lần gọi thứ hai (`tinh_giam_gia(100, 120)`) là bao nhiêu? (Đây là câu hỏi kiểm tra khả năng phân tích logic code).

27 / 30

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

Tags: Bộ đề 2

Câu 27: Bạn viết một hàm nhận vào một danh sách số và trả về số lớn nhất trong danh sách đó. Bộ dữ liệu test nào sau đây sẽ giúp bạn kiểm tra xem hàm có xử lý đúng trường hợp danh sách chỉ có một phần tử không?

28 / 30

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

Tags: Bộ đề 2

Câu 28: Gỡ lỗi là một kỹ năng quan trọng. Điều gì sau đây không phải là một phương pháp gỡ lỗi hiệu quả?

29 / 30

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

Tags: Bộ đề 2

Câu 29: Việc kiểm thử hồi quy (regression testing) là gì và tại sao nó lại cần thiết sau khi sửa lỗi hoặc thêm tính năng mới?

30 / 30

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

Tags: Bộ đề 2

Câu 30: Trong Python, lỗi `KeyError` thường xảy ra khi nào?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 03 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục tiêu chính của việc kiểm thử chương trình là gì?

  • A. Chứng minh rằng chương trình không có lỗi.
  • B. Phát hiện càng nhiều lỗi càng tốt trong chương trình.
  • C. Làm cho chương trình chạy nhanh hơn.
  • D. Cải thiện giao diện người dùng của chương trình.

Câu 2: Loại lỗi nào sau đây thường được phát hiện trong giai đoạn biên dịch (compilation) của quá trình phát triển phần mềm?

  • A. Lỗi cú pháp (Syntax errors)
  • B. Lỗi logic (Logic errors)
  • C. Lỗi thời gian chạy (Runtime errors)
  • D. Lỗi thiết kế (Design errors)

Câu 3: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi này được gọi là gì?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logic error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi biên dịch (Compilation error)

Câu 4: Một chương trình tính tổng hai số luôn trả về kết quả sai lệch so với mong đợi, mặc dù không có lỗi cú pháp hay lỗi thời gian chạy. Đây là loại lỗi gì?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logic error)
  • C. Lỗi giao diện (Interface error)
  • D. Lỗi hiệu suất (Performance error)

Câu 5: Kỹ thuật "in vết" (tracing) trong gỡ lỗi chương trình thường được thực hiện bằng cách nào?

  • A. Sử dụng lệnh in (print) để hiển thị giá trị biến tại các điểm khác nhau trong chương trình.
  • B. Sử dụng trình biên dịch để kiểm tra lỗi.
  • C. Viết lại toàn bộ chương trình từ đầu.
  • D. Yêu cầu người dùng cuối kiểm tra và báo lỗi.

Câu 6: Ưu điểm chính của việc sử dụng công cụ gỡ lỗi (debugger) so với việc chỉ dùng lệnh in (print) là gì?

  • A. Lệnh in dễ sử dụng hơn.
  • B. Lệnh in không làm chậm chương trình.
  • C. Công cụ gỡ lỗi cho phép theo dõi và điều khiển chương trình từng bước, xem giá trị biến tại mọi thời điểm.
  • D. Công cụ gỡ lỗi luôn tìm ra lỗi tự động.

Câu 7: Xét một hàm tính căn bậc hai. Để kiểm thử hàm này, bộ dữ liệu kiểm thử nào sau đây thể hiện việc kiểm thử giá trị biên (boundary value testing) tốt nhất?

  • A. {4, 9, 16, 25}
  • B. {-1, 0, 1, 10000}
  • C. {0.5, 1.5, 2.5}
  • D. Tất cả các số nguyên từ 1 đến 100.

Câu 8: Phân vùng tương đương (equivalence partitioning) là kỹ thuật kiểm thử dựa trên việc chia dữ liệu đầu vào thành các nhóm có đặc điểm tương tự nhau. Lợi ích chính của kỹ thuật này là gì?

  • A. Tăng số lượng test case để kiểm tra mọi trường hợp.
  • B. Đảm bảo kiểm tra tất cả các dòng code.
  • C. Tìm ra tất cả các lỗi tiềm ẩn.
  • D. Giảm số lượng test case cần thiết trong khi vẫn bao phủ các tình huống điển hình.

Câu 9: Kiểm thử đơn vị (unit testing) thường được thực hiện ở giai đoạn nào của quy trình phát triển phần mềm?

  • A. Trong giai đoạnCoding (Viết mã)
  • B. Trong giai đoạn Thiết kế (Design)
  • C. Trong giai đoạn Triển khai (Deployment)
  • D. Sau khi hoàn thành toàn bộ chương trình

Câu 10: Mục tiêu chính của kiểm thử tích hợp (integration testing) là gì?

  • A. Kiểm tra từng hàm (function) riêng lẻ.
  • B. Kiểm tra sự tương tác và giao tiếp giữa các module khác nhau của chương trình.
  • C. Kiểm tra hiệu suất tổng thể của chương trình.
  • D. Kiểm tra giao diện người dùng.

Câu 11: Kiểm thử hộp đen (black-box testing) tập trung vào khía cạnh nào của phần mềm?

  • A. Cấu trúc code bên trong của chương trình.
  • B. Độ phức tạp của thuật toán.
  • C. Chức năng và hành vi bên ngoài của chương trình theo đặc tả yêu cầu.
  • D. Hiệu suất sử dụng bộ nhớ.

Câu 12: Để thực hiện kiểm thử hộp trắng (white-box testing), người kiểm thử cần có kiến thức gì?

  • A. Cấu trúc code và thuật toán bên trong chương trình.
  • B. Yêu cầu của người dùng về chức năng.
  • C. Giao diện người dùng của chương trình.
  • D. Môi trường triển khai chương trình.

Câu 13: Mục đích chính của việc thiết kế test case (ca kiểm thử) là gì?

  • A. Viết code chương trình nhanh hơn.
  • B. Đặc tả chi tiết các bước kiểm tra và dữ liệu cần thiết để kiểm chứng một chức năng cụ thể.
  • C. Tạo ra tài liệu hướng dẫn sử dụng chương trình.
  • D. Tự động sửa lỗi chương trình.

Câu 14: Yếu tố nào sau đây KHÔNG phải là một đặc điểm của một test case tốt?

  • A. Rõ ràng và dễ hiểu.
  • B. Có khả năng tái sử dụng.
  • C. Phức tạp và bao gồm nhiều bước.
  • D. Tập trung vào một mục tiêu kiểm thử cụ thể.

Câu 15: Vai trò của kế hoạch kiểm thử (test plan) trong dự án phát triển phần mềm là gì?

  • A. Tự động sinh code kiểm thử.
  • B. Thay thế cho việc thực hiện kiểm thử thủ công.
  • C. Đảm bảo không có lỗi trong chương trình.
  • D. Định hướng và quản lý toàn bộ hoạt động kiểm thử trong dự án.

Câu 16: Bước đầu tiên trong quy trình gỡ lỗi chương trình một cách có hệ thống thường là gì?

  • A. Sửa lỗi ngay lập tức khi nghi ngờ nguyên nhân.
  • B. Tái hiện lại lỗi một cách tin cậy.
  • C. Đọc toàn bộ code chương trình.
  • D. Hỏi ý kiến đồng nghiệp.

Câu 17: Khi gặp thông báo lỗi (error message) từ trình biên dịch hoặc trình thông dịch, hành động đầu tiên nên làm là gì?

  • A. Đọc kỹ thông báo lỗi để hiểu vấn đề.
  • B. Bỏ qua thông báo lỗi và chạy lại chương trình.
  • C. Tìm kiếm lỗi trên internet ngay lập tức.
  • D. Viết lại đoạn code gây ra lỗi.

Câu 18: Tại sao việc tái hiện lỗi (bug reproduction) là quan trọng trong quá trình gỡ lỗi?

  • A. Để chứng minh lỗi là do người khác gây ra.
  • B. Để chương trình chạy nhanh hơn.
  • C. Để hiểu rõ nguyên nhân gây ra lỗi và kiểm chứng giải pháp sửa lỗi.
  • D. Để báo cáo lỗi cho quản lý.

Câu 19: Kỹ thuật "chia để trị" (divide and conquer) có thể áp dụng trong gỡ lỗi như thế nào?

  • A. Chia chương trình thành nhiều phần nhỏ để viết code nhanh hơn.
  • B. Chia chương trình thành các phần nhỏ hơn để khoanh vùng khu vực có lỗi.
  • C. Chia lỗi thành các loại khác nhau để dễ sửa.
  • D. Chia test case thành các nhóm nhỏ.

Câu 20: Phân tích nguyên nhân gốc rễ (root cause analysis) trong gỡ lỗi nhằm mục đích gì?

  • A. Sửa lỗi nhanh chóng mà không cần hiểu rõ nguyên nhân.
  • B. Tìm ra tất cả các lỗi trong chương trình.
  • C. Đổ lỗi cho người viết code.
  • D. Xác định nguyên nhân sâu xa nhất gây ra lỗi, không chỉ triệu chứng bề mặt.

Câu 21: Kiểm thử hồi quy (regression testing) được thực hiện khi nào?

  • A. Trước khi viết code chương trình.
  • B. Chỉ khi phát hiện ra lỗi mới.
  • C. Sau khi thực hiện sửa đổi code (ví dụ: sửa lỗi hoặc thêm tính năng mới).
  • D. Trước khi bàn giao phần mềm cho người dùng cuối.

Câu 22: Độ bao phủ kiểm thử (test coverage) đo lường điều gì?

  • A. Số lượng test case đã thực hiện.
  • B. Tỷ lệ phần trăm code của chương trình đã được thực thi bởi các test case.
  • C. Thời gian cần thiết để thực hiện kiểm thử.
  • D. Mức độ hài lòng của người dùng về chất lượng phần mềm.

Câu 23: Phát triển hướng kiểm thử (Test-Driven Development - TDD) là phương pháp lập trình mà trong đó, điều gì được thực hiện trước?

  • A. Viết test case trước khi viết code chương trình.
  • B. Viết code chương trình trước rồi mới viết test case.
  • C. Viết code và test case song song.
  • D. Không cần viết test case trong quá trình phát triển.

Câu 24: Phân tích tĩnh (static analysis) là phương pháp kiểm thử phần mềm như thế nào?

  • A. Kiểm thử chương trình bằng cách chạy nó với các dữ liệu đầu vào khác nhau.
  • B. Kiểm thử hiệu suất của chương trình khi tải nặng.
  • C. Kiểm tra code mà không cần thực thi chương trình, thường để tìm lỗi cú pháp, lỗi tiềm ẩn và tuân thủ quy tắc.
  • D. Kiểm thử giao diện người dùng.

Câu 25: Phương pháp kiểm thử nào sau đây đòi hỏi phải thực sự chạy chương trình?

  • A. Phân tích code (Code review)
  • B. Kiểm thử hộp đen (Black-box testing)
  • C. Phân tích tĩnh (Static analysis)
  • D. Kiểm tra cú pháp (Syntax checking)

Câu 26: Kiểm thử đột biến (mutation testing) được sử dụng để đánh giá điều gì?

  • A. Hiệu suất của chương trình.
  • B. Tính bảo mật của chương trình.
  • C. Tính dễ sử dụng của chương trình.
  • D. Chất lượng của bộ test case (khả năng phát hiện lỗi).

Câu 27: Lợi ích chính của việc tự động hóa kiểm thử (test automation) là gì?

  • A. Tăng tốc độ và hiệu quả của quá trình kiểm thử, đặc biệt trong kiểm thử hồi quy.
  • B. Loại bỏ hoàn toàn nhu cầu kiểm thử thủ công.
  • C. Đảm bảo chương trình không có lỗi.
  • D. Giảm chi phí phát triển phần mềm.

Câu 28: Thái độ nào sau đây là quan trọng nhất đối với một người gỡ lỗi chương trình hiệu quả?

  • A. Nóng vội và muốn sửa lỗi ngay lập tức.
  • B. Chỉ tin vào kinh nghiệm cá nhân mà không xem xét thông báo lỗi.
  • C. Kiên nhẫn, tỉ mỉ và có phương pháp tiếp cận logic.
  • D. Đổ lỗi cho công cụ hoặc môi trường lập trình.

Câu 29: Biện pháp chủ động nào sau đây giúp giảm thiểu lỗi trong quá trình lập trình?

  • A. Kiểm thử chương trình sau khi viết xong.
  • B. Viết code rõ ràng, có cấu trúc tốt và tuân thủ các quy ước lập trình.
  • C. Sử dụng công cụ gỡ lỗi mạnh mẽ.
  • D. Tăng cường kiểm thử hồi quy.

Câu 30: Kiểm thử phần mềm nên được thực hiện trong giai đoạn nào của vòng đời phát triển phần mềm?

  • A. Chỉ sau khi code đã được viết xong.
  • B. Chỉ trong giai đoạn kiểm thử chính thức.
  • C. Chỉ ở giai đoạn cuối trước khi phát hành.
  • D. Xuyên suốt vòng đời phát triển phần mềm, từ giai đoạn yêu cầu đến triển khai và bảo trì.

1 / 30

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

Tags: Bộ đề 3

Câu 1: Mục tiêu chính của việc kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 3

Câu 2: Loại lỗi nào sau đây thường được phát hiện trong giai đoạn biên dịch (compilation) của quá trình phát triển phần mềm?

3 / 30

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

Tags: Bộ đề 3

Câu 3: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi này được gọi là gì?

4 / 30

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

Tags: Bộ đề 3

Câu 4: Một chương trình tính tổng hai số luôn trả về kết quả sai lệch so với mong đợi, mặc dù không có lỗi cú pháp hay lỗi thời gian chạy. Đây là loại lỗi gì?

5 / 30

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

Tags: Bộ đề 3

Câu 5: Kỹ thuật 'in vết' (tracing) trong gỡ lỗi chương trình thường được thực hiện bằng cách nào?

6 / 30

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

Tags: Bộ đề 3

Câu 6: Ưu điểm chính của việc sử dụng công cụ gỡ lỗi (debugger) so với việc chỉ dùng lệnh in (print) là gì?

7 / 30

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

Tags: Bộ đề 3

Câu 7: Xét một hàm tính căn bậc hai. Để kiểm thử hàm này, bộ dữ liệu kiểm thử nào sau đây thể hiện việc kiểm thử giá trị biên (boundary value testing) tốt nhất?

8 / 30

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

Tags: Bộ đề 3

Câu 8: Phân vùng tương đương (equivalence partitioning) là kỹ thuật kiểm thử dựa trên việc chia dữ liệu đầu vào thành các nhóm có đặc điểm tương tự nhau. Lợi ích chính của kỹ thuật này là gì?

9 / 30

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

Tags: Bộ đề 3

Câu 9: Kiểm thử đơn vị (unit testing) thường được thực hiện ở giai đoạn nào của quy trình phát triển phần mềm?

10 / 30

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

Tags: Bộ đề 3

Câu 10: Mục tiêu chính của kiểm thử tích hợp (integration testing) là gì?

11 / 30

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

Tags: Bộ đề 3

Câu 11: Kiểm thử hộp đen (black-box testing) tập trung vào khía cạnh nào của phần mềm?

12 / 30

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

Tags: Bộ đề 3

Câu 12: Để thực hiện kiểm thử hộp trắng (white-box testing), người kiểm thử cần có kiến thức gì?

13 / 30

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

Tags: Bộ đề 3

Câu 13: Mục đích chính của việc thiết kế test case (ca kiểm thử) là gì?

14 / 30

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

Tags: Bộ đề 3

Câu 14: Yếu tố nào sau đây KHÔNG phải là một đặc điểm của một test case tốt?

15 / 30

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

Tags: Bộ đề 3

Câu 15: Vai trò của kế hoạch kiểm thử (test plan) trong dự án phát triển phần mềm là gì?

16 / 30

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

Tags: Bộ đề 3

Câu 16: Bước đầu tiên trong quy trình gỡ lỗi chương trình một cách có hệ thống thường là gì?

17 / 30

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

Tags: Bộ đề 3

Câu 17: Khi gặp thông báo lỗi (error message) từ trình biên dịch hoặc trình thông dịch, hành động đầu tiên nên làm là gì?

18 / 30

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

Tags: Bộ đề 3

Câu 18: Tại sao việc tái hiện lỗi (bug reproduction) là quan trọng trong quá trình gỡ lỗi?

19 / 30

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

Tags: Bộ đề 3

Câu 19: Kỹ thuật 'chia để trị' (divide and conquer) có thể áp dụng trong gỡ lỗi như thế nào?

20 / 30

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

Tags: Bộ đề 3

Câu 20: Phân tích nguyên nhân gốc rễ (root cause analysis) trong gỡ lỗi nhằm mục đích gì?

21 / 30

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

Tags: Bộ đề 3

Câu 21: Kiểm thử hồi quy (regression testing) được thực hiện khi nào?

22 / 30

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

Tags: Bộ đề 3

Câu 22: Độ bao phủ kiểm thử (test coverage) đo lường điều gì?

23 / 30

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

Tags: Bộ đề 3

Câu 23: Phát triển hướng kiểm thử (Test-Driven Development - TDD) là phương pháp lập trình mà trong đó, điều gì được thực hiện trước?

24 / 30

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

Tags: Bộ đề 3

Câu 24: Phân tích tĩnh (static analysis) là phương pháp kiểm thử phần mềm như thế nào?

25 / 30

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

Tags: Bộ đề 3

Câu 25: Phương pháp kiểm thử nào sau đây đòi hỏi phải thực sự chạy chương trình?

26 / 30

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

Tags: Bộ đề 3

Câu 26: Kiểm thử đột biến (mutation testing) được sử dụng để đánh giá điều gì?

27 / 30

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

Tags: Bộ đề 3

Câu 27: Lợi ích chính của việc tự động hóa kiểm thử (test automation) là gì?

28 / 30

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

Tags: Bộ đề 3

Câu 28: Thái độ nào sau đây là quan trọng nhất đối với một người gỡ lỗi chương trình hiệu quả?

29 / 30

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

Tags: Bộ đề 3

Câu 29: Biện pháp chủ động nào sau đây giúp giảm thiểu lỗi trong quá trình lập trình?

30 / 30

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

Tags: Bộ đề 3

Câu 30: Kiểm thử phần mềm nên được thực hiện trong giai đoạn nào của vòng đời phát triển phần mềm?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục tiêu chính của kiểm thử chương trình là gì?

  • A. Để chứng minh rằng chương trình không có lỗi.
  • B. Để làm cho chương trình chạy nhanh hơn.
  • C. Để tăng tính thẩm mỹ của giao diện người dùng.
  • D. Để phát hiện lỗi và đảm bảo chương trình hoạt động đúng theo yêu cầu.

Câu 2: Trong quá trình gỡ lỗi, khi chương trình báo lỗi `SyntaxError`, loại lỗi này thường xuất phát từ đâu?

  • A. Viết sai quy tắc, cấu trúc của ngôn ngữ lập trình.
  • B. Lỗi liên quan đến việc sử dụng biến chưa được khai báo.
  • C. Thực hiện phép toán không hợp lệ trong quá trình chạy.
  • D. Lỗi logic trong thuật toán khiến chương trình chạy sai kết quả.

Câu 3: Công cụ `print()` thường được sử dụng trong quá trình gỡ lỗi với mục đích chính nào?

  • A. Để chương trình chạy nhanh hơn trong quá trình kiểm thử.
  • B. Hiển thị giá trị của biến hoặc biểu thức tại một thời điểm cụ thể trong chương trình.
  • C. Tự động sửa lỗi cú pháp trong chương trình.
  • D. Tạo báo cáo chi tiết về hiệu suất của chương trình.

Câu 4: Xét đoạn mã Python sau: `a = 10 / 0`. Khi chạy đoạn mã này, lỗi ngoại lệ nào sẽ phát sinh?

  • A. NameError
  • B. TypeError
  • C. ZeroDivisionError
  • D. ValueError

Câu 5: Để kiểm thử chương trình tính giai thừa, bộ dữ liệu kiểm thử nào sau đây là phù hợp để kiểm tra lỗi vùng biên?

  • A. Các số nguyên dương lớn ngẫu nhiên.
  • B. Số 0, số 1 và một số nguyên dương nhỏ.
  • C. Các số thực âm và số thực dương.
  • D. Chỉ các số nguyên dương chẵn.

Câu 6: Trong quá trình kiểm thử hộp đen (black-box testing), người kiểm thử tập trung vào yếu tố nào?

  • A. Cấu trúc mã nguồn và thuật toán bên trong chương trình.
  • B. Hiệu suất sử dụng bộ nhớ và CPU của chương trình.
  • C. Chức năng và hành vi đầu ra của chương trình dựa trên đầu vào.
  • D. Tính dễ đọc và dễ bảo trì của mã nguồn.

Câu 7: Khi chương trình phát sinh lỗi `IndexError`, nguyên nhân phổ biến nhất là gì?

  • A. Truy cập vào một vị trí không tồn tại trong danh sách hoặc chuỗi.
  • B. Sử dụng biến chưa được gán giá trị ban đầu.
  • C. Thực hiện phép toán trên kiểu dữ liệu không phù hợp.
  • D. Viết sai tên biến hoặc hàm.

Câu 8: Phương pháp "điểm dừng" (breakpoint) trong IDE giúp ích gì trong quá trình gỡ lỗi?

  • A. Tự động sửa lỗi chương trình khi biên dịch.
  • B. Tối ưu hóa hiệu suất của chương trình.
  • C. Sinh tự động các bộ dữ liệu kiểm thử.
  • D. Tạm dừng chương trình tại một dòng lệnh cụ thể để kiểm tra giá trị biến và trạng thái chương trình.

Câu 9: Xét đoạn mã Python: `int("abc")`. Lỗi ngoại lệ nào sẽ xảy ra khi thực thi?

  • A. TypeError
  • B. NameError
  • C. SyntaxError
  • D. ValueError

Câu 10: Khi thiết kế bộ kiểm thử, tiêu chí "tính bao phủ" (coverage) đề cập đến điều gì?

  • A. Số lượng test case trong bộ kiểm thử.
  • B. Mức độ các dòng lệnh, nhánh hoặc điều kiện trong chương trình được thực thi bởi bộ kiểm thử.
  • C. Thời gian thực hiện mỗi test case.
  • D. Độ phức tạp của dữ liệu đầu vào trong test case.

Câu 11: Lỗi logic trong chương trình là loại lỗi như thế nào?

  • A. Lỗi do viết sai cú pháp ngôn ngữ.
  • B. Lỗi phát sinh khi chương trình thực thi, ví dụ chia cho 0.
  • C. Lỗi sai sót trong thuật toán hoặc cách giải quyết vấn đề, dẫn đến kết quả không đúng.
  • D. Lỗi do thiếu thư viện hoặc module cần thiết.

Câu 12: Để kiểm tra tính đúng đắn của hàm sắp xếp, bạn nên sử dụng bộ dữ liệu kiểm thử như thế nào?

  • A. Một danh sách đã được sắp xếp sẵn.
  • B. Một danh sách chỉ chứa các số giống nhau.
  • C. Một danh sách rỗng.
  • D. Danh sách có các phần tử ngẫu nhiên, danh sách rỗng, danh sách có một phần tử, và danh sách đã sắp xếp ngược.

Câu 13: Trong ngôn ngữ lập trình, lỗi "NameError" thường xảy ra khi nào?

  • A. Thực hiện phép chia cho số 0.
  • B. Sử dụng một biến hoặc hàm chưa được khai báo hoặc định nghĩa.
  • C. Cố gắng chuyển đổi kiểu dữ liệu không hợp lệ.
  • D. Truy cập vào chỉ số ngoài phạm vi của danh sách.

Câu 14: Kỹ thuật "vết chương trình" (tracing) trong gỡ lỗi là gì?

  • A. Theo dõi từng bước thực hiện của chương trình, thường bằng cách in ra các thông tin trung gian.
  • B. Sử dụng công cụ tự động để tìm và sửa lỗi cú pháp.
  • C. Kiểm thử chương trình bằng cách cung cấp dữ liệu ngẫu nhiên.
  • D. Phân tích mã nguồn chương trình để tìm lỗi logic.

Câu 15: Cho đoạn mã Python: `numbers = [1, 2, 3]; print(numbers[3])`. Loại lỗi nào sẽ phát sinh?

  • A. TypeError
  • B. NameError
  • C. IndexError
  • D. ValueError

Câu 16: Phát biểu nào sau đây mô tả đúng nhất về quy trình kiểm thử phần mềm?

  • A. Quy trình tuyến tính, thực hiện một lần duy nhất sau khi viết mã xong.
  • B. Chỉ bao gồm việc tìm lỗi và sửa lỗi.
  • C. Chỉ cần kiểm thử trên một vài bộ dữ liệu đại diện.
  • D. Quy trình lặp đi lặp lại, bao gồm thiết kế test case, thực hiện kiểm thử, báo cáo lỗi và sửa lỗi, và kiểm thử lại.

Câu 17: Công cụ "trình gỡ lỗi" (debugger) cung cấp chức năng nào quan trọng?

  • A. Tự động viết mã chương trình.
  • B. Cho phép chạy chương trình từng bước và theo dõi giá trị biến tại mỗi bước.
  • C. Tối ưu hóa mã nguồn để giảm thời gian chạy.
  • D. Chuyển đổi mã nguồn từ ngôn ngữ này sang ngôn ngữ khác.

Câu 18: Khi gặp lỗi "TypeError", bạn nên kiểm tra điều gì đầu tiên?

  • A. Tên của các biến và hàm trong chương trình.
  • B. Chỉ số truy cập trong danh sách hoặc chuỗi.
  • C. Kiểu dữ liệu của các biến và giá trị sử dụng trong các phép toán hoặc hàm.
  • D. Cú pháp của các câu lệnh điều khiển (if, for, while).

Câu 19: Mục đích của việc "sinh dữ liệu kiểm thử ngẫu nhiên" là gì?

  • A. Tăng khả năng phát hiện các lỗi không mong muốn hoặc lỗi tiềm ẩn trong nhiều tình huống khác nhau.
  • B. Giảm thời gian thiết kế bộ dữ liệu kiểm thử.
  • C. Đảm bảo tính dễ đọc của dữ liệu kiểm thử.
  • D. Kiểm tra hiệu suất của chương trình với dữ liệu lớn.

Câu 20: Xét đoạn mã Python sau, giả sử người dùng nhập vào "hello": `number = int(input("Nhập số: "))`. Điều gì sẽ xảy ra?

  • A. Chương trình sẽ chạy bình thường và gán giá trị 0 cho biến "number".
  • B. Lỗi ValueError sẽ phát sinh do không thể chuyển đổi "hello" sang số nguyên.
  • C. Lỗi TypeError sẽ phát sinh.
  • D. Chương trình sẽ bỏ qua dòng lệnh này và tiếp tục thực hiện.

Câu 21: Trong kiểm thử phần mềm, "test case" là gì?

  • A. Một loại lỗi cụ thể trong chương trình.
  • B. Một công cụ dùng để gỡ lỗi.
  • C. Một tập hợp các đầu vào, điều kiện thực hiện và kết quả mong đợi để kiểm tra một chức năng cụ thể.
  • D. Bản báo cáo về lỗi sau khi kiểm thử.

Câu 22: Khi nào lỗi "SyntaxError: invalid syntax" thường xảy ra trong Python?

  • A. Khi chia cho số 0.
  • B. Khi truy cập chỉ số ngoài phạm vi của danh sách.
  • C. Khi sử dụng kiểu dữ liệu không phù hợp.
  • D. Khi viết câu lệnh không đúng theo quy tắc ngữ pháp của Python.

Câu 23: Điều gì KHÔNG phải là một bước trong quy trình gỡ lỗi hiệu quả?

  • A. Tái hiện lại lỗi một cách ổn định.
  • B. Thêm nhiều tính năng mới vào chương trình để che giấu lỗi.
  • C. Xác định vị trí và nguyên nhân gây ra lỗi.
  • D. Sửa lỗi và kiểm tra lại chương trình.

Câu 24: Tại sao cần kiểm thử chương trình với nhiều loại dữ liệu đầu vào khác nhau?

  • A. Để làm cho chương trình chạy nhanh hơn.
  • B. Để giảm dung lượng mã nguồn.
  • C. Để đảm bảo chương trình hoạt động đúng trong nhiều tình huống và phát hiện lỗi tiềm ẩn với các loại dữ liệu khác nhau.
  • D. Để tăng tính bảo mật cho chương trình.

Câu 25: Công cụ nào sau đây KHÔNG được sử dụng trực tiếp để gỡ lỗi chương trình?

  • A. Trình gỡ lỗi (Debugger).
  • B. Lệnh in (Print statements).
  • C. Điểm dừng (Breakpoints).
  • D. Trình soạn thảo văn bản (Text editor).

Câu 26: Trong kiểm thử, "dữ liệu hợp lệ" và "dữ liệu không hợp lệ" được sử dụng để làm gì?

  • A. Chỉ kiểm tra chức năng chính của chương trình.
  • B. Kiểm tra cả chức năng hoạt động đúng và khả năng xử lý lỗi của chương trình.
  • C. Chỉ kiểm tra hiệu suất của chương trình.
  • D. Để tạo báo cáo kiểm thử tự động.

Câu 27: Khi chương trình chạy chậm hơn dự kiến, loại lỗi nào có thể là nguyên nhân?

  • A. SyntaxError.
  • B. NameError.
  • C. Lỗi logic trong thuật toán dẫn đến hiệu suất kém.
  • D. ZeroDivisionError.

Câu 28: Điều gì quan trọng nhất khi viết thông báo lỗi (error message) trong chương trình?

  • A. Rõ ràng, dễ hiểu và cung cấp đủ thông tin để người dùng có thể tự sửa lỗi.
  • B. Ngắn gọn nhất có thể để không làm phiền người dùng.
  • C. Sử dụng ngôn ngữ kỹ thuật phức tạp để mô tả chính xác lỗi.
  • D. Không cần thiết phải có thông báo lỗi, chương trình tự động sửa lỗi là tốt nhất.

Câu 29: Phương pháp kiểm thử "hộp trắng" (white-box testing) tập trung vào điều gì?

  • A. Chức năng và giao diện bên ngoài của chương trình.
  • B. Cấu trúc mã nguồn, các nhánh và đường dẫn thực thi bên trong chương trình.
  • C. Hành vi của người dùng khi tương tác với chương trình.
  • D. Hiệu suất và khả năng chịu tải của chương trình.

Câu 30: Khi kiểm thử một hàm nhận đầu vào là số nguyên và trả về chuỗi, loại lỗi "TypeError" có thể xảy ra khi nào?

  • A. Khi đầu vào không phải là số nguyên.
  • B. Khi chuỗi trả về quá dài.
  • C. Khi số nguyên đầu vào quá lớn.
  • D. Khi cố gắng thực hiện thao tác chỉ dành cho số trên chuỗi trả về từ hàm mà không chuyển đổi kiểu.

1 / 30

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

Tags: Bộ đề 4

Câu 1: Mục tiêu chính của kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 4

Câu 2: Trong quá trình gỡ lỗi, khi chương trình báo lỗi `SyntaxError`, loại lỗi này thường xuất phát từ đâu?

3 / 30

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

Tags: Bộ đề 4

Câu 3: Công cụ `print()` thường được sử dụng trong quá trình gỡ lỗi với mục đích chính nào?

4 / 30

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

Tags: Bộ đề 4

Câu 4: Xét đoạn mã Python sau: `a = 10 / 0`. Khi chạy đoạn mã này, lỗi ngoại lệ nào sẽ phát sinh?

5 / 30

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

Tags: Bộ đề 4

Câu 5: Để kiểm thử chương trình tính giai thừa, bộ dữ liệu kiểm thử nào sau đây là phù hợp để kiểm tra lỗi vùng biên?

6 / 30

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

Tags: Bộ đề 4

Câu 6: Trong quá trình kiểm thử hộp đen (black-box testing), người kiểm thử tập trung vào yếu tố nào?

7 / 30

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

Tags: Bộ đề 4

Câu 7: Khi chương trình phát sinh lỗi `IndexError`, nguyên nhân phổ biến nhất là gì?

8 / 30

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

Tags: Bộ đề 4

Câu 8: Phương pháp 'điểm dừng' (breakpoint) trong IDE giúp ích gì trong quá trình gỡ lỗi?

9 / 30

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

Tags: Bộ đề 4

Câu 9: Xét đoạn mã Python: `int('abc')`. Lỗi ngoại lệ nào sẽ xảy ra khi thực thi?

10 / 30

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

Tags: Bộ đề 4

Câu 10: Khi thiết kế bộ kiểm thử, tiêu chí 'tính bao phủ' (coverage) đề cập đến điều gì?

11 / 30

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

Tags: Bộ đề 4

Câu 11: Lỗi logic trong chương trình là loại lỗi như thế nào?

12 / 30

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

Tags: Bộ đề 4

Câu 12: Để kiểm tra tính đúng đắn của hàm sắp xếp, bạn nên sử dụng bộ dữ liệu kiểm thử như thế nào?

13 / 30

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

Tags: Bộ đề 4

Câu 13: Trong ngôn ngữ lập trình, lỗi 'NameError' thường xảy ra khi nào?

14 / 30

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

Tags: Bộ đề 4

Câu 14: Kỹ thuật 'vết chương trình' (tracing) trong gỡ lỗi là gì?

15 / 30

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

Tags: Bộ đề 4

Câu 15: Cho đoạn mã Python: `numbers = [1, 2, 3]; print(numbers[3])`. Loại lỗi nào sẽ phát sinh?

16 / 30

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

Tags: Bộ đề 4

Câu 16: Phát biểu nào sau đây mô tả đúng nhất về quy trình kiểm thử phần mềm?

17 / 30

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

Tags: Bộ đề 4

Câu 17: Công cụ 'trình gỡ lỗi' (debugger) cung cấp chức năng nào quan trọng?

18 / 30

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

Tags: Bộ đề 4

Câu 18: Khi gặp lỗi 'TypeError', bạn nên kiểm tra điều gì đầu tiên?

19 / 30

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

Tags: Bộ đề 4

Câu 19: Mục đích của việc 'sinh dữ liệu kiểm thử ngẫu nhiên' là gì?

20 / 30

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

Tags: Bộ đề 4

Câu 20: Xét đoạn mã Python sau, giả sử người dùng nhập vào 'hello': `number = int(input('Nhập số: '))`. Điều gì sẽ xảy ra?

21 / 30

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

Tags: Bộ đề 4

Câu 21: Trong kiểm thử phần mềm, 'test case' là gì?

22 / 30

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

Tags: Bộ đề 4

Câu 22: Khi nào lỗi 'SyntaxError: invalid syntax' thường xảy ra trong Python?

23 / 30

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

Tags: Bộ đề 4

Câu 23: Điều gì KHÔNG phải là một bước trong quy trình gỡ lỗi hiệu quả?

24 / 30

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

Tags: Bộ đề 4

Câu 24: Tại sao cần kiểm thử chương trình với nhiều loại dữ liệu đầu vào khác nhau?

25 / 30

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

Tags: Bộ đề 4

Câu 25: Công cụ nào sau đây KHÔNG được sử dụng trực tiếp để gỡ lỗi chương trình?

26 / 30

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

Tags: Bộ đề 4

Câu 26: Trong kiểm thử, 'dữ liệu hợp lệ' và 'dữ liệu không hợp lệ' được sử dụng để làm gì?

27 / 30

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

Tags: Bộ đề 4

Câu 27: Khi chương trình chạy chậm hơn dự kiến, loại lỗi nào có thể là nguyên nhân?

28 / 30

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

Tags: Bộ đề 4

Câu 28: Điều gì quan trọng nhất khi viết thông báo lỗi (error message) trong chương trình?

29 / 30

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

Tags: Bộ đề 4

Câu 29: Phương pháp kiểm thử 'hộp trắng' (white-box testing) tập trung vào điều gì?

30 / 30

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

Tags: Bộ đề 4

Câu 30: Khi kiểm thử một hàm nhận đầu vào là số nguyên và trả về chuỗi, loại lỗi 'TypeError' có thể xảy ra khi nào?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 05 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

  • A. Để chứng minh rằng chương trình không có lỗi.
  • B. Để phát hiện và loại bỏ càng nhiều lỗi càng tốt trước khi chương trình được đưa vào sử dụng.
  • C. Để tăng tốc độ thực thi của chương trình.
  • D. Để làm cho mã nguồn chương trình trở nên dễ đọc hơn.

Câu 2: Trong quá trình kiểm thử chương trình, "dữ liệu kiểm thử" (test data) được sử dụng để làm gì?

  • A. Để biên dịch mã nguồn chương trình.
  • B. Để tối ưu hóa hiệu suất chương trình.
  • C. Để cung cấp đầu vào cho chương trình và kiểm tra xem chương trình có hoạt động đúng như mong đợi hay không.
  • D. Để tạo tài liệu hướng dẫn sử dụng chương trình.

Câu 3: Loại lỗi nào sau đây thường được phát hiện trong giai đoạn "kiểm thử hộp đen" (black-box testing)?

  • A. Lỗi liên quan đến yêu cầu chức năng (functional requirements) và giao diện người dùng.
  • B. Lỗi cú pháp trong mã nguồn.
  • C. Lỗi liên quan đến thuật toán và cấu trúc dữ liệu bên trong chương trình.
  • D. Lỗi do sử dụng bộ nhớ không hiệu quả.

Câu 4: Kỹ thuật "in vết" (tracing) trong gỡ lỗi chương trình thường được thực hiện bằng cách nào?

  • A. Sử dụng trình biên dịch để kiểm tra lỗi.
  • B. Sử dụng công cụ phân tích mã tĩnh.
  • C. Chạy chương trình trong môi trường ảo hóa.
  • D. Sử dụng các lệnh `print()` hoặc tương tự để hiển thị giá trị của biến và trạng thái chương trình tại các điểm khác nhau.

Câu 5: Khi chương trình báo lỗi "ZeroDivisionError" trong Python, điều này có nghĩa là gì?

  • A. Chương trình cố gắng truy cập một biến chưa được khai báo.
  • B. Chương trình thực hiện phép chia cho 0.
  • C. Chương trình sử dụng kiểu dữ liệu không phù hợp.
  • D. Chương trình có lỗi cú pháp.

Câu 6: Để kiểm tra một hàm tính tổng hai số nguyên, bộ dữ liệu kiểm thử nào sau đây là phù hợp nhất để phát hiện lỗi "tràn số" (overflow)?

  • A. Các cặp số dương nhỏ như (1, 2), (5, 10).
  • B. Các cặp số âm nhỏ như (-1, -3), (-7, -2).
  • C. Các cặp số lớn gần với giới hạn kiểu số nguyên như (2147483647, 1), (-2147483648, -1).
  • D. Các cặp số ngẫu nhiên trong khoảng từ -100 đến 100.

Câu 7: Trong quy trình gỡ lỗi, sau khi tái hiện được lỗi và xác định vị trí lỗi, bước tiếp theo quan trọng nhất là gì?

  • A. Báo cáo lỗi cho người quản lý dự án.
  • B. Phân tích nguyên nhân gây ra lỗi và tìm cách khắc phục.
  • C. Thử sửa lỗi một cách ngẫu nhiên cho đến khi chương trình chạy đúng.
  • D. Tạm thời bỏ qua lỗi và tiếp tục kiểm thử các chức năng khác.

Câu 8: Công cụ "debuger" trong môi trường phát triển tích hợp (IDE) giúp lập trình viên gỡ lỗi bằng cách nào?

  • A. Tự động sửa lỗi cú pháp trong mã nguồn.
  • B. Tối ưu hóa mã nguồn để tăng hiệu suất.
  • C. Cho phép chạy chương trình từng bước, theo dõi giá trị biến và trạng thái chương trình tại các điểm dừng (breakpoint).
  • D. Tạo báo cáo kiểm thử tự động.

Câu 9: Phát biểu nào sau đây mô tả đúng nhất về lỗi "logic" trong chương trình?

  • A. Lỗi do vi phạm quy tắc ngữ pháp của ngôn ngữ lập trình.
  • B. Lỗi xảy ra khi chương trình cố gắng thực hiện một thao tác không hợp lệ trong quá trình chạy, ví dụ như chia cho 0.
  • C. Lỗi do sử dụng sai tên biến hoặc hàm.
  • D. Lỗi trong thuật toán hoặc cách tiếp cận giải quyết vấn đề, dẫn đến chương trình chạy không như mong muốn mặc dù không có lỗi cú pháp hay lỗiruntime.

Câu 10: Khi kiểm thử một chương trình nhập dữ liệu từ người dùng, loại dữ liệu đầu vào nào sau đây cần được ưu tiên kiểm tra để đảm bảo tínhrobustness (tính mạnh mẽ, khả năng chịu lỗi) của chương trình?

  • A. Dữ liệu hợp lệ và phổ biến.
  • B. Dữ liệu có định dạng chuẩn.
  • C. Dữ liệu không hợp lệ, dữ liệu biên (boundary values), và dữ liệu ngoại lệ (ví dụ: nhập chữ vào trường số).
  • D. Dữ liệu có kích thước lớn.

Câu 11: Trong ngôn ngữ lập trình Python, lỗi "TypeError" thường xảy ra khi nào?

  • A. Thực hiện thao tác trên dữ liệu không đúng kiểu, ví dụ cộng một số với một chuỗi.
  • B. Cố gắng truy cập một phần tử của danh sách bằng chỉ số vượt quá giới hạn.
  • C. Sử dụng biến trước khi khai báo.
  • D. Viết sai cú pháp câu lệnh.

Câu 12: Để kiểm thử chức năng tìm kiếm trong một ứng dụng, bạn nên thiết kế bộ dữ liệu kiểm thử bao gồm những loại trường hợp nào?

  • A. Chỉ các trường hợp tìm kiếm thành công với dữ liệu hợp lệ.
  • B. Chỉ các trường hợp tìm kiếm không thành công với dữ liệu không hợp lệ.
  • C. Chỉ các trường hợp tìm kiếm với dữ liệu có kích thước lớn.
  • D. Các trường hợp tìm kiếm thành công, không thành công, tìm kiếm với dữ liệu biên, và tìm kiếm với các ký tự đặc biệt.

Câu 13: Phương pháp "kiểm thử hộp trắng" (white-box testing) tập trung vào khía cạnh nào của chương trình?

  • A. Chức năng và hành vi bên ngoài của chương trình.
  • B. Cấu trúc bên trong, luồng điều khiển và logic của mã nguồn.
  • C. Giao diện người dùng và trải nghiệm người dùng.
  • D. Hiệu suất và khả năng mở rộng của chương trình.

Câu 14: Khi gặp lỗi "NameError" trong Python, nguyên nhân có thể là gì?

  • A. Lỗi cú pháp trong câu lệnh.
  • B. Lỗi kiểu dữ liệu.
  • C. Sử dụng biến hoặc hàm chưa được định nghĩa hoặc chưa được nhập (import).
  • D. Lỗi do chia cho 0.

Câu 15: Trong quá trình kiểm thử, "độ bao phủ mã" (code coverage) là một chỉ số quan trọng, nó đo lường điều gì?

  • A. Phần trăm mã nguồn đã được thực thi bởi các bộ dữ liệu kiểm thử.
  • B. Số lượng lỗi đã được phát hiện trong quá trình kiểm thử.
  • C. Thời gian cần thiết để thực hiện kiểm thử.
  • D. Mức độ thân thiện của giao diện người dùng.

Câu 16: Giả sử bạn viết một chương trình tính giai thừa của một số nguyên dương. Test case nào sau đây là quan trọng nhất để kiểm tra "trường hợp cơ sở" (base case) trong thuật toán đệ quy?

  • A. Nhập một số nguyên dương lớn, ví dụ 10.
  • B. Nhập số 0 hoặc 1.
  • C. Nhập một số âm.
  • D. Nhập một số thập phân.

Câu 17: Khi chương trình chạy rất chậm hơn so với dự kiến, loại lỗi nào có khả năng cao nhất gây ra vấn đề này?

  • A. Lỗi cú pháp.
  • B. Lỗi kiểu dữ liệu.
  • C. Lỗi thuật toán hoặc hiệu suất kém của thuật toán.
  • D. Lỗi giao diện người dùng.

Câu 18: Trong kiểm thử phần mềm, việc "kiểm thử hồi quy" (regression testing) được thực hiện khi nào?

  • A. Trước khi viết mã nguồn chương trình.
  • B. Trong giai đoạn thiết kế chương trình.
  • C. Chỉ khi phát hiện ra lỗi nghiêm trọng.
  • D. Sau khi sửa lỗi hoặc thực hiện thay đổi mã nguồn để đảm bảo các thay đổi không gây ra lỗi mới hoặc làm hỏng các chức năng đã hoạt động tốt trước đó.

Câu 19: Để kiểm tra tính năng sắp xếp một danh sách số, bạn cần thiết kế test case nào để kiểm tra "trường hợp biên" (boundary case) liên quan đến danh sách?

  • A. Chỉ danh sách chứa các số dương ngẫu nhiên.
  • B. Chỉ danh sách chứa các số âm và số dương xen kẽ.
  • C. Danh sách rỗng, danh sách chứa một phần tử, danh sách đã được sắp xếp, và danh sách có các phần tử trùng lặp.
  • D. Danh sách có kích thước rất lớn.

Câu 20: Khi sử dụng "điểm dừng" (breakpoint) trong debugger, chương trình sẽ dừng thực thi ở đâu?

  • A. Tại dòng mã lệnh đã được đặt điểm dừng.
  • B. Ở cuối chương trình.
  • C. Khi gặp lỗi cú pháp.
  • D. Ngẫu nhiên tại một vị trí nào đó trong chương trình.

Câu 21: Lỗi "IndexError" trong Python thường xảy ra khi nào?

  • A. Thực hiện phép toán số học không hợp lệ.
  • B. Cố gắng truy cập một phần tử của danh sách (hoặc chuỗi, tuple) bằng chỉ số vượt quá giới hạn.
  • C. Sử dụng sai kiểu dữ liệu.
  • D. Lỗi cú pháp trong khai báo biến.

Câu 22: Để kiểm thử một chức năng yêu cầu người dùng nhập vào một số tuổi, test case nào sau đây kiểm tra "giá trị biên" (boundary value) hợp lệ?

  • A. Nhập số tuổi là 25.
  • B. Nhập số tuổi là 50.
  • C. Nhập số tuổi là 75.
  • D. Nhập số tuổi là 0 và 120 (giả sử giới hạn tuổi là 120).

Câu 23: Khi chương trình trả về kết quả không chính xác mặc dù không báo lỗi, đây thường là dấu hiệu của loại lỗi nào?

  • A. Lỗi cú pháp.
  • B. Lỗi logic.
  • C. Lỗi runtime (thời gian chạy).
  • D. Lỗi biên dịch.

Câu 24: Trong quá trình gỡ lỗi, việc "thu hẹp phạm vi tìm kiếm lỗi" (fault localization) có nghĩa là gì?

  • A. Viết lại toàn bộ chương trình.
  • B. Chạy lại chương trình với nhiều dữ liệu kiểm thử hơn.
  • C. Xác định chính xác dòng mã hoặc đoạn mã gây ra lỗi.
  • D. Bỏ qua lỗi và tiếp tục phát triển các phần khác của chương trình.

Câu 25: Công cụ nào sau đây KHÔNG phải là công cụ hỗ trợ kiểm thử và gỡ lỗi chương trình?

  • A. Trình soạn thảo văn bản thông thường (ví dụ: Notepad).
  • B. Debugger trong IDE (ví dụ: VS Code, PyCharm).
  • C. Công cụ kiểm thử đơn vị (unit testing framework).
  • D. Công cụ phân tích mã tĩnh.

Câu 26: Khi thiết kế test case cho một hàm tính căn bậc hai, bạn cần chú ý đặc biệt đến trường hợp nào để phát hiện lỗi?

  • A. Số dương lớn.
  • B. Số âm.
  • C. Số 0.
  • D. Số thập phân.

Câu 27: Mục đích của việc ghi nhật ký (logging) trong chương trình là gì trong quá trình kiểm thử và gỡ lỗi?

  • A. Tăng tốc độ thực thi của chương trình.
  • B. Giảm kích thước mã nguồn.
  • C. Tự động sửa lỗi chương trình.
  • D. Ghi lại thông tin về hoạt động của chương trình trong quá trình chạy, giúp theo dõi lỗi và phân tích hành vi chương trình.

Câu 28: Trong kiểm thử phần mềm, "test suite" là gì?

  • A. Một loại lỗi cụ thể trong chương trình.
  • B. Một công cụ để tự động sửa lỗi.
  • C. Một tập hợp các test case được nhóm lại để kiểm thử một chức năng hoặc một phần của chương trình.
  • D. Một báo cáo kết quả kiểm thử.

Câu 29: Phát biểu nào sau đây là SAI về kiểm thử và gỡ lỗi chương trình?

  • A. Kiểm thử là một phần quan trọng của quá trình phát triển phần mềm.
  • B. Kiểm thử có thể chứng minh rằng chương trình hoàn toàn không có lỗi.
  • C. Gỡ lỗi là quá trình tìm và sửa lỗi trong chương trình.
  • D. Các công cụ gỡ lỗi có thể giúp lập trình viên tiết kiệm thời gian và công sức.

Câu 30: Khi bạn thay đổi mã nguồn để sửa một lỗi, điều quan trọng cần làm sau đó là gì để đảm bảo chất lượng chương trình?

  • A. Chỉ cần chạy lại test case đã phát hiện lỗi ban đầu.
  • B. Gửi chương trình cho người dùng cuối để họ kiểm tra.
  • C. Xóa bỏ các comment trong mã nguồn để chương trình chạy nhanh hơn.
  • D. Thực hiện kiểm thử hồi quy để đảm bảo việc sửa lỗi không gây ra lỗi mới và chương trình vẫn hoạt động đúng trên các chức năng khác.

1 / 30

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

Tags: Bộ đề 5

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 5

Câu 2: Trong quá trình kiểm thử chương trình, 'dữ liệu kiểm thử' (test data) được sử dụng để làm gì?

3 / 30

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

Tags: Bộ đề 5

Câu 3: Loại lỗi nào sau đây thường được phát hiện trong giai đoạn 'kiểm thử hộp đen' (black-box testing)?

4 / 30

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

Tags: Bộ đề 5

Câu 4: Kỹ thuật 'in vết' (tracing) trong gỡ lỗi chương trình thường được thực hiện bằng cách nào?

5 / 30

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

Tags: Bộ đề 5

Câu 5: Khi chương trình báo lỗi 'ZeroDivisionError' trong Python, điều này có nghĩa là gì?

6 / 30

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

Tags: Bộ đề 5

Câu 6: Để kiểm tra một hàm tính tổng hai số nguyên, bộ dữ liệu kiểm thử nào sau đây là phù hợp nhất để phát hiện lỗi 'tràn số' (overflow)?

7 / 30

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

Tags: Bộ đề 5

Câu 7: Trong quy trình gỡ lỗi, sau khi tái hiện được lỗi và xác định vị trí lỗi, bước tiếp theo quan trọng nhất là gì?

8 / 30

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

Tags: Bộ đề 5

Câu 8: Công cụ 'debuger' trong môi trường phát triển tích hợp (IDE) giúp lập trình viên gỡ lỗi bằng cách nào?

9 / 30

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

Tags: Bộ đề 5

Câu 9: Phát biểu nào sau đây mô tả đúng nhất về lỗi 'logic' trong chương trình?

10 / 30

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

Tags: Bộ đề 5

Câu 10: Khi kiểm thử một chương trình nhập dữ liệu từ người dùng, loại dữ liệu đầu vào nào sau đây cần được ưu tiên kiểm tra để đảm bảo tínhrobustness (tính mạnh mẽ, khả năng chịu lỗi) của chương trình?

11 / 30

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

Tags: Bộ đề 5

Câu 11: Trong ngôn ngữ lập trình Python, lỗi 'TypeError' thường xảy ra khi nào?

12 / 30

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

Tags: Bộ đề 5

Câu 12: Để kiểm thử chức năng tìm kiếm trong một ứng dụng, bạn nên thiết kế bộ dữ liệu kiểm thử bao gồm những loại trường hợp nào?

13 / 30

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

Tags: Bộ đề 5

Câu 13: Phương pháp 'kiểm thử hộp trắng' (white-box testing) tập trung vào khía cạnh nào của chương trình?

14 / 30

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

Tags: Bộ đề 5

Câu 14: Khi gặp lỗi 'NameError' trong Python, nguyên nhân có thể là gì?

15 / 30

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

Tags: Bộ đề 5

Câu 15: Trong quá trình kiểm thử, 'độ bao phủ mã' (code coverage) là một chỉ số quan trọng, nó đo lường điều gì?

16 / 30

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

Tags: Bộ đề 5

Câu 16: Giả sử bạn viết một chương trình tính giai thừa của một số nguyên dương. Test case nào sau đây là quan trọng nhất để kiểm tra 'trường hợp cơ sở' (base case) trong thuật toán đệ quy?

17 / 30

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

Tags: Bộ đề 5

Câu 17: Khi chương trình chạy rất chậm hơn so với dự kiến, loại lỗi nào có khả năng cao nhất gây ra vấn đề này?

18 / 30

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

Tags: Bộ đề 5

Câu 18: Trong kiểm thử phần mềm, việc 'kiểm thử hồi quy' (regression testing) được thực hiện khi nào?

19 / 30

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

Tags: Bộ đề 5

Câu 19: Để kiểm tra tính năng sắp xếp một danh sách số, bạn cần thiết kế test case nào để kiểm tra 'trường hợp biên' (boundary case) liên quan đến danh sách?

20 / 30

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

Tags: Bộ đề 5

Câu 20: Khi sử dụng 'điểm dừng' (breakpoint) trong debugger, chương trình sẽ dừng thực thi ở đâu?

21 / 30

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

Tags: Bộ đề 5

Câu 21: Lỗi 'IndexError' trong Python thường xảy ra khi nào?

22 / 30

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

Tags: Bộ đề 5

Câu 22: Để kiểm thử một chức năng yêu cầu người dùng nhập vào một số tuổi, test case nào sau đây kiểm tra 'giá trị biên' (boundary value) hợp lệ?

23 / 30

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

Tags: Bộ đề 5

Câu 23: Khi chương trình trả về kết quả không chính xác mặc dù không báo lỗi, đây thường là dấu hiệu của loại lỗi nào?

24 / 30

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

Tags: Bộ đề 5

Câu 24: Trong quá trình gỡ lỗi, việc 'thu hẹp phạm vi tìm kiếm lỗi' (fault localization) có nghĩa là gì?

25 / 30

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

Tags: Bộ đề 5

Câu 25: Công cụ nào sau đây KHÔNG phải là công cụ hỗ trợ kiểm thử và gỡ lỗi chương trình?

26 / 30

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

Tags: Bộ đề 5

Câu 26: Khi thiết kế test case cho một hàm tính căn bậc hai, bạn cần chú ý đặc biệt đến trường hợp nào để phát hiện lỗi?

27 / 30

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

Tags: Bộ đề 5

Câu 27: Mục đích của việc ghi nhật ký (logging) trong chương trình là gì trong quá trình kiểm thử và gỡ lỗi?

28 / 30

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

Tags: Bộ đề 5

Câu 28: Trong kiểm thử phần mềm, 'test suite' là gì?

29 / 30

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

Tags: Bộ đề 5

Câu 29: Phát biểu nào sau đây là SAI về kiểm thử và gỡ lỗi chương trình?

30 / 30

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

Tags: Bộ đề 5

Câu 30: Khi bạn thay đổi mã nguồn để sửa một lỗi, điều quan trọng cần làm sau đó là gì để đảm bảo chất lượng chương trình?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 06 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

  • A. Phát hiện và loại bỏ lỗi trong chương trình.
  • B. Chứng minh rằng chương trình không có lỗi.
  • C. Tăng tốc độ thực thi của chương trình.
  • D. Cải thiện giao diện người dùng của chương trình.

Câu 2: Loại lỗi nào xảy ra khi bạn cố gắng truy cập một phần tử của danh sách bằng chỉ số vượt quá kích thước của danh sách?

  • A. TypeError
  • B. IndexError
  • C. ValueError
  • D. SyntaxError

Câu 3: Công cụ "in biến trung gian" (print debugging) được sử dụng để làm gì trong quá trình gỡ lỗi?

  • A. Tự động sửa lỗi chương trình.
  • B. Đo hiệu suất của chương trình.
  • C. Hiển thị giá trị của biến tại các điểm khác nhau trong chương trình để theo dõi luồng thực thi.
  • D. Biên dịch chương trình thành mã máy.

Câu 4: Phát biểu nào sau đây mô tả đúng nhất về "bộ dữ liệu kiểm thử" (test data set)?

  • A. Dữ liệu đầu vào ngẫu nhiên được tạo ra tự động.
  • B. Dữ liệu đầu vào chỉ bao gồm các trường hợp hợp lệ.
  • C. Dữ liệu đầu ra mong đợi của chương trình.
  • D. Tập hợp các dữ liệu đầu vào được thiết kế để kiểm tra các chức năng và tình huống khác nhau của chương trình.

Câu 5: Khi chương trình báo lỗi "TypeError", nguyên nhân có khả năng nhất là gì?

  • A. Thực hiện một phép toán hoặc hàm không phù hợp với kiểu dữ liệu của biến.
  • B. Cố gắng chia một số cho 0.
  • C. Sử dụng biến trước khi được khai báo.
  • D. Sai cú pháp trong câu lệnh.

Câu 6: Trong quá trình kiểm thử, bạn nên ưu tiên kiểm tra những loại dữ liệu đầu vào nào để phát hiện lỗi vùng biên?

  • A. Dữ liệu đầu vào ngẫu nhiên trong phạm vi hợp lệ.
  • B. Dữ liệu đầu vào tại và gần các giá trị biên của miền dữ liệu.
  • C. Dữ liệu đầu vào là các giá trị trung bình của miền dữ liệu.
  • D. Dữ liệu đầu vào có định dạng phức tạp.

Câu 7: Lỗi "SyntaxError" thường xảy ra khi nào?

  • A. Chương trình cố gắng truy cập bộ nhớ không hợp lệ.
  • B. Có lỗi logic trong thuật toán của chương trình.
  • C. Viết câu lệnh không tuân theo quy tắc ngữ pháp của ngôn ngữ lập trình.
  • D. Thiếu tài nguyên hệ thống như bộ nhớ hoặc ổ cứng.

Câu 8: Để gỡ lỗi chương trình một cách hiệu quả, bạn nên thực hiện theo quy trình nào sau đây?

  • A. Chạy chương trình, sửa lỗi ngẫu nhiên, kiểm tra lại.
  • B. Đọc toàn bộ mã nguồn, đoán lỗi, sửa lỗi.
  • C. Chỉ tập trung vào thông báo lỗi và sửa dòng lệnh đó.
  • D. Xác định lỗi -> Khoanh vùng vị trí lỗi -> Phân tích nguyên nhân -> Sửa lỗi -> Kiểm tra lại.

Câu 9: Trong ngôn ngữ lập trình Python, lỗi "ZeroDivisionError" xảy ra khi nào?

  • A. Thực hiện phép chia cho số 0.
  • B. Sử dụng biến chưa được gán giá trị.
  • C. Nhập dữ liệu không đúng định dạng.
  • D. Gọi một hàm không tồn tại.

Câu 10: Giả sử bạn viết một chương trình tính tổng các số trong danh sách. Bạn nên thiết kế bộ dữ liệu kiểm thử như thế nào để đảm bảo chương trình hoạt động đúng trong nhiều trường hợp?

  • A. Chỉ cần kiểm thử với một danh sách chứa các số dương.
  • B. Kiểm thử với danh sách rỗng, danh sách chứa số dương, số âm, và danh sách hỗn hợp.
  • C. Kiểm thử với danh sách có số lượng phần tử lớn.
  • D. Kiểm thử với danh sách đã được sắp xếp.

Câu 11: Lỗi "NameError" thường xuất hiện khi nào trong chương trình?

  • A. Có sự không tương thích về kiểu dữ liệu giữa các biến.
  • B. Vượt quá bộ nhớ cho phép.
  • C. Sử dụng một tên biến hoặc hàm chưa được khai báo hoặc định nghĩa trước đó.
  • D. Thực hiện phép toán số học gây ra tràn số.

Câu 12: Đoạn mã Python sau có lỗi không? Nếu có, đó là loại lỗi gì?
```python
for i in range(5):
print(j)
```

  • A. Không có lỗi.
  • B. Có lỗi "NameError" do biến "j" chưa được định nghĩa.
  • C. Có lỗi "IndentationError" do thụt lề sai.
  • D. Có lỗi "TypeError" do kiểu dữ liệu không phù hợp.

Câu 13: Sử dụng công cụ "điểm dừng" (breakpoint) trong IDE giúp ích gì cho quá trình gỡ lỗi?

  • A. Tự động sửa lỗi chương trình khi chạy.
  • B. Tối ưu hóa hiệu suất chương trình.
  • C. Biên dịch mã nguồn nhanh hơn.
  • D. Tạm dừng chương trình tại một dòng lệnh cụ thể để kiểm tra giá trị biến và trạng thái chương trình.

Câu 14: Trong tình huống nào thì việc kiểm thử hộp đen (black-box testing) là phù hợp nhất?

  • A. Khi cần kiểm tra chức năng của chương trình từ góc độ người dùng mà không cần xem xét mã nguồn bên trong.
  • B. Khi cần kiểm tra tất cả các đường dẫn thực thi trong mã nguồn.
  • C. Khi cần tối ưu hóa mã nguồn.
  • D. Khi cần kiểm tra hiệu suất sử dụng bộ nhớ của chương trình.

Câu 15: Điều gì KHÔNG phải là một lợi ích của việc kiểm thử chương trình?

  • A. Nâng cao chất lượng phần mềm.
  • B. Giảm thiểu rủi ro khi sử dụng phần mềm.
  • C. Đảm bảo chương trình hoàn toàn không có lỗi.
  • D. Tiết kiệm chi phí sửa lỗi ở giai đoạn sau của phát triển phần mềm.

Câu 16: Cho đoạn mã Python sau:
```python
def chia(a, b):
return a / b

ket_qua = chia(10, 0)
print(ket_qua)
```
Đoạn mã này sẽ phát sinh lỗi gì khi chạy?

  • A. NameError
  • B. ZeroDivisionError
  • C. TypeError
  • D. SyntaxError

Câu 17: Để kiểm tra tính đúng đắn của một hàm tính giai thừa, bạn nên thiết kế các trường hợp kiểm thử nào?

  • A. Chỉ kiểm tra với các số nguyên dương lớn.
  • B. Chỉ kiểm tra với các số nguyên dương nhỏ.
  • C. Kiểm tra với số 0, số 1, số nguyên dương nhỏ, số nguyên dương lớn và số âm.
  • D. Kiểm tra với số thực và số nguyên.

Câu 18: Trong quá trình gỡ lỗi, khi bạn nghi ngờ lỗi nằm trong một hàm cụ thể, bạn có thể sử dụng kỹ thuật nào để kiểm tra hàm đó một cách riêng biệt?

  • A. Kiểm thử tích hợp (Integration testing)
  • B. Kiểm thử hệ thống (System testing)
  • C. Kiểm thử chấp nhận (Acceptance testing)
  • D. Kiểm thử đơn vị (Unit testing)

Câu 19: Cho đoạn mã Python sau:
```python
mang = [1, 2, 3]
print(mang[3])
```
Lỗi nào sẽ xảy ra và tại sao?

  • A. Lỗi "IndexError", vì chỉ số 3 vượt quá kích thước của danh sách (chỉ số hợp lệ là 0, 1, 2).
  • B. Lỗi "TypeError", vì danh sách chỉ chứa số nguyên.
  • C. Lỗi "ValueError", vì giá trị 3 không có trong danh sách.
  • D. Không có lỗi, chương trình sẽ chạy bình thường.

Câu 20: Phát biểu nào sau đây về "lỗi logic" trong chương trình là đúng?

  • A. Lỗi logic là lỗi do sai cú pháp ngôn ngữ lập trình.
  • B. Lỗi logic là lỗi trong thuật toán hoặc cách tiếp cận giải quyết vấn đề, khiến chương trình chạy sai kết quả mong đợi.
  • C. Lỗi logic luôn được trình biên dịch phát hiện.
  • D. Lỗi logic chỉ xảy ra khi chương trình chạy trên dữ liệu lớn.

Câu 21: Trong quá trình kiểm thử, nếu bạn phát hiện chương trình chạy chậm hơn dự kiến, loại kiểm thử nào có thể giúp bạn xác định nguyên nhân?

  • A. Kiểm thử chức năng (Functional testing)
  • B. Kiểm thử hộp đen (Black-box testing)
  • C. Kiểm thử hiệu suất (Performance testing)
  • D. Kiểm thử chấp nhận (Acceptance testing)

Câu 22: Cho đoạn mã Python:
```python
def tinh_tong(a, b):
return a + "b"

print(tinh_tong(5, 3))
```
Chương trình này có lỗi không? Nếu có, đó là lỗi gì?

  • A. Không có lỗi.
  • B. Lỗi SyntaxError.
  • C. Lỗi NameError.
  • D. Lỗi TypeError do không thể cộng số nguyên với chuỗi.

Câu 23: Khi nhận được thông báo lỗi từ trình biên dịch hoặc trình thông dịch, bước đầu tiên bạn nên làm gì để gỡ lỗi?

  • A. Đọc kỹ thông báo lỗi để hiểu loại lỗi và vị trí lỗi.
  • B. Sửa đổi mã nguồn một cách ngẫu nhiên cho đến khi hết lỗi.
  • C. Khởi động lại máy tính.
  • D. Yêu cầu người khác sửa lỗi giúp.

Câu 24: Kiểm thử hồi quy (regression testing) được thực hiện khi nào?

  • A. Chỉ thực hiện một lần duy nhất sau khi hoàn thành chương trình.
  • B. Sau khi sửa lỗi hoặc thêm tính năng mới vào chương trình để đảm bảo các thay đổi không gây ra lỗi mới hoặc làm phát sinh lại lỗi cũ.
  • C. Trước khi viết mã chương trình.
  • D. Chỉ thực hiện khi chương trình chạy chậm.

Câu 25: Trong quy trình phát triển phần mềm, giai đoạn nào thường phát sinh nhiều lỗi nhất?

  • A. Giai đoạn phân tích yêu cầu.
  • B. Giai đoạn thiết kế.
  • C. Giai đoạn lập trình (coding).
  • D. Giai đoạn kiểm thử.

Câu 26: Để giảm thiểu lỗi trong quá trình lập trình, biện pháp nào sau đây là hiệu quả nhất?

  • A. Viết mã nhanh nhất có thể.
  • B. Chỉ kiểm thử sau khi viết xong toàn bộ chương trình.
  • C. Không cần bình luận mã nguồn.
  • D. Lập kế hoạch và thiết kế chương trình cẩn thận trước khi bắt đầu viết mã.

Câu 27: Cho đoạn mã Python:
```python
import math

def tinh_can_bac_hai(x):
return math.sqrt(x)

print(tinh_can_bac_hai(-1))
```
Đoạn mã này sẽ gây ra lỗi gì?

  • A. TypeError
  • B. ValueError
  • C. NameError
  • D. ZeroDivisionError

Câu 28: Phương pháp kiểm thử "hộp trắng" (white-box testing) tập trung vào yếu tố nào?

  • A. Chức năng bên ngoài của chương trình.
  • B. Giao diện người dùng.
  • C. Cấu trúc bên trong và logic của mã nguồn.
  • D. Hiệu suất của chương trình khi tải nặng.

Câu 29: Tại sao việc ghi nhật ký (logging) lỗi và thông tin chương trình lại quan trọng trong quá trình phát triển phần mềm?

  • A. Để tăng tốc độ chạy chương trình.
  • B. Để làm cho mã nguồn dễ đọc hơn.
  • C. Để tự động sửa lỗi chương trình.
  • D. Để theo dõi lỗi, phân tích hành vi chương trình và hỗ trợ gỡ lỗi sau này.

Câu 30: Bạn nhận được yêu cầu kiểm thử một chức năng mới của phần mềm. Theo bạn, bước đầu tiên cần thực hiện là gì?

  • A. Viết mã kiểm thử tự động ngay lập tức.
  • B. Tìm hiểu rõ yêu cầu và đặc tả của chức năng cần kiểm thử.
  • C. Chạy thử chức năng với dữ liệu ngẫu nhiên.
  • D. Báo cáo cho quản lý về tiến độ kiểm thử.

1 / 30

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

Tags: Bộ đề 6

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 6

Câu 2: Loại lỗi nào xảy ra khi bạn cố gắng truy cập một phần tử của danh sách bằng chỉ số vượt quá kích thước của danh sách?

3 / 30

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

Tags: Bộ đề 6

Câu 3: Công cụ 'in biến trung gian' (print debugging) được sử dụng để làm gì trong quá trình gỡ lỗi?

4 / 30

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

Tags: Bộ đề 6

Câu 4: Phát biểu nào sau đây mô tả đúng nhất về 'bộ dữ liệu kiểm thử' (test data set)?

5 / 30

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

Tags: Bộ đề 6

Câu 5: Khi chương trình báo lỗi 'TypeError', nguyên nhân có khả năng nhất là gì?

6 / 30

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

Tags: Bộ đề 6

Câu 6: Trong quá trình kiểm thử, bạn nên ưu tiên kiểm tra những loại dữ liệu đầu vào nào để phát hiện lỗi vùng biên?

7 / 30

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

Tags: Bộ đề 6

Câu 7: Lỗi 'SyntaxError' thường xảy ra khi nào?

8 / 30

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

Tags: Bộ đề 6

Câu 8: Để gỡ lỗi chương trình một cách hiệu quả, bạn nên thực hiện theo quy trình nào sau đây?

9 / 30

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

Tags: Bộ đề 6

Câu 9: Trong ngôn ngữ lập trình Python, lỗi 'ZeroDivisionError' xảy ra khi nào?

10 / 30

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

Tags: Bộ đề 6

Câu 10: Giả sử bạn viết một chương trình tính tổng các số trong danh sách. Bạn nên thiết kế bộ dữ liệu kiểm thử như thế nào để đảm bảo chương trình hoạt động đúng trong nhiều trường hợp?

11 / 30

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

Tags: Bộ đề 6

Câu 11: Lỗi 'NameError' thường xuất hiện khi nào trong chương trình?

12 / 30

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

Tags: Bộ đề 6

Câu 12: Đoạn mã Python sau có lỗi không? Nếu có, đó là loại lỗi gì?
```python
for i in range(5):
print(j)
```

13 / 30

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

Tags: Bộ đề 6

Câu 13: Sử dụng công cụ 'điểm dừng' (breakpoint) trong IDE giúp ích gì cho quá trình gỡ lỗi?

14 / 30

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

Tags: Bộ đề 6

Câu 14: Trong tình huống nào thì việc kiểm thử hộp đen (black-box testing) là phù hợp nhất?

15 / 30

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

Tags: Bộ đề 6

Câu 15: Điều gì KHÔNG phải là một lợi ích của việc kiểm thử chương trình?

16 / 30

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

Tags: Bộ đề 6

Câu 16: Cho đoạn mã Python sau:
```python
def chia(a, b):
return a / b

ket_qua = chia(10, 0)
print(ket_qua)
```
Đoạn mã này sẽ phát sinh lỗi gì khi chạy?

17 / 30

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

Tags: Bộ đề 6

Câu 17: Để kiểm tra tính đúng đắn của một hàm tính giai thừa, bạn nên thiết kế các trường hợp kiểm thử nào?

18 / 30

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

Tags: Bộ đề 6

Câu 18: Trong quá trình gỡ lỗi, khi bạn nghi ngờ lỗi nằm trong một hàm cụ thể, bạn có thể sử dụng kỹ thuật nào để kiểm tra hàm đó một cách riêng biệt?

19 / 30

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

Tags: Bộ đề 6

Câu 19: Cho đoạn mã Python sau:
```python
mang = [1, 2, 3]
print(mang[3])
```
Lỗi nào sẽ xảy ra và tại sao?

20 / 30

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

Tags: Bộ đề 6

Câu 20: Phát biểu nào sau đây về 'lỗi logic' trong chương trình là đúng?

21 / 30

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

Tags: Bộ đề 6

Câu 21: Trong quá trình kiểm thử, nếu bạn phát hiện chương trình chạy chậm hơn dự kiến, loại kiểm thử nào có thể giúp bạn xác định nguyên nhân?

22 / 30

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

Tags: Bộ đề 6

Câu 22: Cho đoạn mã Python:
```python
def tinh_tong(a, b):
return a + 'b'

print(tinh_tong(5, 3))
```
Chương trình này có lỗi không? Nếu có, đó là lỗi gì?

23 / 30

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

Tags: Bộ đề 6

Câu 23: Khi nhận được thông báo lỗi từ trình biên dịch hoặc trình thông dịch, bước đầu tiên bạn nên làm gì để gỡ lỗi?

24 / 30

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

Tags: Bộ đề 6

Câu 24: Kiểm thử hồi quy (regression testing) được thực hiện khi nào?

25 / 30

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

Tags: Bộ đề 6

Câu 25: Trong quy trình phát triển phần mềm, giai đoạn nào thường phát sinh nhiều lỗi nhất?

26 / 30

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

Tags: Bộ đề 6

Câu 26: Để giảm thiểu lỗi trong quá trình lập trình, biện pháp nào sau đây là hiệu quả nhất?

27 / 30

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

Tags: Bộ đề 6

Câu 27: Cho đoạn mã Python:
```python
import math

def tinh_can_bac_hai(x):
return math.sqrt(x)

print(tinh_can_bac_hai(-1))
```
Đoạn mã này sẽ gây ra lỗi gì?

28 / 30

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

Tags: Bộ đề 6

Câu 28: Phương pháp kiểm thử 'hộp trắng' (white-box testing) tập trung vào yếu tố nào?

29 / 30

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

Tags: Bộ đề 6

Câu 29: Tại sao việc ghi nhật ký (logging) lỗi và thông tin chương trình lại quan trọng trong quá trình phát triển phần mềm?

30 / 30

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

Tags: Bộ đề 6

Câu 30: Bạn nhận được yêu cầu kiểm thử một chức năng mới của phần mềm. Theo bạn, bước đầu tiên cần thực hiện là gì?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 07 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục tiêu chính của kiểm thử phần mềm là gì?

  • A. Chứng minh rằng chương trình hoạt động đúng trong mọi trường hợp.
  • B. Phát hiện lỗi trong chương trình để có thể sửa chữa chúng.
  • C. Tăng tốc độ thực thi của chương trình.
  • D. Làm cho giao diện người dùng của chương trình đẹp mắt hơn.

Câu 2: Loại lỗi nào sau đây thường được phát hiện bởi trình biên dịch (compiler) trước khi chương trình được thực thi?

  • A. Lỗi cú pháp (Syntax errors)
  • B. Lỗi logic (Logical errors)
  • C. Lỗi thời gian chạy (Runtime errors)
  • D. Lỗi giao diện người dùng (User interface errors)

Câu 3: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi nào đã xảy ra?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logical error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi biên dịch (Compilation error)

Câu 4: Trong quá trình gỡ lỗi, sử dụng lệnh `print()` để hiển thị giá trị biến tại một điểm cụ thể trong chương trình thuộc về phương pháp gỡ lỗi nào?

  • A. Sử dụng trình gỡ lỗi (Debugger)
  • B. In biến trung gian (Print debugging)
  • C. Kiểm thử hộp đen (Black-box testing)
  • D. Kiểm thử hộp trắng (White-box testing)

Câu 5: Phát biểu nào sau đây mô tả đúng nhất về "điểm dừng" (breakpoint) trong trình gỡ lỗi?

  • A. Một lỗi cú pháp được trình biên dịch phát hiện.
  • B. Một thông báo lỗi hiển thị khi chương trình gặp sự cố.
  • C. Một vị trí trong mã chương trình mà tại đó chương trình sẽ tạm dừng thực thi khi chạy ở chế độ gỡ lỗi.
  • D. Một công cụ để tự động sửa lỗi chương trình.

Câu 6: Xét đoạn mã Python sau: `numbers = [1, 2, 3]; print(numbers[3])`. Đoạn mã này sẽ gây ra loại lỗi nào?

  • A. TypeError
  • B. ValueError
  • C. NameError
  • D. IndexError

Câu 7: Để kiểm thử một hàm tính tổng hai số, bộ dữ liệu kiểm thử nào sau đây là phù hợp nhất để kiểm tra "giá trị biên"?

  • A. Chỉ các số dương lớn.
  • B. Số âm, số 0 và số dương.
  • C. Chỉ các số nguyên.
  • D. Các số ngẫu nhiên trong khoảng từ 1 đến 100.

Câu 8: Trong quy trình kiểm thử, "Test case" (ca kiểm thử) là gì?

  • A. Một tập hợp các đầu vào, điều kiện thực hiện và kết quả mong đợi để kiểm tra một chức năng cụ thể.
  • B. Một báo cáo lỗi được tạo ra khi kiểm thử thất bại.
  • C. Một công cụ phần mềm để tự động hóa quá trình kiểm thử.
  • D. Một giai đoạn trong quy trình phát triển phần mềm sau khi viết mã.

Câu 9: Khi bạn gặp lỗi "NameError" trong Python, nguyên nhân có khả năng nhất là gì?

  • A. Sai kiểu dữ liệu.
  • B. Lỗi cú pháp trong câu lệnh.
  • C. Chia cho số 0.
  • D. Sử dụng một biến hoặc hàm chưa được khai báo.

Câu 10: Cho đoạn mã Python: `x = "5" + 3`. Đoạn mã này sẽ phát sinh lỗi gì?

  • A. TypeError
  • B. ValueError
  • C. SyntaxError
  • D. NameError

Câu 11: Kỹ thuật kiểm thử "hộp đen" (black-box testing) tập trung vào khía cạnh nào của phần mềm?

  • A. Cấu trúc mã nguồn bên trong.
  • B. Thuật toán và logic của chương trình.
  • C. Chức năng và hành vi bên ngoài của phần mềm.
  • D. Hiệu suất và tốc độ thực thi.

Câu 12: Trong quá trình kiểm thử, nếu kết quả thực tế khác với kết quả mong đợi, điều này cho thấy điều gì?

  • A. Chương trình hoạt động đúng như mong đợi.
  • B. Có thể có lỗi trong chương trình.
  • C. Bộ dữ liệu kiểm thử không phù hợp.
  • D. Kết quả mong đợi cần được điều chỉnh.

Câu 13: Phương pháp kiểm thử nào yêu cầu người kiểm thử phải có kiến thức về cấu trúc mã nguồn và thuật toán của chương trình?

  • A. Kiểm thử hộp đen (Black-box testing)
  • B. Kiểm thử chấp nhận (Acceptance testing)
  • C. Kiểm thử tích hợp (Integration testing)
  • D. Kiểm thử hộp trắng (White-box testing)

Câu 14: Để kiểm tra tính đúng đắn của chương trình, bạn nên thiết kế bộ dữ liệu kiểm thử như thế nào?

  • A. Chỉ tập trung vào dữ liệu hợp lệ.
  • B. Chỉ sử dụng dữ liệu ngẫu nhiên.
  • C. Đa dạng, bao gồm dữ liệu hợp lệ, không hợp lệ, giá trị biên và dữ liệu ngẫu nhiên.
  • D. Chỉ sử dụng dữ liệu mà bạn nghĩ là chương trình sẽ xử lý đúng.

Câu 15: Trong ngôn ngữ lập trình Python, lỗi "SyntaxError: invalid syntax" thường chỉ ra điều gì?

  • A. Lỗi liên quan đến kiểu dữ liệu.
  • B. Lỗi cú pháp, vi phạm quy tắc ngôn ngữ.
  • C. Lỗi do biến chưa được khai báo.
  • D. Lỗi trong quá trình tính toán số học.

Câu 16: Khi chương trình chạy chậm hơn dự kiến, loại lỗi nào có thể xảy ra (ngoài lỗi logic)?

  • A. Lỗi cú pháp.
  • B. Lỗi thời gian chạy.
  • C. Lỗi biên dịch.
  • D. Lỗi hiệu suất (Performance error).

Câu 17: Công cụ "trình gỡ lỗi" (debugger) giúp lập trình viên làm gì hiệu quả nhất?

  • A. Theo dõi và kiểm tra trạng thái chương trình từng bước một để tìm lỗi.
  • B. Tự động sửa lỗi trong chương trình.
  • C. Tăng tốc độ thực thi chương trình.
  • D. Viết mã chương trình nhanh hơn.

Câu 18: Trong kiểm thử phần mềm, thuật ngữ "độ bao phủ mã" (code coverage) đề cập đến điều gì?

  • A. Số lượng lỗi được phát hiện trong quá trình kiểm thử.
  • B. Phần trăm mã nguồn đã được thực thi bởi các ca kiểm thử.
  • C. Thời gian cần thiết để hoàn thành kiểm thử.
  • D. Số lượng ca kiểm thử đã được thiết kế.

Câu 19: Cho đoạn mã Python: `def calculate_average(numbers): return sum(numbers) / len(numbers)`. Điều gì xảy ra nếu `numbers` là một danh sách rỗng?

  • A. Hàm trả về 0.
  • B. Hàm trả về `None`.
  • C. Phát sinh lỗi ZeroDivisionError.
  • D. Hàm trả về giá trị trung bình của danh sách trước đó.

Câu 20: Để tránh lỗi "ZeroDivisionError" trong hàm ở Câu 19, bạn nên làm gì?

  • A. Luôn đảm bảo danh sách `numbers` không bao giờ rỗng.
  • B. Kiểm tra xem danh sách `numbers` có rỗng trước khi thực hiện phép chia.
  • C. Sử dụng một giá trị mặc định thay vì chia.
  • D. Bắt lỗi ZeroDivisionError và xử lý nó.

Câu 21: Loại lỗi nào thường khó phát hiện nhất trong quá trình kiểm thử?

  • A. Lỗi cú pháp.
  • B. Lỗi thời gian chạy.
  • C. Lỗi logic.
  • D. Lỗi giao diện người dùng.

Câu 22: Trong giai đoạn phát triển phần mềm, kiểm thử nên được thực hiện vào thời điểm nào?

  • A. Chỉ sau khi chương trình đã được viết xong hoàn toàn.
  • B. Chỉ trước khi bàn giao sản phẩm cho người dùng.
  • C. Chỉ khi có yêu cầu thay đổi chương trình.
  • D. Liên tục trong suốt quá trình phát triển phần mềm.

Câu 23: Điều gì KHÔNG phải là mục tiêu của việc gỡ lỗi chương trình?

  • A. Xác định vị trí của lỗi.
  • B. Hiểu nguyên nhân gây ra lỗi.
  • C. Tối ưu hóa hiệu suất chương trình.
  • D. Sửa chữa lỗi và đảm bảo chương trình hoạt động đúng.

Câu 24: Khi nhận được thông báo lỗi "TypeError: can only concatenate str (not

  • A. Các phép toán trên chuỗi và số có đúng kiểu dữ liệu không.
  • B. Chỉ số truy cập mảng có vượt quá giới hạn không.
  • C. Biến có được khai báo trước khi sử dụng không.
  • D. Phép chia có thể gây ra chia cho 0 không.

Câu 25: Để kiểm thử chức năng đăng nhập của một hệ thống, ca kiểm thử nào sau đây là quan trọng nhất?

  • A. Chỉ kiểm thử đăng nhập thành công với tài khoản hợp lệ.
  • B. Kiểm thử cả đăng nhập thành công với tài khoản hợp lệ và đăng nhập thất bại với tài khoản không hợp lệ.
  • C. Kiểm thử đăng nhập với số lượng lớn tài khoản đồng thời.
  • D. Kiểm thử giao diện người dùng của trang đăng nhập.

Câu 26: Phương pháp gỡ lỗi "vết" (tracing) chương trình là gì?

  • A. Sử dụng trình gỡ lỗi để đặt điểm dừng.
  • B. Đọc mã nguồn để tìm lỗi.
  • C. Viết thêm mã để tự động sửa lỗi.
  • D. Theo dõi luồng thực thi và giá trị biến của chương trình trong quá trình chạy.

Câu 27: Khi kiểm thử một hàm nhận đầu vào là số nguyên dương, bạn nên kiểm tra trường hợp nào đặc biệt liên quan đến "giá trị biên"?

  • A. Chỉ các số nguyên dương lớn.
  • B. Chỉ các số lẻ và số chẵn.
  • C. Số 0, số 1 và một số nguyên dương lớn.
  • D. Các số thập phân dương.

Câu 28: Điều gì KHÔNG phải là một công cụ hỗ trợ kiểm thử chương trình?

  • A. Trình gỡ lỗi (Debugger).
  • B. Phần mềm soạn thảo văn bản (Text editor).
  • C. Công cụ sinh dữ liệu kiểm thử (Test data generator).
  • D. Công cụ kiểm thử tự động (Automated testing tool).

Câu 29: Mục đích của việc "kiểm thử hồi quy" (regression testing) là gì?

  • A. Đảm bảo rằng các thay đổi mới không gây ra lỗi ở những phần đã hoạt động tốt trước đó.
  • B. Kiểm tra hiệu suất của chương trình.
  • C. Kiểm tra giao diện người dùng của chương trình.
  • D. Kiểm tra tính bảo mật của chương trình.

Câu 30: Trong quá trình gỡ lỗi, sau khi xác định được vị trí và nguyên nhân lỗi, bước tiếp theo quan trọng nhất là gì?

  • A. Ghi lại lỗi vào báo cáo.
  • B. Chuyển lỗi cho người khác sửa.
  • C. Bỏ qua lỗi nếu nó không nghiêm trọng.
  • D. Sửa lỗi và kiểm tra lại để đảm bảo lỗi đã được khắc phục.

1 / 30

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

Tags: Bộ đề 7

Câu 1: Mục tiêu chính của kiểm thử phần mềm là gì?

2 / 30

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

Tags: Bộ đề 7

Câu 2: Loại lỗi nào sau đây thường được phát hiện bởi trình biên dịch (compiler) trước khi chương trình được thực thi?

3 / 30

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

Tags: Bộ đề 7

Câu 3: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi nào đã xảy ra?

4 / 30

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

Tags: Bộ đề 7

Câu 4: Trong quá trình gỡ lỗi, sử dụng lệnh `print()` để hiển thị giá trị biến tại một điểm cụ thể trong chương trình thuộc về phương pháp gỡ lỗi nào?

5 / 30

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

Tags: Bộ đề 7

Câu 5: Phát biểu nào sau đây mô tả đúng nhất về 'điểm dừng' (breakpoint) trong trình gỡ lỗi?

6 / 30

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

Tags: Bộ đề 7

Câu 6: Xét đoạn mã Python sau: `numbers = [1, 2, 3]; print(numbers[3])`. Đoạn mã này sẽ gây ra loại lỗi nào?

7 / 30

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

Tags: Bộ đề 7

Câu 7: Để kiểm thử một hàm tính tổng hai số, bộ dữ liệu kiểm thử nào sau đây là phù hợp nhất để kiểm tra 'giá trị biên'?

8 / 30

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

Tags: Bộ đề 7

Câu 8: Trong quy trình kiểm thử, 'Test case' (ca kiểm thử) là gì?

9 / 30

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

Tags: Bộ đề 7

Câu 9: Khi bạn gặp lỗi 'NameError' trong Python, nguyên nhân có khả năng nhất là gì?

10 / 30

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

Tags: Bộ đề 7

Câu 10: Cho đoạn mã Python: `x = '5' + 3`. Đoạn mã này sẽ phát sinh lỗi gì?

11 / 30

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

Tags: Bộ đề 7

Câu 11: Kỹ thuật kiểm thử 'hộp đen' (black-box testing) tập trung vào khía cạnh nào của phần mềm?

12 / 30

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

Tags: Bộ đề 7

Câu 12: Trong quá trình kiểm thử, nếu kết quả thực tế khác với kết quả mong đợi, điều này cho thấy điều gì?

13 / 30

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

Tags: Bộ đề 7

Câu 13: Phương pháp kiểm thử nào yêu cầu người kiểm thử phải có kiến thức về cấu trúc mã nguồn và thuật toán của chương trình?

14 / 30

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

Tags: Bộ đề 7

Câu 14: Để kiểm tra tính đúng đắn của chương trình, bạn nên thiết kế bộ dữ liệu kiểm thử như thế nào?

15 / 30

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

Tags: Bộ đề 7

Câu 15: Trong ngôn ngữ lập trình Python, lỗi 'SyntaxError: invalid syntax' thường chỉ ra điều gì?

16 / 30

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

Tags: Bộ đề 7

Câu 16: Khi chương trình chạy chậm hơn dự kiến, loại lỗi nào có thể xảy ra (ngoài lỗi logic)?

17 / 30

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

Tags: Bộ đề 7

Câu 17: Công cụ 'trình gỡ lỗi' (debugger) giúp lập trình viên làm gì hiệu quả nhất?

18 / 30

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

Tags: Bộ đề 7

Câu 18: Trong kiểm thử phần mềm, thuật ngữ 'độ bao phủ mã' (code coverage) đề cập đến điều gì?

19 / 30

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

Tags: Bộ đề 7

Câu 19: Cho đoạn mã Python: `def calculate_average(numbers): return sum(numbers) / len(numbers)`. Điều gì xảy ra nếu `numbers` là một danh sách rỗng?

20 / 30

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

Tags: Bộ đề 7

Câu 20: Để tránh lỗi 'ZeroDivisionError' trong hàm ở Câu 19, bạn nên làm gì?

21 / 30

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

Tags: Bộ đề 7

Câu 21: Loại lỗi nào thường khó phát hiện nhất trong quá trình kiểm thử?

22 / 30

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

Tags: Bộ đề 7

Câu 22: Trong giai đoạn phát triển phần mềm, kiểm thử nên được thực hiện vào thời điểm nào?

23 / 30

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

Tags: Bộ đề 7

Câu 23: Điều gì KHÔNG phải là mục tiêu của việc gỡ lỗi chương trình?

24 / 30

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

Tags: Bộ đề 7

Câu 24: Khi nhận được thông báo lỗi 'TypeError: can only concatenate str (not "int") to str', bạn cần kiểm tra điều gì trong mã nguồn?

25 / 30

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

Tags: Bộ đề 7

Câu 25: Để kiểm thử chức năng đăng nhập của một hệ thống, ca kiểm thử nào sau đây là quan trọng nhất?

26 / 30

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

Tags: Bộ đề 7

Câu 26: Phương pháp gỡ lỗi 'vết' (tracing) chương trình là gì?

27 / 30

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

Tags: Bộ đề 7

Câu 27: Khi kiểm thử một hàm nhận đầu vào là số nguyên dương, bạn nên kiểm tra trường hợp nào đặc biệt liên quan đến 'giá trị biên'?

28 / 30

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

Tags: Bộ đề 7

Câu 28: Điều gì KHÔNG phải là một công cụ hỗ trợ kiểm thử chương trình?

29 / 30

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

Tags: Bộ đề 7

Câu 29: Mục đích của việc 'kiểm thử hồi quy' (regression testing) là gì?

30 / 30

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

Tags: Bộ đề 7

Câu 30: Trong quá trình gỡ lỗi, sau khi xác định được vị trí và nguyên nhân lỗi, bước tiếp theo quan trọng nhất là gì?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 08 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục tiêu chính của kiểm thử chương trình là gì?

  • A. Chứng minh rằng chương trình không có lỗi.
  • B. Phát hiện càng nhiều lỗi càng tốt trong chương trình.
  • C. Làm cho chương trình chạy nhanh hơn.
  • D. Tăng tính thẩm mỹ của giao diện chương trình.

Câu 2: Loại lỗi nào sau đây thường được phát hiện trong giai đoạn biên dịch (compilation) của chương trình?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logic error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi thiết kế (Design error)

Câu 3: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi nào đã xảy ra?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logic error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi biên dịch (Compilation error)

Câu 4: Phương pháp kiểm thử hộp đen (Black-box testing) tập trung vào yếu tố nào của chương trình?

  • A. Cấu trúc mã nguồn bên trong của chương trình.
  • B. Chức năng và hành vi bên ngoài của chương trình.
  • C. Hiệu suất sử dụng bộ nhớ của chương trình.
  • D. Tính bảo mật của chương trình.

Câu 5: Kỹ thuật "in vết" (tracing) trong gỡ lỗi chương trình thường được thực hiện bằng cách nào?

  • A. Sử dụng lệnh in (print) để hiển thị giá trị biến tại các điểm khác nhau trong chương trình.
  • B. Sử dụng trình biên dịch để kiểm tra từng dòng mã.
  • C. Viết lại toàn bộ chương trình từ đầu.
  • D. Thử nghiệm chương trình với dữ liệu đầu vào không hợp lệ.

Câu 6: Công cụ gỡ lỗi (debugger) trong IDE cung cấp tính năng chính nào để giúp lập trình viên?

  • A. Tự động sửa lỗi cú pháp.
  • B. Tối ưu hóa hiệu suất chương trình.
  • C. Dịch mã chương trình sang ngôn ngữ máy.
  • D. Theo dõi từng bước thực thi chương trình và giá trị biến.

Câu 7: Trong quy trình kiểm thử, "bộ dữ liệu kiểm thử" (test data set) cần đảm bảo điều gì?

  • A. Chỉ bao gồm dữ liệu đầu vào hợp lệ.
  • B. Chỉ bao gồm dữ liệu đầu vào ngẫu nhiên.
  • C. Bao phủ nhiều trường hợp sử dụng và tình huống khác nhau, bao gồm cả dữ liệu hợp lệ và không hợp lệ.
  • D. Được tạo ra tự động bởi công cụ kiểm thử.

Câu 8: Khi kiểm thử một hàm tính tổng các số trong danh sách, trường hợp kiểm thử "biên" (boundary case) có thể là gì?

  • A. Danh sách chứa các số nguyên dương lớn.
  • B. Danh sách rỗng hoặc danh sách chỉ có một phần tử.
  • C. Danh sách chứa cả số nguyên và số thực.
  • D. Danh sách chứa các chuỗi ký tự.

Câu 9: Phát biểu nào sau đây mô tả đúng nhất về lỗi logic trong chương trình?

  • A. Lỗi do sai cú pháp ngôn ngữ lập trình.
  • B. Lỗi xảy ra khi chương trình cố gắng truy cập bộ nhớ không hợp lệ.
  • C. Lỗi làm chương trình dừng đột ngột.
  • D. Lỗi trong thuật toán hoặc cách tiếp cận giải quyết vấn đề, dẫn đến kết quả sai.

Câu 10: Giả sử bạn viết một chương trình tính diện tích hình tròn, nhưng kết quả luôn sai. Đây có thể là loại lỗi gì?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logic error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi biên dịch (Compilation error)

Câu 11: Khi gặp lỗi "NameError" trong Python, nguyên nhân phổ biến nhất là gì?

  • A. Sai kiểu dữ liệu của biến.
  • B. Chia cho số 0.
  • C. Sử dụng biến hoặc hàm chưa được định nghĩa.
  • D. Lỗi cú pháp trong câu lệnh.

Câu 12: Trong Python, khối lệnh "try...except" được sử dụng để làm gì?

  • A. Xử lý các ngoại lệ (exceptions) có thể xảy ra trong quá trình chạy chương trình.
  • B. Kiểm tra lỗi cú pháp trước khi chạy chương trình.
  • C. Tối ưu hóa mã chương trình.
  • D. Tạo giao diện người dùng cho chương trình.

Câu 13: Để kiểm thử một chương trình phức tạp, nên bắt đầu kiểm thử từ đâu?

  • A. Kiểm thử toàn bộ chương trình cùng một lúc.
  • B. Kiểm thử từng модуl (module) hoặc thành phần nhỏ của chương trình trước.
  • C. Chỉ kiểm thử các chức năng quan trọng nhất.
  • D. Để người dùng cuối kiểm thử và báo lỗi.

Câu 14: "Lỗi tràn bộ đệm" (Buffer Overflow) thuộc loại lỗi nào và thường xảy ra khi nào?

  • A. Lỗi cú pháp, khi viết sai câu lệnh.
  • B. Lỗi logic, khi thuật toán sai.
  • C. Lỗi thời gian chạy, khi chương trình cố gắng ghi dữ liệu vượt quá kích thước bộ nhớ được cấp phát.
  • D. Lỗi biên dịch, khi trình biên dịch không nhận diện được mã.

Câu 15: Tại sao việc kiểm thử chương trình lại quan trọng trong quá trình phát triển phần mềm?

  • A. Để làm cho chương trình chạy nhanh hơn.
  • B. Để giảm số dòng mã chương trình.
  • C. Để đảm bảo chương trình có giao diện đẹp.
  • D. Để đảm bảo chất lượng, độ tin cậy và giảm thiểu rủi ro khi sử dụng chương trình.

Câu 16: Trong quá trình gỡ lỗi, khi bạn đã xác định được vị trí lỗi, bước tiếp theo quan trọng nhất là gì?

  • A. Bỏ qua lỗi và tiếp tục viết mã.
  • B. Ghi lại lỗi và chuyển sang gỡ lỗi phần khác.
  • C. Hiểu rõ nguyên nhân gốc rễ của lỗi và sửa chữa nó một cách triệt để.
  • D. Thêm ghi chú (comment) vào mã để đánh dấu vị trí lỗi.

Câu 17: Loại kiểm thử nào tập trung vào việc đảm bảo các модуl (module) của chương trình hoạt động tốt khi kết hợp với nhau?

  • A. Kiểm thử đơn vị (Unit testing)
  • B. Kiểm thử tích hợp (Integration testing)
  • C. Kiểm thử hệ thống (System testing)
  • D. Kiểm thử chấp nhận (Acceptance testing)

Câu 18: Khi thiết kế bộ dữ liệu kiểm thử, cần ưu tiên các trường hợp nào để phát hiện lỗi hiệu quả?

  • A. Các trường hợp dữ liệu đầu vào phổ biến nhất.
  • B. Các trường hợp dữ liệu đầu vào ngẫu nhiên.
  • C. Các trường hợp dữ liệu đầu vào hợp lệ.
  • D. Các trường hợp biên, trường hợp ngoại lệ và trường hợp dữ liệu không hợp lệ.

Câu 19: Trong ngôn ngữ lập trình bậc cao, lỗi "segmentation fault" thường chỉ ra điều gì?

  • A. Lỗi cú pháp.
  • B. Lỗi logic trong thuật toán.
  • C. Chương trình cố gắng truy cập vào vùng bộ nhớ không được phép.
  • D. Lỗi do trình biên dịch.

Câu 20: Phương pháp kiểm thử hộp trắng (White-box testing) còn được gọi là gì?

  • A. Kiểm thử cấu trúc (Structural testing)
  • B. Kiểm thử chức năng (Functional testing)
  • C. Kiểm thử hiệu suất (Performance testing)
  • D. Kiểm thử người dùng (User testing)

Câu 21: Xét đoạn mã Python sau: `def chia(a, b): return a / b`. Nếu gọi `chia(10, 0)`, lỗi gì sẽ xảy ra?

  • A. TypeError
  • B. NameError
  • C. ValueError
  • D. ZeroDivisionError

Câu 22: Để kiểm tra tính đúng đắn của một hàm, lập trình viên thường viết các đoạn mã kiểm thử nhỏ gọi là...

  • A. Test plan
  • B. Unit tests
  • C. Integration tests
  • D. System tests

Câu 23: Trong quá trình phát triển phần mềm theo mô hình thác nước (Waterfall), giai đoạn kiểm thử thường diễn ra vào thời điểm nào?

  • A. Ngay sau giai đoạn phân tích yêu cầu.
  • B. Song song với giai đoạn thiết kế.
  • C. Sau giai đoạn lập trình (coding).
  • D. Trước giai đoạn triển khai.

Câu 24: Mục đích của việc "ghi nhật ký" (logging) trong chương trình là gì?

  • A. Ghi lại thông tin về hoạt động của chương trình để theo dõi và gỡ lỗi sau này.
  • B. Tăng tốc độ thực thi chương trình.
  • C. Bảo vệ chương trình khỏi virus.
  • D. Tạo giao diện đồ họa cho chương trình.

Câu 25: Khi chương trình gặp lỗi "IndexError" trong Python, lỗi này liên quan đến vấn đề gì?

  • A. Kiểu dữ liệu không phù hợp.
  • B. Truy cập vào chỉ số không hợp lệ của một chuỗi, danh sách hoặc tuple.
  • C. Tên biến chưa được định nghĩa.
  • D. Lỗi cú pháp trong câu lệnh điều khiển.

Câu 26: Trong kiểm thử phần mềm, "độ bao phủ mã" (code coverage) đo lường điều gì?

  • A. Số lượng lỗi được phát hiện trên tổng số dòng mã.
  • B. Thời gian thực hiện kiểm thử trên tổng thời gian phát triển.
  • C. Tỷ lệ phần trăm mã nguồn đã được thực thi bởi bộ kiểm thử.
  • D. Mức độ dễ đọc và dễ hiểu của mã nguồn.

Câu 27: Khi sử dụng công cụ gỡ lỗi, "điểm dừng" (breakpoint) cho phép lập trình viên làm gì?

  • A. Tự động sửa lỗi tại vị trí đó.
  • B. Bỏ qua việc thực thi dòng mã tại vị trí đó.
  • C. Tối ưu hóa mã tại vị trí đó.
  • D. Tạm dừng thực thi chương trình tại vị trí đó để kiểm tra trạng thái.

Câu 28: Loại kiểm thử nào được thực hiện bởi người dùng cuối hoặc khách hàng để xác nhận phần mềm đáp ứng yêu cầu của họ?

  • A. Kiểm thử chấp nhận (Acceptance testing)
  • B. Kiểm thử hệ thống (System testing)
  • C. Kiểm thử tích hợp (Integration testing)
  • D. Kiểm thử đơn vị (Unit testing)

Câu 29: Điều gì KHÔNG phải là một lợi ích của việc viết mã chương trình rõ ràng và dễ đọc?

  • A. Giảm thời gian gỡ lỗi.
  • B. Dễ dàng bảo trì và nâng cấp chương trình.
  • C. Tăng khả năng hợp tác làm việc nhóm.
  • D. Tăng tốc độ thực thi chương trình.

Câu 30: Trong kiểm thử hồi quy (Regression testing), mục tiêu chính là gì?

  • A. Kiểm tra hiệu suất của chương trình sau khi tối ưu hóa.
  • B. Đảm bảo rằng các thay đổi mới không gây ra lỗi cho các chức năng đã hoạt động trước đó.
  • C. Kiểm tra tính bảo mật của chương trình sau khi cập nhật.
  • D. Đo lường mức độ hài lòng của người dùng sau khi phát hành phiên bản mới.

1 / 30

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

Tags: Bộ đề 8

Câu 1: Mục tiêu chính của kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 8

Câu 2: Loại lỗi nào sau đây thường được phát hiện trong giai đoạn biên dịch (compilation) của chương trình?

3 / 30

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

Tags: Bộ đề 8

Câu 3: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi nào đã xảy ra?

4 / 30

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

Tags: Bộ đề 8

Câu 4: Phương pháp kiểm thử hộp đen (Black-box testing) tập trung vào yếu tố nào của chương trình?

5 / 30

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

Tags: Bộ đề 8

Câu 5: Kỹ thuật 'in vết' (tracing) trong gỡ lỗi chương trình thường được thực hiện bằng cách nào?

6 / 30

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

Tags: Bộ đề 8

Câu 6: Công cụ gỡ lỗi (debugger) trong IDE cung cấp tính năng chính nào để giúp lập trình viên?

7 / 30

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

Tags: Bộ đề 8

Câu 7: Trong quy trình kiểm thử, 'bộ dữ liệu kiểm thử' (test data set) cần đảm bảo điều gì?

8 / 30

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

Tags: Bộ đề 8

Câu 8: Khi kiểm thử một hàm tính tổng các số trong danh sách, trường hợp kiểm thử 'biên' (boundary case) có thể là gì?

9 / 30

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

Tags: Bộ đề 8

Câu 9: Phát biểu nào sau đây mô tả đúng nhất về lỗi logic trong chương trình?

10 / 30

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

Tags: Bộ đề 8

Câu 10: Giả sử bạn viết một chương trình tính diện tích hình tròn, nhưng kết quả luôn sai. Đây có thể là loại lỗi gì?

11 / 30

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

Tags: Bộ đề 8

Câu 11: Khi gặp lỗi 'NameError' trong Python, nguyên nhân phổ biến nhất là gì?

12 / 30

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

Tags: Bộ đề 8

Câu 12: Trong Python, khối lệnh 'try...except' được sử dụng để làm gì?

13 / 30

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

Tags: Bộ đề 8

Câu 13: Để kiểm thử một chương trình phức tạp, nên bắt đầu kiểm thử từ đâu?

14 / 30

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

Tags: Bộ đề 8

Câu 14: 'Lỗi tràn bộ đệm' (Buffer Overflow) thuộc loại lỗi nào và thường xảy ra khi nào?

15 / 30

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

Tags: Bộ đề 8

Câu 15: Tại sao việc kiểm thử chương trình lại quan trọng trong quá trình phát triển phần mềm?

16 / 30

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

Tags: Bộ đề 8

Câu 16: Trong quá trình gỡ lỗi, khi bạn đã xác định được vị trí lỗi, bước tiếp theo quan trọng nhất là gì?

17 / 30

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

Tags: Bộ đề 8

Câu 17: Loại kiểm thử nào tập trung vào việc đảm bảo các модуl (module) của chương trình hoạt động tốt khi kết hợp với nhau?

18 / 30

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

Tags: Bộ đề 8

Câu 18: Khi thiết kế bộ dữ liệu kiểm thử, cần ưu tiên các trường hợp nào để phát hiện lỗi hiệu quả?

19 / 30

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

Tags: Bộ đề 8

Câu 19: Trong ngôn ngữ lập trình bậc cao, lỗi 'segmentation fault' thường chỉ ra điều gì?

20 / 30

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

Tags: Bộ đề 8

Câu 20: Phương pháp kiểm thử hộp trắng (White-box testing) còn được gọi là gì?

21 / 30

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

Tags: Bộ đề 8

Câu 21: Xét đoạn mã Python sau: `def chia(a, b): return a / b`. Nếu gọi `chia(10, 0)`, lỗi gì sẽ xảy ra?

22 / 30

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

Tags: Bộ đề 8

Câu 22: Để kiểm tra tính đúng đắn của một hàm, lập trình viên thường viết các đoạn mã kiểm thử nhỏ gọi là...

23 / 30

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

Tags: Bộ đề 8

Câu 23: Trong quá trình phát triển phần mềm theo mô hình thác nước (Waterfall), giai đoạn kiểm thử thường diễn ra vào thời điểm nào?

24 / 30

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

Tags: Bộ đề 8

Câu 24: Mục đích của việc 'ghi nhật ký' (logging) trong chương trình là gì?

25 / 30

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

Tags: Bộ đề 8

Câu 25: Khi chương trình gặp lỗi 'IndexError' trong Python, lỗi này liên quan đến vấn đề gì?

26 / 30

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

Tags: Bộ đề 8

Câu 26: Trong kiểm thử phần mềm, 'độ bao phủ mã' (code coverage) đo lường điều gì?

27 / 30

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

Tags: Bộ đề 8

Câu 27: Khi sử dụng công cụ gỡ lỗi, 'điểm dừng' (breakpoint) cho phép lập trình viên làm gì?

28 / 30

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

Tags: Bộ đề 8

Câu 28: Loại kiểm thử nào được thực hiện bởi người dùng cuối hoặc khách hàng để xác nhận phần mềm đáp ứng yêu cầu của họ?

29 / 30

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

Tags: Bộ đề 8

Câu 29: Điều gì KHÔNG phải là một lợi ích của việc viết mã chương trình rõ ràng và dễ đọc?

30 / 30

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

Tags: Bộ đề 8

Câu 30: Trong kiểm thử hồi quy (Regression testing), mục tiêu chính là gì?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 09 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục tiêu chính của việc kiểm thử chương trình là gì?

  • A. Chứng minh rằng chương trình không có lỗi.
  • B. Làm cho chương trình chạy nhanh hơn.
  • C. Tối ưu hóa mã nguồn chương trình.
  • D. Phát hiện lỗi và đảm bảo chương trình hoạt động đúng theo yêu cầu.

Câu 2: Trong quá trình kiểm thử, "dữ liệu kiểm thử" (test data) được sử dụng để làm gì?

  • A. Cải thiện hiệu suất của chương trình.
  • B. Mô phỏng các đầu vào khác nhau để kiểm tra hành vi của chương trình.
  • C. Giảm kích thước mã nguồn chương trình.
  • D. Tăng tính bảo mật của chương trình.

Câu 3: Loại lỗi chương trình nào thường xảy ra khi bạn cố gắng truy cập một phần tử của danh sách (list) hoặc mảng (array) bằng chỉ số (index) không hợp lệ?

  • A. TypeError
  • B. ValueError
  • C. IndexError
  • D. NameError

Câu 4: Khi chương trình Python báo lỗi `TypeError: unsupported operand type(s) for +: "int" and "str"`, điều này có nghĩa là gì?

  • A. Bạn đang cố gắng thực hiện phép toán không hợp lệ giữa các kiểu dữ liệu không tương thích (ví dụ: cộng số nguyên với chuỗi).
  • B. Có lỗi cú pháp trong câu lệnh sử dụng toán tử "+".
  • C. Biến bạn đang sử dụng chưa được khai báo.
  • D. Bạn đang cố gắng chia cho số 0.

Câu 5: Công cụ "in biến trung gian" (print debugging) được sử dụng để làm gì trong quá trình gỡ lỗi?

  • A. Tự động sửa lỗi chương trình.
  • B. Tối ưu hóa hiệu suất chương trình.
  • C. Theo dõi giá trị của biến tại các thời điểm khác nhau trong quá trình thực thi.
  • D. Biên dịch mã nguồn chương trình.

Câu 6: Tình huống nào sau đây có thể dẫn đến lỗi `ZeroDivisionError` trong Python?

  • A. Truy cập phần tử ngoài phạm vi của danh sách.
  • B. Thực hiện phép chia cho 0.
  • C. Sử dụng biến chưa được gán giá trị.
  • D. Viết sai tên hàm.

Câu 7: Khi bạn gặp lỗi `NameError`, bước đầu tiên nên làm gì để gỡ lỗi?

  • A. Kiểm tra lại các phép toán số học.
  • B. Xem xét lại cấu trúc điều khiển của chương trình.
  • C. Thử chạy chương trình trên một bộ dữ liệu khác.
  • D. Kiểm tra xem biến hoặc hàm được sử dụng đã được định nghĩa hoặc nhập (import) đúng cách chưa.

Câu 8: "Điểm dừng" (breakpoint) là một công cụ gỡ lỗi cho phép bạn làm gì?

  • A. Tạm dừng chương trình tại một dòng lệnh cụ thể để kiểm tra trạng thái.
  • B. Tự động sửa lỗi cú pháp.
  • C. Tối ưu hóa mã nguồn để chạy nhanh hơn.
  • D. Sinh dữ liệu kiểm thử ngẫu nhiên.

Câu 9: Loại kiểm thử nào tập trung vào việc đảm bảo rằng các thành phần khác nhau của chương trình hoạt động tốt khi được kết hợp với nhau?

  • A. Kiểm thử đơn vị (Unit testing)
  • B. Kiểm thử chấp nhận (Acceptance testing)
  • C. Kiểm thử tích hợp (Integration testing)
  • D. Kiểm thử hồi quy (Regression testing)

Câu 10: Phát biểu nào sau đây mô tả đúng nhất về "lỗi cú pháp" (syntax error)?

  • A. Lỗi xảy ra khi chương trình chạy và gặp phải tình huống không mong muốn về dữ liệu.
  • B. Lỗi do viết mã không tuân thủ quy tắc ngữ pháp của ngôn ngữ lập trình.
  • C. Lỗi liên quan đến logic của chương trình, khiến chương trình chạy sai kết quả.
  • D. Lỗi do thiếu bộ nhớ hoặc tài nguyên hệ thống.

Câu 11: Cho đoạn mã Python sau:
```python
def tinh_tong(a, b):
return a + c

ket_qua = tinh_tong(5, 3)
print(ket_qua)
```
Đoạn mã này sẽ gây ra lỗi gì khi chạy?

  • A. TypeError
  • B. ValueError
  • C. IndexError
  • D. NameError

Câu 12: Trong quy trình kiểm thử, "bộ dữ liệu kiểm thử biên" (boundary test cases) thường được sử dụng để kiểm tra điều gì?

  • A. Hiệu suất của chương trình khi xử lý dữ liệu lớn.
  • B. Tính bảo mật của chương trình trước các tấn công.
  • C. Chương trình có xử lý đúng các giá trị đầu vào ở biên hoặc giới hạn cho phép hay không.
  • D. Khả năng tương thích của chương trình với các hệ điều hành khác nhau.

Câu 13: Khi thiết kế bộ dữ liệu kiểm thử, tại sao nên bao gồm cả "dữ liệu hợp lệ" và "dữ liệu không hợp lệ"?

  • A. Để làm cho quá trình kiểm thử nhanh hơn.
  • B. Để đảm bảo chương trình hoạt động đúng với đầu vào hợp lệ và xử lý lỗi đúng cách với đầu vào không hợp lệ.
  • C. Để kiểm tra hiệu suất của chương trình trong các điều kiện khác nhau.
  • D. Để đơn giản hóa quá trình gỡ lỗi.

Câu 14: Phương pháp gỡ lỗi "lần theo dấu vết" (tracing) thường được thực hiện bằng cách nào?

  • A. Sử dụng các công cụ phân tích mã tĩnh tự động.
  • B. Chạy chương trình với bộ gỡ lỗi và đặt điểm dừng.
  • C. Đọc kỹ mã nguồn và tìm lỗi bằng mắt.
  • D. Thêm các lệnh in (print) vào mã nguồn để theo dõi giá trị biến và dòng thực thi.

Câu 15: Cho đoạn mã Python sau:
```python
numbers = [1, 2, 3]
print(numbers[3])
```
Lỗi nào sẽ xảy ra khi chạy đoạn mã này và tại sao?

  • A. IndexError, vì chỉ số 3 nằm ngoài phạm vi chỉ số hợp lệ của danh sách (0, 1, 2).
  • B. TypeError, vì danh sách chỉ chứa số nguyên.
  • C. ValueError, vì giá trị 3 không hợp lệ.
  • D. NameError, vì biến "numbers" chưa được định nghĩa.

Câu 16: "Kiểm thử hộp đen" (black-box testing) là phương pháp kiểm thử dựa trên yếu tố nào?

  • A. Cấu trúc mã nguồn bên trong của chương trình.
  • B. Yêu cầu và đặc tả chức năng của chương trình.
  • C. Hiệu suất và tốc độ thực thi của chương trình.
  • D. Mức độ sử dụng tài nguyên hệ thống của chương trình.

Câu 17: Trong quá trình gỡ lỗi, khi bạn đã xác định được vị trí có thể gây ra lỗi, bước tiếp theo quan trọng nhất là gì?

  • A. Chạy lại chương trình với dữ liệu kiểm thử khác.
  • B. Viết lại toàn bộ đoạn mã nghi ngờ có lỗi.
  • C. Phân tích nguyên nhân gốc rễ của lỗi và tìm cách sửa chữa nó.
  • D. Bỏ qua lỗi và tiếp tục kiểm thử các phần khác của chương trình.

Câu 18: "Kiểm thử đơn vị" (unit testing) thường được thực hiện ở giai đoạn nào của quá trình phát triển phần mềm?

  • A. Trong giai đoạn phát triển và viết mã chương trình.
  • B. Sau khi chương trình đã hoàn thành và tích hợp.
  • C. Trước khi triển khai chương trình cho người dùng cuối.
  • D. Chỉ khi có lỗi được báo cáo từ người dùng.

Câu 19: Cho đoạn mã Python sau:
```python
num_str =

  • A. ValueError
  • B. TypeError
  • C. SyntaxError
  • D. NameError

Câu 20: Khi chương trình chạy ra kết quả không đúng như mong đợi, nhưng không báo lỗi, đây thường là dấu hiệu của loại lỗi nào?

  • A. Lỗi cú pháp (syntax error)
  • B. Lỗi runtime (runtime error)
  • C. Lỗi logic (logic error)
  • D. Lỗi biên dịch (compilation error)

Câu 21: Để kiểm tra tính năng tìm kiếm trong một chương trình, bạn nên thiết kế dữ liệu kiểm thử như thế nào?

  • A. Chỉ dữ liệu tồn tại trong danh sách tìm kiếm.
  • B. Chỉ dữ liệu không tồn tại trong danh sách tìm kiếm.
  • C. Dữ liệu ngẫu nhiên không liên quan đến chức năng tìm kiếm.
  • D. Bao gồm cả dữ liệu tồn tại và không tồn tại trong danh sách, cũng như các trường hợp biên (ví dụ: danh sách rỗng, tìm kiếm chuỗi rỗng).

Câu 22: Trong quá trình gỡ lỗi, việc "chia để trị" (divide and conquer) có nghĩa là gì?

  • A. Viết lại chương trình từ đầu.
  • B. Chia nhỏ chương trình thành các phần nhỏ hơn để kiểm tra và gỡ lỗi từng phần.
  • C. Sử dụng nhiều công cụ gỡ lỗi khác nhau cùng một lúc.
  • D. Chỉ tập trung vào phần mã mới viết gần đây.

Câu 23: Phát biểu nào sau đây KHÔNG phải là một lợi ích của việc kiểm thử chương trình?

  • A. Nâng cao chất lượng và độ tin cậy của phần mềm.
  • B. Giảm thiểu chi phí sửa lỗi ở giai đoạn sau của dự án.
  • C. Đảm bảo chương trình chạy nhanh nhất có thể.
  • D. Tăng sự tự tin vào sản phẩm trước khi phát hành.

Câu 24: Cho đoạn mã Python sau:
```python
def calculate_average(numbers):
sum = 0
for num in numbers:
sum += num
average = sum / len(numbers)
return average

data = []
result = calculate_average(data)
print(result)
```
Đoạn mã này sẽ gây ra lỗi gì khi chạy?

  • A. TypeError
  • B. ValueError
  • C. IndexError
  • D. ZeroDivisionError

Câu 25: Khi kiểm thử một hàm nhận đầu vào là số nguyên dương, bạn nên bao gồm loại dữ liệu kiểm thử nào?

  • A. Chỉ số nguyên dương lớn.
  • B. Chỉ số nguyên dương nhỏ.
  • C. Số nguyên dương hợp lệ, số 0, số âm, và các kiểu dữ liệu không phải số nguyên (ví dụ: chuỗi).
  • D. Chỉ số thực (số thập phân).

Câu 26: "Kiểm thử hồi quy" (regression testing) được thực hiện khi nào?

  • A. Trước khi viết mã chương trình.
  • B. Sau khi sửa lỗi hoặc thêm tính năng mới vào chương trình.
  • C. Chỉ khi có yêu cầu từ người dùng.
  • D. Định kỳ hàng tuần hoặc hàng tháng.

Câu 27: Cho đoạn mã Python sau:
```python
user_input = input(

  • A. TypeError
  • B. ValueError
  • C. NameError
  • D. ZeroDivisionError

Câu 28: Mục đích của việc "ghi nhật ký" (logging) trong chương trình là gì?

  • A. Ghi lại thông tin về hoạt động của chương trình để theo dõi và gỡ lỗi.
  • B. Tăng tốc độ thực thi của chương trình.
  • C. Bảo vệ chương trình khỏi virus.
  • D. Tự động sửa lỗi chương trình.

Câu 29: Khi gặp lỗi `ValueError` trong Python, nguyên nhân phổ biến nhất là gì?

  • A. Sai cú pháp.
  • B. Giá trị không phù hợp với kiểu dữ liệu mong đợi (ví dụ: chuyển đổi chuỗi không phải số thành số nguyên).
  • C. Biến chưa được khai báo.
  • D. Chia cho số 0.

Câu 30: Trong quá trình kiểm thử, nếu phát hiện lỗi, quy trình xử lý lỗi thường bao gồm các bước nào sau đây?

  • A. Báo cáo lỗi -> Sửa lỗi -> Phát hành chương trình.
  • B. Phát hiện lỗi -> Bỏ qua lỗi -> Tiếp tục kiểm thử.
  • C. Phát hiện lỗi -> Báo cáo lỗi -> Gỡ lỗi và sửa lỗi -> Kiểm thử lại -> Xác nhận sửa lỗi.
  • D. Kiểm thử -> Phát hành -> Sửa lỗi (nếu có).

1 / 30

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

Tags: Bộ đề 9

Câu 1: Mục tiêu chính của việc kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 9

Câu 2: Trong quá trình kiểm thử, 'dữ liệu kiểm thử' (test data) được sử dụng để làm gì?

3 / 30

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

Tags: Bộ đề 9

Câu 3: Loại lỗi chương trình nào thường xảy ra khi bạn cố gắng truy cập một phần tử của danh sách (list) hoặc mảng (array) bằng chỉ số (index) không hợp lệ?

4 / 30

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

Tags: Bộ đề 9

Câu 4: Khi chương trình Python báo lỗi `TypeError: unsupported operand type(s) for +: 'int' and 'str'`, điều này có nghĩa là gì?

5 / 30

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

Tags: Bộ đề 9

Câu 5: Công cụ 'in biến trung gian' (print debugging) được sử dụng để làm gì trong quá trình gỡ lỗi?

6 / 30

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

Tags: Bộ đề 9

Câu 6: Tình huống nào sau đây có thể dẫn đến lỗi `ZeroDivisionError` trong Python?

7 / 30

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

Tags: Bộ đề 9

Câu 7: Khi bạn gặp lỗi `NameError`, bước đầu tiên nên làm gì để gỡ lỗi?

8 / 30

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

Tags: Bộ đề 9

Câu 8: 'Điểm dừng' (breakpoint) là một công cụ gỡ lỗi cho phép bạn làm gì?

9 / 30

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

Tags: Bộ đề 9

Câu 9: Loại kiểm thử nào tập trung vào việc đảm bảo rằng các thành phần khác nhau của chương trình hoạt động tốt khi được kết hợp với nhau?

10 / 30

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

Tags: Bộ đề 9

Câu 10: Phát biểu nào sau đây mô tả đúng nhất về 'lỗi cú pháp' (syntax error)?

11 / 30

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

Tags: Bộ đề 9

Câu 11: Cho đoạn mã Python sau:
```python
def tinh_tong(a, b):
return a + c

ket_qua = tinh_tong(5, 3)
print(ket_qua)
```
Đoạn mã này sẽ gây ra lỗi gì khi chạy?

12 / 30

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

Tags: Bộ đề 9

Câu 12: Trong quy trình kiểm thử, 'bộ dữ liệu kiểm thử biên' (boundary test cases) thường được sử dụng để kiểm tra điều gì?

13 / 30

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

Tags: Bộ đề 9

Câu 13: Khi thiết kế bộ dữ liệu kiểm thử, tại sao nên bao gồm cả 'dữ liệu hợp lệ' và 'dữ liệu không hợp lệ'?

14 / 30

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

Tags: Bộ đề 9

Câu 14: Phương pháp gỡ lỗi 'lần theo dấu vết' (tracing) thường được thực hiện bằng cách nào?

15 / 30

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

Tags: Bộ đề 9

Câu 15: Cho đoạn mã Python sau:
```python
numbers = [1, 2, 3]
print(numbers[3])
```
Lỗi nào sẽ xảy ra khi chạy đoạn mã này và tại sao?

16 / 30

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

Tags: Bộ đề 9

Câu 16: 'Kiểm thử hộp đen' (black-box testing) là phương pháp kiểm thử dựa trên yếu tố nào?

17 / 30

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

Tags: Bộ đề 9

Câu 17: Trong quá trình gỡ lỗi, khi bạn đã xác định được vị trí có thể gây ra lỗi, bước tiếp theo quan trọng nhất là gì?

18 / 30

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

Tags: Bộ đề 9

Câu 18: 'Kiểm thử đơn vị' (unit testing) thường được thực hiện ở giai đoạn nào của quá trình phát triển phần mềm?

19 / 30

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

Tags: Bộ đề 9

Câu 19: Cho đoạn mã Python sau:
```python
num_str = "123"
num_int = int(num_str)
result = num_int + "456"
print(result)
```
Đoạn mã này sẽ báo lỗi gì?

20 / 30

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

Tags: Bộ đề 9

Câu 20: Khi chương trình chạy ra kết quả không đúng như mong đợi, nhưng không báo lỗi, đây thường là dấu hiệu của loại lỗi nào?

21 / 30

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

Tags: Bộ đề 9

Câu 21: Để kiểm tra tính năng tìm kiếm trong một chương trình, bạn nên thiết kế dữ liệu kiểm thử như thế nào?

22 / 30

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

Tags: Bộ đề 9

Câu 22: Trong quá trình gỡ lỗi, việc 'chia để trị' (divide and conquer) có nghĩa là gì?

23 / 30

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

Tags: Bộ đề 9

Câu 23: Phát biểu nào sau đây KHÔNG phải là một lợi ích của việc kiểm thử chương trình?

24 / 30

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

Tags: Bộ đề 9

Câu 24: Cho đoạn mã Python sau:
```python
def calculate_average(numbers):
sum = 0
for num in numbers:
sum += num
average = sum / len(numbers)
return average

data = []
result = calculate_average(data)
print(result)
```
Đoạn mã này sẽ gây ra lỗi gì khi chạy?

25 / 30

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

Tags: Bộ đề 9

Câu 25: Khi kiểm thử một hàm nhận đầu vào là số nguyên dương, bạn nên bao gồm loại dữ liệu kiểm thử nào?

26 / 30

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

Tags: Bộ đề 9

Câu 26: 'Kiểm thử hồi quy' (regression testing) được thực hiện khi nào?

27 / 30

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

Tags: Bộ đề 9

Câu 27: Cho đoạn mã Python sau:
```python
user_input = input("Nhập một số: ")
result = 10 / user_input
print(result)
```
Nếu người dùng nhập vào '0', chương trình sẽ báo lỗi gì?

28 / 30

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

Tags: Bộ đề 9

Câu 28: Mục đích của việc 'ghi nhật ký' (logging) trong chương trình là gì?

29 / 30

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

Tags: Bộ đề 9

Câu 29: Khi gặp lỗi `ValueError` trong Python, nguyên nhân phổ biến nhất là gì?

30 / 30

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

Tags: Bộ đề 9

Câu 30: Trong quá trình kiểm thử, nếu phát hiện lỗi, quy trình xử lý lỗi thường bao gồm các bước nào sau đây?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

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

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình - Đề 10 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Mục tiêu chính của việc kiểm thử chương trình là gì?

  • A. Phát hiện và giảm thiểu số lượng lỗi trong chương trình.
  • B. Tăng tốc độ thực thi của chương trình.
  • C. Làm cho mã nguồn chương trình trở nên ngắn gọn hơn.
  • D. Đảm bảo chương trình chạy được trên mọi hệ điều hành.

Câu 2: Trong quy trình phát triển phần mềm, giai đoạn kiểm thử thường diễn ra vào thời điểm nào?

  • A. Trước khi viết mã nguồn.
  • B. Chỉ sau khi chương trình đã được triển khai đến người dùng.
  • C. Sau khi viết mã nguồn và trước khi triển khai.
  • D. Chỉ khi người dùng báo cáo lỗi.

Câu 3: Loại lỗi nào sau đây thường được phát hiện bởi trình biên dịch (compiler) trước khi chương trình được thực thi?

  • A. Lỗi logic (Logical error)
  • B. Lỗi cú pháp (Syntax error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi thiết kế (Design error)

Câu 4: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi nào đã xảy ra?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi logic (Logical error)
  • C. Lỗi thời gian chạy (Runtime error)
  • D. Lỗi biên dịch (Compilation error)

Câu 5: Phương pháp kiểm thử "hộp đen" (black-box testing) tập trung vào khía cạnh nào của chương trình?

  • A. Cấu trúc mã nguồn bên trong của chương trình.
  • B. Hiệu suất sử dụng bộ nhớ của chương trình.
  • C. Độ phức tạp của thuật toán.
  • D. Chức năng và hành vi bên ngoài của chương trình.

Câu 6: Kỹ thuật "in vết" (print debugging) thường được sử dụng để làm gì trong quá trình gỡ lỗi?

  • A. Tối ưu hóa tốc độ chương trình.
  • B. Theo dõi giá trị của biến và luồng thực thi của chương trình.
  • C. Tự động sửa lỗi chương trình.
  • D. Kiểm tra tính bảo mật của chương trình.

Câu 7: Phát biểu nào sau đây mô tả đúng nhất về "điểm dừng" (breakpoint) trong môi trường phát triển tích hợp (IDE)?

  • A. Vị trí trong mã nguồn mà chương trình sẽ tạm dừng thực thi để người dùng kiểm tra trạng thái.
  • B. Dòng mã nguồn chứa lỗi cú pháp.
  • C. Vị trí bắt đầu thực thi của chương trình.
  • D. Nơi chương trình sẽ kết thúc thực thi.

Câu 8: Xét đoạn mã Python sau: `def chia(a, b): return a / b`. Điều gì xảy ra khi gọi `chia(10, 0)`?

  • A. Hàm trả về giá trị 0.
  • B. Hàm trả về giá trị vô cùng (infinity).
  • C. Chương trình tiếp tục chạy mà không có vấn đề gì.
  • D. Chương trình phát sinh lỗi ZeroDivisionError.

Câu 9: Trong tình huống nào thì lỗi "IndexError" thường xảy ra trong Python?

  • A. Khi cố gắng truy cập một biến chưa được khai báo.
  • B. Khi cố gắng truy cập một phần tử của danh sách hoặc chuỗi với chỉ số không hợp lệ.
  • C. Khi thực hiện phép toán trên các kiểu dữ liệu không tương thích.
  • D. Khi có lỗi cú pháp trong câu lệnh.

Câu 10: Để kiểm tra tính đúng đắn của hàm tính giai thừa, bạn nên thiết kế bộ dữ liệu kiểm thử (test data) như thế nào?

  • A. Chỉ các số nguyên dương lớn.
  • B. Chỉ các số nguyên âm và số 0.
  • C. Bao gồm số 0, số dương nhỏ, số dương lớn và có thể cả số âm (nếu hàm được thiết kế để xử lý).
  • D. Chỉ các số thực (số thập phân).

Câu 11: Lỗi logic (logical error) trong chương trình là gì?

  • A. Lỗi do sai cú pháp ngôn ngữ lập trình.
  • B. Lỗi xảy ra khi chương trình cố gắng thực hiện một thao tác không hợp lệ trong thời gian chạy.
  • C. Lỗi do sử dụng sai tên biến hoặc hàm.
  • D. Lỗi trong thuật toán hoặc cách tiếp cận giải quyết vấn đề, dẫn đến kết quả sai ngay cả khi chương trình chạy không báo lỗi.

Câu 12: Trong quá trình gỡ lỗi, khi bạn đã xác định được vị trí lỗi nhưng chưa hiểu rõ nguyên nhân, bước tiếp theo hiệu quả nhất là gì?

  • A. Viết lại toàn bộ chương trình từ đầu.
  • B. Sử dụng công cụ gỡ lỗi (debugger) hoặc in vết (print debugging) để theo dõi giá trị biến và luồng thực thi tại vị trí lỗi và các vùng lân cận.
  • C. Bỏ qua lỗi và tiếp tục phát triển các phần khác của chương trình.
  • D. Yêu cầu người dùng cuối tự tìm cách khắc phục.

Câu 13: Xét đoạn mã Python: `age = input(

  • A. SyntaxError
  • B. IndexError
  • C. TypeError
  • D. ValueError

Câu 14: Để kiểm thử một hàm nhận vào một số nguyên và trả về "True" nếu số đó là số chẵn, "False" nếu lẻ, trường hợp kiểm thử biên (boundary test case) nào quan trọng nhất?

  • A. Số 0 và số 1.
  • B. Số chẵn lớn nhất và số lẻ lớn nhất có thể.
  • C. Số âm lớn nhất và số dương lớn nhất có thể.
  • D. Chỉ cần số chẵn bất kỳ.

Câu 15: Khi gặp thông báo lỗi "NameError: name "xyz" is not defined" trong Python, điều này có nghĩa là gì?

  • A. Có lỗi cú pháp trong tên biến "xyz".
  • B. Biến hoặc hàm có tên "xyz" chưa được khai báo hoặc định nghĩa trước khi sử dụng.
  • C. Kiểu dữ liệu của biến "xyz" không phù hợp.
  • D. Có lỗi trong việc nhập dữ liệu cho biến "xyz".

Câu 16: Giả sử bạn có một chương trình tính tổng các số trong một danh sách. Để kiểm thử chương trình này một cách toàn diện, bạn cần chuẩn bị những loại bộ dữ liệu kiểm thử nào?

  • A. Chỉ danh sách chứa số dương.
  • B. Chỉ danh sách chứa số âm.
  • C. Danh sách rỗng, danh sách chứa một phần tử, danh sách chứa nhiều phần tử, danh sách chứa cả số dương và số âm.
  • D. Chỉ danh sách chứa số thực.

Câu 17: Trong quá trình gỡ lỗi, "rubber duck debugging" là kỹ thuật gì?

  • A. Sử dụng một con vịt cao su để kiểm tra khả năng chống nước của thiết bị điện tử.
  • B. Viết tài liệu hướng dẫn gỡ lỗi cho người khác.
  • C. Gỡ lỗi chương trình bằng cách sử dụng các công cụ tự động.
  • D. Giải thích vấn đề cho một đối tượng vô tri (như con vịt cao su) để tự tìm ra lỗi trong quá trình diễn giải.

Câu 18: Phát biểu nào sau đây về kiểm thử và gỡ lỗi là chính xác?

  • A. Kiểm thử và gỡ lỗi là hai giai đoạn hoàn toàn độc lập và không liên quan đến nhau.
  • B. Kiểm thử là quá trình tìm lỗi, còn gỡ lỗi là quá trình xác định và sửa lỗi.
  • C. Gỡ lỗi luôn phải được thực hiện trước kiểm thử.
  • D. Mục tiêu chính của kiểm thử là chứng minh rằng chương trình không có lỗi.

Câu 19: Cho đoạn mã Python: `numbers = [1, 2, 3] print(numbers[3])`. Đoạn mã này sẽ gây ra lỗi gì?

  • A. TypeError
  • B. ValueError
  • C. IndexError
  • D. SyntaxError

Câu 20: Để giảm thiểu lỗi trong quá trình phát triển phần mềm, biện pháp phòng ngừa nào hiệu quả nhất?

  • A. Chỉ tập trung vào kiểm thử kỹ lưỡng sau khi hoàn thành chương trình.
  • B. Không cần kiểm thử nếu chương trình chạy nhanh.
  • C. Sử dụng ngôn ngữ lập trình bậc cao.
  • D. Áp dụng quy trình phát triển phần mềm có kiểm thử liên tục và kiểm tra mã nguồn thường xuyên.

Câu 21: Trong kiểm thử phần mềm, "test case" (trường hợp kiểm thử) là gì?

  • A. Một tập hợp các đầu vào, điều kiện thực hiện và kết quả mong đợi để kiểm tra một chức năng cụ thể của phần mềm.
  • B. Một báo cáo về các lỗi đã phát hiện trong quá trình kiểm thử.
  • C. Một công cụ tự động để kiểm thử phần mềm.
  • D. Một phương pháp để sửa lỗi chương trình.

Câu 22: Khi nào thì việc sử dụng công cụ gỡ lỗi (debugger) trở nên đặc biệt hữu ích?

  • A. Khi chương trình chạy quá chậm.
  • B. Khi cần kiểm tra lỗi cú pháp.
  • C. Khi cần theo dõi luồng thực thi chương trình và giá trị biến tại thời điểm xảy ra lỗi, đặc biệt với lỗi logic phức tạp.
  • D. Khi muốn thay đổi giao diện người dùng của chương trình.

Câu 23: Giả sử bạn viết hàm tính trung bình cộng của một danh sách số. Nếu danh sách đầu vào rỗng, điều gì nên xảy ra để chương trình hoạt động một cách "robust" (mạnh mẽ, ổn định)?

  • A. Chương trình nên phát sinh lỗi ZeroDivisionError.
  • B. Hàm nên trả về một giá trị đặc biệt (ví dụ: 0 hoặc None) hoặc thông báo lỗi một cách rõ ràng, thay vì gây ra lỗi chương trình.
  • C. Chương trình nên bỏ qua danh sách rỗng và tiếp tục thực hiện các phần khác.
  • D. Hàm nên yêu cầu người dùng nhập lại danh sách khác.

Câu 24: Trong kiểm thử phần mềm, việc "phủ mã" (code coverage) dùng để đo lường điều gì?

  • A. Số lượng lỗi đã được sửa.
  • B. Thời gian cần thiết để kiểm thử toàn bộ chương trình.
  • C. Mức độ dễ đọc và dễ hiểu của mã nguồn.
  • D. Tỷ lệ phần trăm mã nguồn đã được thực thi bởi các bộ kiểm thử.

Câu 25: Cho đoạn mã Python: `x = 5 print(y)`. Lỗi nào sẽ xảy ra và tại sao?

  • A. NameError vì biến "y" chưa được định nghĩa.
  • B. TypeError vì không thể in biến số.
  • C. SyntaxError vì câu lệnh print sai cú pháp.
  • D. Không có lỗi nào xảy ra.

Câu 26: Khi bạn thực hiện kiểm thử hồi quy (regression testing), mục đích chính là gì?

  • A. Kiểm tra hiệu suất của chương trình sau khi tối ưu hóa mã.
  • B. Đảm bảo rằng các thay đổi hoặc sửa lỗi mới không gây ra lỗi ở các chức năng đã hoạt động tốt trước đó.
  • C. Kiểm tra tính bảo mật của chương trình.
  • D. Tìm kiếm lỗi cú pháp trước khi biên dịch.

Câu 27: Trong quá trình phát triển phần mềm, việc kiểm thử sớm và thường xuyên (shift-left testing) mang lại lợi ích gì?

  • A. Giảm thời gian phát triển phần mềm.
  • B. Tăng độ phức tạp của mã nguồn.
  • C. Phát hiện lỗi sớm hơn, giảm chi phí sửa lỗi và nâng cao chất lượng phần mềm.
  • D. Chỉ phù hợp với các dự án nhỏ.

Câu 28: Bạn nhận được yêu cầu kiểm thử một chức năng đăng nhập của ứng dụng web. Những trường hợp kiểm thử nào sau đây là quan trọng nhất cần thực hiện?

  • A. Kiểm tra tốc độ phản hồi của hệ thống khi đăng nhập thành công.
  • B. Kiểm tra giao diện người dùng của trang đăng nhập.
  • C. Kiểm tra khả năng chịu tải của hệ thống khi có nhiều người dùng đăng nhập cùng lúc.
  • D. Đăng nhập thành công với tên người dùng và mật khẩu hợp lệ, đăng nhập thất bại với tên người dùng hoặc mật khẩu không hợp lệ, thử các trường hợp biên như tên người dùng/mật khẩu rỗng.

Câu 29: Trong lập trình, thuật ngữ "bug" (lỗi) thường được dùng để chỉ điều gì?

  • A. Một đoạn mã nguồn phức tạp và khó hiểu.
  • B. Một sai sót, khuyết điểm hoặc lỗi trong chương trình máy tính khiến nó hoạt động không đúng như mong đợi.
  • C. Một tính năng ẩn hoặc không được ghi chép trong chương trình.
  • D. Một yêu cầu thay đổi chức năng của phần mềm từ phía người dùng.

Câu 30: Nếu chương trình chạy ra kết quả không đúng như mong đợi, nhưng không báo lỗi, loại lỗi nào có khả năng cao nhất đã xảy ra?

  • A. Lỗi cú pháp (Syntax error)
  • B. Lỗi thời gian chạy (Runtime error)
  • C. Lỗi logic (Logical error)
  • D. Lỗi biên dịch (Compilation error)

1 / 30

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

Tags: Bộ đề 10

Câu 1: Mục tiêu chính của việc kiểm thử chương trình là gì?

2 / 30

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

Tags: Bộ đề 10

Câu 2: Trong quy trình phát triển phần mềm, giai đoạn kiểm thử thường diễn ra vào thời điểm nào?

3 / 30

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

Tags: Bộ đề 10

Câu 3: Loại lỗi nào sau đây thường được phát hiện bởi trình biên dịch (compiler) trước khi chương trình được thực thi?

4 / 30

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

Tags: Bộ đề 10

Câu 4: Khi chương trình đang chạy và gặp phải lỗi chia cho 0, loại lỗi nào đã xảy ra?

5 / 30

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

Tags: Bộ đề 10

Câu 5: Phương pháp kiểm thử 'hộp đen' (black-box testing) tập trung vào khía cạnh nào của chương trình?

6 / 30

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

Tags: Bộ đề 10

Câu 6: Kỹ thuật 'in vết' (print debugging) thường được sử dụng để làm gì trong quá trình gỡ lỗi?

7 / 30

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

Tags: Bộ đề 10

Câu 7: Phát biểu nào sau đây mô tả đúng nhất về 'điểm dừng' (breakpoint) trong môi trường phát triển tích hợp (IDE)?

8 / 30

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

Tags: Bộ đề 10

Câu 8: Xét đoạn mã Python sau: `def chia(a, b): return a / b`. Điều gì xảy ra khi gọi `chia(10, 0)`?

9 / 30

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

Tags: Bộ đề 10

Câu 9: Trong tình huống nào thì lỗi 'IndexError' thường xảy ra trong Python?

10 / 30

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

Tags: Bộ đề 10

Câu 10: Để kiểm tra tính đúng đắn của hàm tính giai thừa, bạn nên thiết kế bộ dữ liệu kiểm thử (test data) như thế nào?

11 / 30

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

Tags: Bộ đề 10

Câu 11: Lỗi logic (logical error) trong chương trình là gì?

12 / 30

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

Tags: Bộ đề 10

Câu 12: Trong quá trình gỡ lỗi, khi bạn đã xác định được vị trí lỗi nhưng chưa hiểu rõ nguyên nhân, bước tiếp theo hiệu quả nhất là gì?

13 / 30

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

Tags: Bộ đề 10

Câu 13: Xét đoạn mã Python: `age = input("Nhập tuổi: ") if age > 18: print("Đủ tuổi")`. Đoạn mã này có thể phát sinh lỗi gì khi thực thi?

14 / 30

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

Tags: Bộ đề 10

Câu 14: Để kiểm thử một hàm nhận vào một số nguyên và trả về 'True' nếu số đó là số chẵn, 'False' nếu lẻ, trường hợp kiểm thử biên (boundary test case) nào quan trọng nhất?

15 / 30

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

Tags: Bộ đề 10

Câu 15: Khi gặp thông báo lỗi 'NameError: name 'xyz' is not defined' trong Python, điều này có nghĩa là gì?

16 / 30

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

Tags: Bộ đề 10

Câu 16: Giả sử bạn có một chương trình tính tổng các số trong một danh sách. Để kiểm thử chương trình này một cách toàn diện, bạn cần chuẩn bị những loại bộ dữ liệu kiểm thử nào?

17 / 30

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

Tags: Bộ đề 10

Câu 17: Trong quá trình gỡ lỗi, 'rubber duck debugging' là kỹ thuật gì?

18 / 30

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

Tags: Bộ đề 10

Câu 18: Phát biểu nào sau đây về kiểm thử và gỡ lỗi là chính xác?

19 / 30

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

Tags: Bộ đề 10

Câu 19: Cho đoạn mã Python: `numbers = [1, 2, 3] print(numbers[3])`. Đoạn mã này sẽ gây ra lỗi gì?

20 / 30

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

Tags: Bộ đề 10

Câu 20: Để giảm thiểu lỗi trong quá trình phát triển phần mềm, biện pháp phòng ngừa nào hiệu quả nhất?

21 / 30

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

Tags: Bộ đề 10

Câu 21: Trong kiểm thử phần mềm, 'test case' (trường hợp kiểm thử) là gì?

22 / 30

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

Tags: Bộ đề 10

Câu 22: Khi nào thì việc sử dụng công cụ gỡ lỗi (debugger) trở nên đặc biệt hữu ích?

23 / 30

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

Tags: Bộ đề 10

Câu 23: Giả sử bạn viết hàm tính trung bình cộng của một danh sách số. Nếu danh sách đầu vào rỗng, điều gì nên xảy ra để chương trình hoạt động một cách 'robust' (mạnh mẽ, ổn định)?

24 / 30

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

Tags: Bộ đề 10

Câu 24: Trong kiểm thử phần mềm, việc 'phủ mã' (code coverage) dùng để đo lường điều gì?

25 / 30

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

Tags: Bộ đề 10

Câu 25: Cho đoạn mã Python: `x = 5 print(y)`. Lỗi nào sẽ xảy ra và tại sao?

26 / 30

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

Tags: Bộ đề 10

Câu 26: Khi bạn thực hiện kiểm thử hồi quy (regression testing), mục đích chính là gì?

27 / 30

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

Tags: Bộ đề 10

Câu 27: Trong quá trình phát triển phần mềm, việc kiểm thử sớm và thường xuyên (shift-left testing) mang lại lợi ích gì?

28 / 30

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

Tags: Bộ đề 10

Câu 28: Bạn nhận được yêu cầu kiểm thử một chức năng đăng nhập của ứng dụng web. Những trường hợp kiểm thử nào sau đây là quan trọng nhất cần thực hiện?

29 / 30

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

Tags: Bộ đề 10

Câu 29: Trong lập trình, thuật ngữ 'bug' (lỗi) thường được dùng để chỉ điều gì?

30 / 30

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

Tags: Bộ đề 10

Câu 30: Nếu chương trình chạy ra kết quả không đúng như mong đợi, nhưng không báo lỗi, loại lỗi nào có khả năng cao nhất đã xảy ra?

Xem kết quả