Đề Trắc nghiệm Tin 10 – Cánh diều – Bài 16: 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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 01

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 01 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi lập trình, việc chương trình dừng đột ngột và hiển thị thông báo lỗi "SyntaxError: invalid syntax" cho biết loại lỗi nào đang xảy ra?

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

Câu 2: Xem đoạn mã Python sau: `a = int(input(

  • A. Một số nguyên dương
  • B. Một số nguyên âm
  • C. Số 0
  • D. Một số thực khác 0

Câu 3: Chương trình Python sau được viết để tính tổng hai số nhập từ bàn phím: `so1 = float(input(

  • A. Lỗi ngữ nghĩa (Semantic Error)
  • B. Lỗi cú pháp (Syntax Error)
  • C. Lỗi ngoại lệ (Exception Error)
  • D. Không có lỗi

Câu 4: Quá trình chạy chương trình với các bộ dữ liệu kiểm thử khác nhau để tìm ra các lỗi và đảm bảo chương trình hoạt động đúng được gọi là gì?

  • A. Biên dịch (Compilation)
  • B. Gỡ lỗi (Debugging)
  • C. Thiết kế thuật toán (Algorithm Design)
  • D. Kiểm thử chương trình (Testing)

Câu 5: Công cụ nào trong môi trường lập trình giúp người lập trình chạy chương trình từng bước, tạm dừng tại điểm mong muốn và xem giá trị hiện tại của các biến?

  • A. Công cụ gỡ lỗi (Debugger)
  • B. Trình biên dịch (Compiler)
  • C. Trình soạn thảo mã nguồn (Code Editor)
  • D. Thư viện chuẩn (Standard Library)

Câu 6: Khi kiểm thử một chương trình tính toán, việc sử dụng các giá trị ở ranh giới (ví dụ: giá trị nhỏ nhất, giá trị lớn nhất có thể) thuộc nhóm dữ liệu kiểm thử nào?

  • A. Trường hợp thông thường
  • B. Trường hợp đặc biệt/giới hạn
  • C. Trường hợp ngẫu nhiên
  • D. Trường hợp không hợp lệ

Câu 7: Đâu là một kỹ thuật hiệu quả để tìm lỗi ngữ nghĩa trong một chương trình phức tạp?

  • A. Chỉ đọc lại mã nguồn một cách nhanh chóng
  • B. Thay đổi ngẫu nhiên các dòng mã
  • C. Chạy chương trình chỉ với một bộ dữ liệu kiểm thử
  • D. Truy vết thực hiện chương trình bằng cách in giá trị biến hoặc sử dụng debugger

Câu 8: Lỗi nào sau đây thường được phát hiện dễ dàng nhất bởi môi trường lập trình 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ệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic Error)
  • D. Lỗi logic (Logic Error)

Câu 9: Mục đích chính của việc đặt các điểm dừng (breakpoints) khi sử dụng công cụ gỡ lỗi (debugger) là gì?

  • A. Tự động sửa lỗi tại dòng mã đó
  • B. Bỏ qua việc thực thi dòng mã đó
  • C. Tạm dừng chương trình tại dòng mã đó để kiểm tra trạng thái
  • D. Tăng tốc độ thực thi chương trình

Câu 10: Khi một chương trình Python cố gắng truy cập vào một phần tử của danh sách (list) bằng một chỉ số (index) nằm ngoài phạm vi cho phép (ví dụ: list có 5 phần tử, truy cập phần tử thứ 10), loại lỗi nào sẽ xảy ra?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngữ nghĩa (Semantic Error)
  • C. Không có lỗi
  • D. Lỗi ngoại lệ (Exception Error)

Câu 11: Giả sử bạn viết một chương trình tính điểm trung bình. Bạn đã kiểm thử với điểm số hợp lệ và chương trình chạy đúng. Để kiểm thử toàn diện hơn, bạn nên chuẩn bị bộ dữ liệu kiểm thử nào tiếp theo?

  • A. Điểm số không hợp lệ (ví dụ: số âm, chuỗi ký tự)
  • B. Chỉ sử dụng lại điểm số đã kiểm thử
  • C. Chỉ kiểm thử với một số lượng lớn điểm số
  • D. Không cần kiểm thử thêm vì đã chạy đúng với điểm hợp lệ

Câu 12: Đâu là đặc điểm phân biệt chính giữa lỗi ngoại lệ (Exception Error) và lỗi ngữ nghĩa (Semantic Error)?

  • A. Lỗi ngoại lệ dễ sửa hơn lỗi ngữ nghĩa.
  • B. Lỗi ngoại lệ làm dừng chương trình khi chạy, còn lỗi ngữ nghĩa không làm dừng chương trình nhưng cho kết quả sai.
  • C. Lỗi ngoại lệ chỉ xảy ra ở Python, còn lỗi ngữ nghĩa xảy ra ở mọi ngôn ngữ.
  • D. Lỗi ngoại lệ do sai cú pháp, còn lỗi ngữ nghĩa do sai logic.

Câu 13: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác "Step Over" (bước qua) có ý nghĩa gì?

  • A. Thực hiện từng dòng lệnh bên trong một hàm hoặc thủ tục.
  • B. Chạy chương trình đến điểm dừng tiếp theo hoặc kết thúc.
  • C. Thực hiện toàn bộ một lời gọi hàm hoặc một khối lệnh và dừng lại ở dòng tiếp theo.
  • D. Thoát khỏi hàm hoặc thủ tục hiện tại.

Câu 14: Bạn viết một chương trình sắp xếp danh sách các số. Khi kiểm thử với danh sách rỗng `[]`, chương trình bị lỗi. Bộ dữ liệu `[]` thuộc nhóm dữ liệu kiểm thử nào?

  • A. Trường hợp thông thường
  • B. Trường hợp đặc biệt/giới hạn
  • C. Trường hợp ngẫu nhiên
  • D. Trường hợp không hợp lệ

Câu 15: Đâu là một lý do quan trọng để kiểm thử chương trình với các bộ dữ liệu có kích thước lớn?

  • A. Để tìm lỗi cú pháp dễ dàng hơn.
  • B. Để chương trình chạy nhanh hơn.
  • C. Để kiểm tra hiệu năng và khả năng xử lý dữ liệu lớn của chương trình.
  • D. Để giảm số lượng lỗi ngoại lệ.

Câu 16: Khi nào thì lỗi ngoại lệ (Exception Error) xảy ra?

  • A. Trước khi chương trình bắt đầu chạy (khi biên dịch/thông dịch)
  • B. Trong quá trình chương trình đang chạy (runtime)
  • C. Sau khi chương trình đã chạy xong
  • D. Chỉ khi chương trình có lỗi cú pháp

Câu 17: Phương pháp gỡ lỗi nào đòi hỏi người lập trình phải tư duy logic, suy luận từ kết quả sai để xác định nguyên nhân gốc rễ của vấn đề trong mã nguồn?

  • A. Phân tích và suy luận
  • B. Chỉ dựa vào thông báo lỗi tự động
  • C. Xóa bỏ ngẫu nhiên các phần của chương trình
  • D. Viết lại toàn bộ chương trình

Câu 18: Xem đoạn mã Python sau: `x = 10; y = 0; if y > 0: z = x / y; print(z)`. Khi chạy đoạn mã này, điều gì sẽ xảy ra?

  • A. Xảy ra lỗi ngoại lệ ZeroDivisionError
  • B. Xảy ra lỗi cú pháp
  • C. Xảy ra lỗi ngữ nghĩa
  • D. Chương trình chạy bình thường và không in ra gì cả

Câu 19: Khi kiểm thử một chương trình xử lý dữ liệu đầu vào từ người dùng, việc sử dụng các bộ dữ liệu không hợp lệ (ví dụ: nhập chữ khi chương trình yêu cầu số, nhập số ngoài phạm vi cho phép) thuộc nhóm dữ liệu kiểm thử nào?

  • A. Trường hợp thông thường
  • B. Trường hợp đặc biệt/giới hạn
  • C. Trường hợp không hợp lệ
  • D. Trường hợp có kích thước lớn

Câu 20: Trong quá trình gỡ lỗi, việc đặt điểm dừng (breakpoint) tại một dòng lệnh cụ thể và sau đó sử dụng "Step Into" (bước vào) khi gặp lời gọi hàm có ý nghĩa gì?

  • A. Thực hiện từng dòng lệnh bên trong hàm được gọi.
  • B. Thực hiện toàn bộ hàm được gọi mà không đi sâu vào.
  • C. Bỏ qua việc thực thi hàm được gọi.
  • D. Chạy đến dòng lệnh tiếp theo sau hàm được gọi.

Câu 21: Đâu là mục tiêu chính của việc gỡ lỗi (debugging)?

  • A. Thiết kế giao diện người dùng.
  • B. Tìm và sửa các lỗi trong chương trình.
  • C. Viết mã nguồn chương trình.
  • D. Tăng tốc độ gõ mã.

Câu 22: Nếu chương trình của bạn chạy mà không báo lỗi cú pháp hay ngoại lệ, nhưng kết quả tính toán luôn sai với mọi bộ dữ liệu đầu vào hợp lệ, khả năng cao chương trình đang mắc loại lỗi nào?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic Error)
  • D. Không có lỗi

Câu 23: Khi kiểm thử một chương trình, việc tạo ra các bộ dữ liệu kiểm thử đa dạng, bao gồm trường hợp thông thường, đặc biệt và không hợp lệ, nhằm mục đích gì?

  • A. Chỉ để làm cho quá trình kiểm thử phức tạp hơn.
  • B. Chỉ để kiểm tra tốc độ xử lý của chương trình.
  • C. Chỉ để tìm lỗi ngoại lệ.
  • D. Đảm bảo chương trình hoạt động đúng và ổn định trong nhiều tình huống khác nhau.

Câu 24: Xem đoạn mã Python sau: `count = 0; while count < 5: print(count); count += 1`. Khi chạy đoạn mã này, kết quả in ra màn hình là gì?

  • A. 0 1 2 3 4 5
  • B. 0 1 2 3 4
  • C. 1 2 3 4 5
  • D. Chương trình chạy vô hạn (lặp vô tận)

Câu 25: Trong quá trình gỡ lỗi, việc sử dụng "print" hoặc các lệnh xuất dữ liệu tương tự để hiển thị giá trị biến tại các điểm khác nhau trong chương trình là một hình thức của kỹ thuật nào?

  • A. Truy vết thủ công (Manual Tracing)
  • B. Kiểm thử tự động (Automated Testing)
  • C. Phân tích cú pháp (Syntax Analysis)
  • D. Tối ưu hóa mã nguồn (Code Optimization)

Câu 26: Lỗi nào sau đây thường không được phát hiện bởi trình biên dịch/thông dịch hay gây dừng chương trình đột ngột, mà chỉ được nhận biết thông qua việc quan sát kết quả đầu ra sai so với mong đợi?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic Error)
  • D. Lỗi hệ thống (System Error)

Câu 27: Khi bạn đã xác định được một lỗi 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. Viết thêm tính năng mới.
  • B. Phân tích nguyên nhân gốc rễ của lỗi.
  • C. Bỏ qua lỗi và tiếp tục viết code.
  • D. Chạy lại chương trình với cùng dữ liệu kiểm thử.

Câu 28: Công cụ gỡ lỗi (debugger) giúp người lập trình quan sát được những thông tin gì trong quá trình chương trình đang chạy?

  • A. Chỉ có giá trị của các biến.
  • B. Chỉ có dòng lệnh đang được thực thi.
  • C. Chỉ có dung lượng bộ nhớ đã sử dụng.
  • D. Cả dòng lệnh đang được thực thi và giá trị của các biến.

Câu 29: Khi kiểm thử một chương trình xử lý văn bản, việc sử dụng một chuỗi rỗng (

  • A. Trường hợp thông thường
  • B. Trường hợp đặc biệt/giới hạn
  • C. Trường hợp ngẫu nhiên
  • D. Trường hợp không hợp lệ

Câu 30: Đâu là bước cuối cùng (hoặc lặp lại) trong quy trình kiểm thử và gỡ lỗi chương trình?

  • A. Kiểm thử lại chương trình để xác nhận lỗi đã được sửa.
  • B. Bỏ qua lỗi và chuyển sang tính năng tiếp theo.
  • C. Chỉ kiểm thử với bộ dữ liệu mới.
  • D. Viết tài liệu hướng dẫn sử dụng cho người dùng.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 1: Khi lập trình, việc chương trình dừng đột ngột và hiển thị thông báo lỗi 'SyntaxError: invalid syntax' cho biết loại lỗi nào đang xảy ra?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 2: Xem đoạn mã Python sau: `a = int(input("Nhap so nguyen a: ")); b = int(input("Nhap so nguyen b: ")); ket_qua = a / b; print("Ket qua phep chia:", ket_qua)`. Lỗi ngoại lệ (Exception Error) có khả năng xảy ra khi người dùng nhập giá trị nào cho biến `b`?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 3: Chương trình Python sau được viết để tính tổng hai số nhập từ bàn phím: `so1 = float(input("Nhap so thu nhat: ")); so2 = float(input("Nhap so thu hai: ")); tong = so1 - so2; print("Tong hai so la:", tong)`. Khi chạy với `so1=5` và `so2=3`, chương trình không báo lỗi nhưng kết quả in ra là 2 thay vì 8. Đây là loại lỗi nào?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 4: Quá trình chạy chương trình với các bộ dữ liệu kiểm thử khác nhau để tìm ra các lỗi và đảm bảo chương trình hoạt động đúng được gọi là gì?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 5: Công cụ nào trong môi trường lập trình giúp người lập trình chạy chương trình từng bước, tạm dừng tại điểm mong muốn và xem giá trị hiện tại của các biến?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 6: Khi kiểm thử một chương trình tính toán, việc sử dụng các giá trị ở ranh giới (ví dụ: giá trị nhỏ nhất, giá trị lớn nhất có thể) thuộc nhóm dữ liệu kiểm thử nào?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 7: Đâu là một kỹ thuật hiệu quả để tìm lỗi ngữ nghĩa trong một chương trình phức tạp?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 8: Lỗi nào sau đây thường được phát hiện dễ dàng nhất bởi môi trường lập trình ngay trước khi chương trình bắt đầu chạy?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 9: Mục đích chính của việc đặt các điểm dừng (breakpoints) khi sử dụng công cụ gỡ lỗi (debugger) là gì?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 10: Khi một chương trình Python cố gắng truy cập vào một phần tử của danh sách (list) bằng một chỉ số (index) nằm ngoài phạm vi cho phép (ví dụ: list có 5 phần tử, truy cập phần tử thứ 10), loại lỗi nào sẽ xảy ra?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 11: Giả sử bạn viết một chương trình tính điểm trung bình. Bạn đã kiểm thử với điểm số hợp lệ và chương trình chạy đúng. Để kiểm thử toàn diện hơn, bạn nên chuẩn bị bộ dữ liệu kiểm thử nào tiếp theo?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 12: Đâu là đặc điểm phân biệt chính giữa lỗi ngoại lệ (Exception Error) và lỗi ngữ nghĩa (Semantic Error)?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 13: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác 'Step Over' (bước qua) có ý nghĩa gì?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 14: Bạn viết một chương trình sắp xếp danh sách các số. Khi kiểm thử với danh sách rỗng `[]`, chương trình bị lỗi. Bộ dữ liệu `[]` thuộc nhóm dữ liệu kiểm thử nào?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 15: Đâu là một lý do quan trọng để kiểm thử chương trình với các bộ dữ liệu có kích thước lớn?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 16: Khi nào thì lỗi ngoại lệ (Exception Error) xảy ra?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 17: Phương pháp gỡ lỗi nào đòi hỏi người lập trình phải tư duy logic, suy luận từ kết quả sai để xác định nguyên nhân gốc rễ của vấn đề trong mã nguồn?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 18: Xem đoạn mã Python sau: `x = 10; y = 0; if y > 0: z = x / y; print(z)`. Khi chạy đoạn mã này, điều gì sẽ xảy ra?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 19: Khi kiểm thử một chương trình xử lý dữ liệu đầu vào từ người dùng, việc sử dụng các bộ dữ liệu không hợp lệ (ví dụ: nhập chữ khi chương trình yêu cầu số, nhập số ngoài phạm vi cho phép) thuộc nhóm dữ liệu kiểm thử nào?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 20: Trong quá trình gỡ lỗi, việc đặt điểm dừng (breakpoint) tại một dòng lệnh cụ thể và sau đó sử dụng 'Step Into' (bước vào) khi gặp lời gọi hàm có ý nghĩa gì?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 21: Đâu là mục tiêu chính của việc gỡ lỗi (debugging)?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 22: Nếu chương trình của bạn chạy mà không báo lỗi cú pháp hay ngoại lệ, nhưng kết quả tính toán luôn sai với mọi bộ dữ liệu đầu vào hợp lệ, khả năng cao chương trình đang mắc loại lỗi nào?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 23: Khi kiểm thử một chương trình, việc tạo ra các bộ dữ liệu kiểm thử đa dạng, bao gồm trường hợp thông thường, đặc biệt và không hợp lệ, nhằm mục đích gì?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 24: Xem đoạn mã Python sau: `count = 0; while count < 5: print(count); count += 1`. Khi chạy đoạn mã này, kết quả in ra màn hình là gì?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 25: Trong quá trình gỡ lỗi, việc sử dụng 'print' hoặc các lệnh xuất dữ liệu tương tự để hiển thị giá trị biến tại các điểm khác nhau trong chương trình là một hình thức của kỹ thuật nào?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 26: Lỗi nào sau đây thường không được phát hiện bởi trình biên dịch/thông dịch hay gây dừng chương trình đột ngột, mà chỉ được nhận biết thông qua việc quan sát kết quả đầu ra sai so với mong đợi?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 27: Khi bạn đã xác định được một lỗi trong chương trình, bước tiếp theo quan trọng nhất trong quy trình gỡ lỗi là gì?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 28: Công cụ gỡ lỗi (debugger) giúp người lập trình quan sát được những thông tin gì trong quá trình chương trình đang chạy?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 29: Khi kiểm thử một chương trình xử lý văn bản, việc sử dụng một chuỗi rỗng (" ") làm dữ liệu đầu vào thuộc nhóm dữ liệu kiểm thử nào?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 01

Câu 30: Đâu là bước cuối cùng (hoặc lặp lại) trong quy trình kiểm thử và gỡ lỗi chương trình?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 02

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 02 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong lập trình, loại lỗi nào thường được trình biên dịch (compiler) hoặc trình thông dịch (interpreter) phát hiện ngay trước khi chương trình bắt đầu chạy hoặc trong quá trình dịch?

  • 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 phần cứng (Hardware Error)

Câu 2: Đoạn mã Python sau sẽ gây ra loại lỗi nào? `print(

  • 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. Không có lỗi

Câu 3: Lỗi ngoại lệ (Runtime Error/Exception) xảy ra khi nào?

  • A. Khi viết sai cú pháp lệnh.
  • B. Trong khi chương trình đang thực thi và gặp phải một tình huống bất thường (ví dụ: chia cho 0).
  • C. Khi chương trình chạy đúng nhưng cho kết quả sai.
  • D. Khi lưu tệp chương trình không thành công.

Câu 4: Xét đoạn mã Python sau: `a = 10
b = 0
c = a / b
print(c)`. Khi chạy đoạn mã này, loại lỗi nào sẽ xảy ra?

  • 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. Không có lỗi

Câu 5: Lỗi ngữ nghĩa (Semantic/Logic Error) là loại lỗi gì và đặc điểm nhận biết của nó?

  • A. Là lỗi vi phạm quy tắc viết lệnh, ngăn chương trình chạy.
  • B. Là lỗi xảy ra khi chương trình đang chạy và dừng đột ngột.
  • C. Là lỗi chương trình vẫn chạy bình thường nhưng kết quả đầu ra không chính xác.
  • D. Là lỗi do bộ nhớ máy tính bị đầy.

Câu 6: Một chương trình tính diện tích hình chữ nhật theo công thức `S = (dai + rong) * 2`. Khi chạy với `dai = 5`, `rong = 3`, chương trình in ra kết quả là `16`. Đây là ví dụ về loại lỗi nào?

  • 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. Không có lỗi

Câu 7: So với lỗi cú pháp và lỗi ngoại lệ, lỗi ngữ nghĩa thường khó phát hiện và sửa chữa hơn vì:

  • A. Chúng luôn được trình biên dịch bỏ qua.
  • B. Chúng chỉ xuất hiện trên một số hệ điều hành nhất định.
  • C. Chúng làm chương trình dừng đột ngột mà không có thông báo lỗi.
  • D. Chương trình vẫn chạy và không báo lỗi, chỉ cho kết quả sai, đòi hỏi kiểm tra bằng dữ liệu thử nghiệm.

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

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

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

  • A. Phát hiện ra các lỗi (cú pháp, ngoại lệ, ngữ nghĩa) trong chương trình.
  • B. Biến đổi mã nguồn thành mã máy.
  • C. Chạy chương trình với tốc độ cao nhất.
  • D. Làm cho mã nguồn ngắn gọn hơn.

Câu 10: Khi kiểm thử chương trình, việc tạo ra các bộ dữ liệu thử nghiệm khác nhau là cần thiết để:

  • A. Làm cho quá trình kiểm thử nhanh hơn.
  • B. Chỉ kiểm tra các trường hợp chương trình chạy đúng.
  • C. Giảm bớt số lượng câu lệnh trong chương trình.
  • D. Kiểm tra chương trình trong nhiều tình huống khác nhau, bao gồm cả các trường hợp đặc biệt hoặc bất thường.

Câu 11: Để kiểm thử chương trình một cách hiệu quả, người ta thường phân loại dữ liệu thử nghiệm thành các nhóm chính nào?

  • A. Dữ liệu số nguyên, dữ liệu số thực, dữ liệu chuỗi.
  • B. Dữ liệu thông thường, dữ liệu đặc biệt/biên, dữ liệu có kích thước lớn.
  • C. Dữ liệu đầu vào, dữ liệu trung gian, dữ liệu đầu ra.
  • D. Dữ liệu hợp lệ, dữ liệu không hợp lệ.

Câu 12: Khi kiểm thử một chương trình xử lý các giá trị trong một phạm vi nhất định (ví dụ: từ 1 đến 100), bộ dữ liệu nào sau đây được coi là dữ liệu đặc biệt (biên)?

  • A. Các giá trị ngẫu nhiên trong khoảng từ 2 đến 99.
  • B. Các giá trị âm hoặc lớn hơn 100.
  • C. Các giá trị 1 và 100.
  • D. Các giá trị chuỗi ký tự.

Câu 13: Tại sao việc kiểm thử chương trình với các bộ dữ liệu có kích thước lớn lại quan trọng?

  • A. Để kiểm tra hiệu suất và khả năng xử lý của chương trình với khối lượng dữ liệu thực tế.
  • B. Để tìm lỗi cú pháp mà trình biên dịch bỏ qua.
  • C. Để làm cho chương trình chạy chậm lại và dễ quan sát hơn.
  • D. Để giảm thiểu số lượng lỗi ngoại lệ.

Câu 14: Kỹ thuật gỡ lỗi nào giúp theo dõi sự thay đổi giá trị của các biến từng bước một khi chương trình đang chạy?

  • A. Đọc lại toàn bộ mã nguồn.
  • B. Chạy chương trình nhiều lần với cùng một dữ liệu.
  • C. Thay đổi ngẫu nhiên các câu lệnh.
  • D. Sử dụng công cụ gỡ lỗi (debugger) để chạy từng bước và xem giá trị biến.

Câu 15: Trong quá trình gỡ lỗi, việc thêm các câu lệnh `print` (hoặc tương đương trong ngôn ngữ khác) vào chương trình để hiển thị giá trị của các biến tại các điểm khác nhau được gọi là kỹ thuật gì?

  • A. Truy vết (Tracing) hoặc In gỡ lỗi (Print Debugging)
  • B. Biên dịch lại (Re-compiling)
  • C. Kiểm thử tự động (Automated Testing)
  • D. Tối ưu hóa mã nguồn (Code Optimization)

Câu 16: Công cụ nào trong môi trường phát triển tích hợp (IDE) thường được sử dụng để thiết lập điểm dừng (breakpoint) và chạy chương trình từng bước?

  • A. Trình soạn thảo mã nguồn (Code Editor)
  • B. Trình biên dịch/thông dịch (Compiler/Interpreter)
  • C. Công cụ gỡ lỗi (Debugger)
  • D. Trình quản lý dự án (Project Manager)

Câu 17: Khi sử dụng công cụ gỡ lỗi, "điểm dừng" (breakpoint) có chức năng gì?

  • A. Đánh dấu các dòng mã bị lỗi.
  • B. Tạm dừng quá trình thực thi chương trình tại dòng mã đó.
  • C. Tự động sửa lỗi tại dòng mã đó.
  • D. Bỏ qua việc thực thi dòng mã đó.

Câu 18: Một chương trình được thiết kế để tính trung bình cộng của ba số dương. Khi nhập (-1, 5, 10), chương trình chạy và cho ra kết quả là 4.66... Đây là ví dụ về việc kiểm thử với loại dữ liệu nào để phát hiện lỗi?

  • A. Dữ liệu thông thường.
  • B. Dữ liệu có kích thước lớn.
  • C. Dữ liệu biên.
  • D. Dữ liệu không hợp lệ theo yêu cầu bài toán.

Câu 19: Phát biểu nào sau đây mô tả đúng nhất về mối quan hệ giữa kiểm thử (testing) và gỡ lỗi (debugging)?

  • A. Kiểm thử và gỡ lỗi là hai tên gọi khác nhau của cùng một quá trình.
  • B. Gỡ lỗi luôn được thực hiện trước kiểm thử.
  • C. Kiểm thử giúp phát hiện lỗi, gỡ lỗi giúp tìm nguyên nhân và sửa lỗi đó.
  • D. Chỉ cần kiểm thử là đủ, không cần gỡ lỗi.

Câu 20: Khi gặp một lỗi ngoại lệ trong chương trình Python, thông báo lỗi (traceback) thường cung cấp những thông tin hữu ích nào để gỡ lỗi?

  • A. Chỉ hiển thị tên của lỗi.
  • B. Đề xuất cách sửa lỗi tự động.
  • C. Chỉ hiển thị kết quả mong muốn của chương trình.
  • D. Loại lỗi, dòng mã gây ra lỗi, và chuỗi các hàm đã được gọi (traceback).

Câu 21: Giả sử bạn viết một chương trình yêu cầu người dùng nhập số tuổi. Nếu người dùng nhập vào một chuỗi ký tự thay vì số, loại lỗi nào có khả năng xảy ra khi chương trình cố gắng chuyển đổi dữ liệu nhập sang kiểu số nguyên?

  • A. Lỗi cú pháp.
  • B. Lỗi ngoại lệ (ví dụ: ValueError).
  • C. Lỗi ngữ nghĩa.
  • D. Không có lỗi, chương trình sẽ tự động xử lý.

Câu 22: Tại sao việc đọc kỹ và hiểu rõ yêu cầu bài toán trước khi viết mã nguồn lại giúp giảm thiểu lỗi ngữ nghĩa?

  • A. Giúp xây dựng logic chương trình chính xác, phù hợp với mục tiêu.
  • B. Giúp trình biên dịch phát hiện lỗi dễ hơn.
  • C. Giúp chương trình chạy nhanh hơn.
  • D. Giúp tự động sửa lỗi ngoại lệ.

Câu 23: Khi gỡ lỗi một chương trình, chiến lược nào sau đây thường hiệu quả nhất để tìm ra nguyên nhân của lỗi ngữ nghĩa?

  • A. Chỉ chạy chương trình một lần và xem kết quả cuối cùng.
  • B. Thay đổi ngẫu nhiên các dòng mã cho đến khi chương trình chạy đúng.
  • C. Sử dụng các bộ dữ liệu thử nghiệm khác nhau (đặc biệt là dữ liệu biên và đặc biệt) để xác định khi nào lỗi xảy ra.
  • D. Bỏ qua lỗi và hy vọng nó sẽ tự biến mất.

Câu 24: Công cụ gỡ lỗi (debugger) trong Python (ví dụ: thư viện `pdb`) cho phép người lập trình thực hiện những thao tác nào sau đây?

  • A. Tự động sửa tất cả các lỗi trong mã nguồn.
  • B. Chỉ chạy chương trình với tốc độ tối đa.
  • C. Chỉ phát hiện lỗi cú pháp.
  • D. Đặt điểm dừng, chạy từng bước lệnh, xem và thay đổi giá trị biến.

Câu 25: Giả sử bạn đang gỡ lỗi một vòng lặp trong chương trình. Bạn muốn kiểm tra giá trị của một biến cụ thể mỗi khi vòng lặp thực hiện một lần. Kỹ thuật gỡ lỗi nào là phù hợp nhất trong trường hợp này?

  • A. Đặt điểm dừng bên trong vòng lặp và xem giá trị biến bằng debugger.
  • B. Xóa toàn bộ vòng lặp.
  • C. Chỉ kiểm tra kết quả cuối cùng sau khi vòng lặp kết thúc.
  • D. Thêm một vòng lặp khác bên ngoài vòng lặp hiện tại.

Câu 26: Khi chương trình của bạn gặp lỗi ngoại lệ và dừng lại với một thông báo lỗi, bước đầu tiên bạn nên làm gì để bắt đầu gỡ lỗi?

  • A. Viết lại toàn bộ chương trình từ đầu.
  • B. Đọc kỹ thông báo lỗi (traceback) để xác định loại lỗi và vị trí xảy ra lỗi.
  • C. Gửi mã nguồn cho bạn bè để họ tìm lỗi giúp.
  • D. Chạy chương trình nhiều lần liên tục.

Câu 27: Tại sao việc kiểm thử với dữ liệu biên (boundary data) lại quan trọng trong việc phát hiện lỗi?

  • A. Dữ liệu biên giúp chương trình chạy nhanh hơn.
  • B. Dữ liệu biên chỉ dùng để kiểm tra lỗi cú pháp.
  • C. Dữ liệu biên dễ nhập hơn dữ liệu thông thường.
  • D. Các lỗi thường xảy ra tại các điểm ranh giới của phạm vi dữ liệu hợp lệ.

Câu 28: Bạn viết một hàm tính giai thừa `n!` cho số nguyên không âm `n`. Khi kiểm thử, bạn nên sử dụng những bộ dữ liệu đặc biệt nào?

  • A. Các số nguyên dương lớn.
  • B. Các số thực.
  • C. Số 0 và số 1.
  • D. Các số nguyên âm.

Câu 29: Khi bạn đã xác định được một lỗi trong chương trình và sửa nó, bước tiếp theo quan trọng trong quy trình gỡ lỗi là gì?

  • A. Kiểm thử lại chương trình, đặc biệt là với bộ dữ liệu đã phát hiện ra lỗi.
  • B. Chuyển sang làm việc khác mà không kiểm thử lại.
  • C. Xóa bỏ tất cả các bộ dữ liệu thử nghiệm cũ.
  • D. Công bố phiên bản cuối cùng của chương trình ngay lập tức.

Câu 30: Phát biểu nào sau đây là KHÔNG đúng về việc kiểm thử và gỡ lỗi?

  • A. Kiểm thử nên được thực hiện trong suốt quá trình phát triển chương trình.
  • B. Gỡ lỗi đòi hỏi sự kiên nhẫn và kỹ năng phân tích.
  • C. Không thể đảm bảo 100% chương trình không có lỗi, nhưng kiểm thử giúp giảm thiểu đáng kể.
  • D. Kiểm thử và gỡ lỗi chỉ cần thực hiện một lần duy nhất sau khi viết xong toàn bộ mã nguồn.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 1: Trong lập trình, loại lỗi nào thường được trình biên dịch (compiler) hoặc trình thông dịch (interpreter) phát hiện ngay trước khi chương trình bắt đầu chạy hoặc trong quá trình dịch?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 2: Đoạn mã Python sau sẽ gây ra loại lỗi nào? `print("Chào mừng đến với lập trình"`

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 3: Lỗi ngoại lệ (Runtime Error/Exception) xảy ra khi nào?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 4: Xét đoạn mã Python sau: `a = 10
b = 0
c = a / b
print(c)`. Khi chạy đoạn mã này, loại lỗi nào sẽ xảy ra?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 5: Lỗi ngữ nghĩa (Semantic/Logic Error) là loại lỗi gì và đặc điểm nhận biết của nó?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 6: Một chương trình tính diện tích hình chữ nhật theo công thức `S = (dai + rong) * 2`. Khi chạy với `dai = 5`, `rong = 3`, chương trình in ra kết quả là `16`. Đây là ví dụ về loại lỗi nào?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 7: So với lỗi cú pháp và lỗi ngoại lệ, lỗi ngữ nghĩa thường khó phát hiện và sửa chữa hơn vì:

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

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

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

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

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 10: Khi kiểm thử chương trình, việc tạo ra các bộ dữ liệu thử nghiệm khác nhau là cần thiết để:

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 11: Để kiểm thử chương trình một cách hiệu quả, người ta thường phân loại dữ liệu thử nghiệm thành các nhóm chính nào?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 12: Khi kiểm thử một chương trình xử lý các giá trị trong một phạm vi nhất định (ví dụ: từ 1 đến 100), bộ dữ liệu nào sau đây được coi là dữ liệu đặc biệt (biên)?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 13: Tại sao việc kiểm thử chương trình với các bộ dữ liệu có kích thước lớn lại quan trọng?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 14: Kỹ thuật gỡ lỗi nào giúp theo dõi sự thay đổi giá trị của các biến từng bước một khi chương trình đang chạy?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 15: Trong quá trình gỡ lỗi, việc thêm các câu lệnh `print` (hoặc tương đương trong ngôn ngữ khác) vào chương trình để hiển thị giá trị của các biến tại các điểm khác nhau được gọi là kỹ thuật gì?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 16: Công cụ nào trong môi trường phát triển tích hợp (IDE) thường được sử dụng để thiết lập điểm dừng (breakpoint) và chạy chương trình từng bước?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 17: Khi sử dụng công cụ gỡ lỗi, 'điểm dừng' (breakpoint) có chức năng gì?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 18: Một chương trình được thiết kế để tính trung bình cộng của ba số dương. Khi nhập (-1, 5, 10), chương trình chạy và cho ra kết quả là 4.66... Đây là ví dụ về việc kiểm thử với loại dữ liệu nào để phát hiện lỗi?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 19: Phát biểu nào sau đây mô tả đúng nhất về mối quan hệ giữa kiểm thử (testing) và gỡ lỗi (debugging)?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 20: Khi gặp một lỗi ngoại lệ trong chương trình Python, thông báo lỗi (traceback) thường cung cấp những thông tin hữu ích nào để gỡ lỗi?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 21: Giả sử bạn viết một chương trình yêu cầu người dùng nhập số tuổi. Nếu người dùng nhập vào một chuỗi ký tự thay vì số, loại lỗi nào có khả năng xảy ra khi chương trình cố gắng chuyển đổi dữ liệu nhập sang kiểu số nguyên?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 22: Tại sao việc đọc kỹ và hiểu rõ yêu cầu bài toán trước khi viết mã nguồn lại giúp giảm thiểu lỗi ngữ nghĩa?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 23: Khi gỡ lỗi một chương trình, chiến lược nào sau đây thường hiệu quả nhất để tìm ra nguyên nhân của lỗi ngữ nghĩa?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 24: Công cụ gỡ lỗi (debugger) trong Python (ví dụ: thư viện `pdb`) cho phép người lập trình thực hiện những thao tác nào sau đây?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 25: Giả sử bạn đang gỡ lỗi một vòng lặp trong chương trình. Bạn muốn kiểm tra giá trị của một biến cụ thể mỗi khi vòng lặp thực hiện một lần. Kỹ thuật gỡ lỗi nào là phù hợp nhất trong trường hợp này?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 26: Khi chương trình của bạn gặp lỗi ngoại lệ và dừng lại với một thông báo lỗi, bước đầu tiên bạn nên làm gì để bắt đầu gỡ lỗi?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 27: Tại sao việc kiểm thử với dữ liệu biên (boundary data) lại quan trọng trong việc phát hiện lỗi?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 28: Bạn viết một hàm tính giai thừa `n!` cho số nguyên không âm `n`. Khi kiểm thử, bạn nên sử dụng những bộ dữ liệu đặc biệt nào?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 29: Khi bạn đã xác định được một lỗi trong chương trình và sửa nó, bước tiếp theo quan trọng trong quy trình gỡ lỗi là gì?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 02

Câu 30: Phát biểu nào sau đây là KHÔNG đúng về việc kiểm thử và gỡ lỗi?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 03

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 03 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi viết chương trình Python, bạn gõ thiếu dấu hai chấm (:) ở cuối câu lệnh `if`. Khi chạy chương trình, lỗi này sẽ được phát hiện ở giai đoạn nào và thuộc loại lỗi gì?

  • A. Trước khi chương trình chạy (lúc dịch/kiểm tra cú pháp), lỗi cú pháp.
  • B. Trong khi chương trình đang chạy, lỗi ngoại lệ.
  • C. Sau khi chương trình chạy xong với kết quả sai, lỗi ngữ nghĩa.
  • D. Lỗi này không xảy ra trong Python.

Câu 2: Một chương trình Python yêu cầu người dùng nhập vào hai số nguyên `a` và `b`, sau đó tính `c = a / b`. Nếu người dùng nhập `b = 0`, chương trình sẽ dừng đột ngột và báo lỗi. Đây là loại lỗi nào?

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

Câu 3: Bạn viết một chương trình tính diện tích hình chữ nhật với chiều dài `dai` và chiều rộng `rong`. Công thức đúng là `dien_tich = dai * rong`. Tuy nhiên, bạn lại viết nhầm thành `dien_tich = dai + rong`. Chương trình vẫn chạy bình thường nhưng kết quả tính toán luôn sai. Đây là loại lỗi nào?

  • A. Lỗi cú pháp (Syntax Error).
  • B. Lỗi ngoại lệ (Exception Error).
  • C. Lỗi ngữ nghĩa (Semantic Error) hay còn gọi là lỗi logic.
  • D. Lỗi runtime (Runtime Error).

Câu 4: Trong quá trình phát triển phần mềm, việc kiểm thử (testing) chương trình nhằm mục đích chính là gì?

  • A. Chỉ để kiểm tra xem chương trình có chạy được không.
  • B. Để chứng minh chương trình hoàn toàn không có lỗi.
  • C. Để làm cho chương trình chạy nhanh hơn.
  • D. Phát hiện lỗi và đảm bảo chương trình hoạt động đúng với yêu cầu.

Câu 5: Khi kiểm thử chương trình, tại sao cần phải tạo ra các bộ dữ liệu kiểm thử khác nhau, bao gồm trường hợp thường gặp, trường hợp đặc biệt/biên và trường hợp dữ liệu lớn?

  • A. Để kiểm tra chương trình hoạt động đúng trong nhiều điều kiện khác nhau, bao gồm cả các tình huống có khả năng gây lỗi hoặc xử lý chậm.
  • B. Chỉ cần kiểm thử trường hợp thường gặp là đủ.
  • C. Kiểm thử với dữ liệu lớn chỉ cần thiết cho các chương trình tính toán phức tạp.
  • D. Các bộ dữ liệu khác nhau chỉ giúp kiểm tra lỗi cú pháp.

Câu 6: Bạn đang kiểm thử một chương trình sắp xếp danh sách các số nguyên. Danh sách đầu vào là `[5, 2, 8, 1, 9]`. Chương trình trả về `[1, 2, 5, 8, 9]`. Đây là một bộ dữ liệu kiểm thử thuộc loại nào?

  • A. Trường hợp thường gặp (typical case).
  • B. Trường hợp đặc biệt/biên (edge/boundary case).
  • C. Trường hợp dữ liệu lớn (large data case).
  • D. Trường hợp ngoại lệ (exception case).

Câu 7: Bạn kiểm thử chương trình sắp xếp với danh sách đầu vào là `[]` (danh sách rỗng) hoặc `[7]` (danh sách chỉ có một phần tử). Đây là các bộ dữ liệu kiểm thử thuộc loại nào?

  • A. Trường hợp thường gặp (typical case).
  • B. Trường hợp đặc biệt/biên (edge/boundary case).
  • C. Trường hợp dữ liệu lớn (large data case).
  • D. Trường hợp ngoại lệ (exception case).

Câu 8: Mục đích chính của việc gỡ lỗi (debugging) là gì?

  • A. Tìm và sửa các lỗi trong chương trình.
  • B. Chỉ để làm cho chương trình chạy nhanh hơn.
  • C. Thêm tính năng mới vào chương trình.
  • D. Viết tài liệu cho chương trình.

Câu 9: Trong các loại lỗi đã học (cú pháp, ngoại lệ, ngữ nghĩa), loại lỗi nào thường khó phát hiện và sửa chữa nhất?

  • A. Lỗi cú pháp (Syntax Error).
  • B. Lỗi ngoại lệ (Exception Error).
  • C. Lỗi ngữ nghĩa (Semantic Error).
  • D. Tất cả các loại lỗi đều dễ phát hiện như nhau.

Câu 10: Công cụ nào trong môi trường phát triển tích hợp (IDE) giúp lập trình viên chạy từng dòng lệnh của chương trình, tạm dừng ở các điểm mong muốn và xem giá trị của các biến?

  • A. Trình biên dịch (Compiler).
  • B. Trình soạn thảo mã (Code Editor).
  • C. Trình thông dịch (Interpreter).
  • D. Công cụ gỡ lỗi (Debugger).

Câu 11: Phương pháp nào sau đây KHÔNG phải là cách phổ biến để truy vết (trace) lỗi trong chương trình?

  • A. Sử dụng công cụ gỡ lỗi (debugger) để chạy từng bước và quan sát.
  • B. Chèn các câu lệnh in (ví dụ: `print()` trong Python) để hiển thị giá trị biến hoặc thông báo tại các điểm khác nhau.
  • C. Đọc lại toàn bộ mã nguồn từ đầu đến cuối mà không chạy chương trình.
  • D. Chia nhỏ chương trình thành các phần nhỏ hơn để kiểm tra riêng lẻ.

Câu 12: Giả sử bạn có đoạn mã Python sau: `x = 10 / y`. Nếu biến `y` có giá trị là 0, lỗi ngoại lệ nào sẽ xảy ra?

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

Câu 13: Khi sử dụng công cụ gỡ lỗi (debugger), khái niệm "điểm dừng" (breakpoint) có ý nghĩa gì?

  • A. Là nơi chương trình kết thúc thực hiện.
  • B. Là điểm mà chương trình sẽ tạm dừng thực thi để người dùng có thể kiểm tra trạng thái.
  • C. Là nơi xảy ra lỗi cú pháp.
  • D. Là điểm bắt đầu của chương trình.

Câu 14: Thư viện chuẩn nào của Python được thiết kế đặc biệt để hỗ trợ việc gỡ lỗi tương tác?

  • A. math.
  • B. os.
  • C. pdb.
  • D. random.

Câu 15: Khi bạn đang gỡ lỗi một chương trình Python bằng công cụ debugger và muốn thực hiện câu lệnh hiện tại rồi dừng lại ở câu lệnh kế tiếp (không đi sâu vào các hàm con nếu có), bạn thường sử dụng lệnh/chức năng nào?

  • A. Step Over.
  • B. Step Into.
  • C. Continue.
  • D. Stop.

Câu 16: Bạn đang kiểm tra một chương trình tính tổng các số từ 1 đến N. Bạn nhận thấy rằng với N = 5, chương trình trả về kết quả là 10 thay vì 15. Loại lỗi nào có khả năng xảy ra nhất?

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

Câu 17: Việc sử dụng các câu lệnh `print()` để hiển thị giá trị của biến tại các điểm khác nhau trong mã nguồn là một kỹ thuật gỡ lỗi hiệu quả đối với loại chương trình nào?

  • A. Chương trình ngắn, đơn giản.
  • B. Chương trình phức tạp, có nhiều hàm lồng nhau.
  • C. Chương trình yêu cầu tốc độ thực thi rất cao.
  • D. Chương trình giao diện đồ họa (GUI).

Câu 18: Khi kiểm thử một hàm nhận vào một số nguyên dương N và tính giai thừa của N, bộ dữ liệu kiểm thử nào sau đây thuộc nhóm trường hợp đặc biệt/biên?

  • A. N = 3
  • B. N = 7
  • C. N = 10
  • D. N = 0 hoặc N = 1

Câu 19: Lỗi ngoại lệ (Exception Error) khác với lỗi cú pháp (Syntax Error) ở điểm nào?

  • A. Lỗi cú pháp xảy ra khi chương trình đang chạy, còn lỗi ngoại lệ xảy ra trước khi chạy.
  • B. Lỗi cú pháp được phát hiện trước khi chương trình chạy (lúc dịch/kiểm tra mã), còn lỗi ngoại lệ xảy ra trong khi chương trình đang chạy.
  • C. Lỗi ngoại lệ dễ sửa hơn lỗi cú pháp.
  • D. Lỗi cú pháp chỉ liên quan đến biến, còn lỗi ngoại lệ liên quan đến câu lệnh.

Câu 20: Bạn viết một chương trình đọc dữ liệu từ một tệp tin. Nếu tệp tin không tồn tại khi chương trình cố gắng mở nó, loại lỗi nào sẽ xảy ra?

  • A. Lỗi ngoại lệ (ví dụ: FileNotFoundError).
  • B. Lỗi cú pháp (Syntax Error).
  • C. Lỗi ngữ nghĩa (Semantic Error).
  • D. Chương trình sẽ tự động tạo tệp tin mới.

Câu 21: Để kiểm tra xem chương trình có hoạt động hiệu quả với lượng dữ liệu lớn hay không, bạn nên sử dụng bộ dữ liệu kiểm thử như thế nào?

  • A. Dữ liệu có kích thước nhỏ, dễ kiểm tra kết quả bằng tay.
  • B. Dữ liệu chỉ chứa các trường hợp đặc biệt.
  • C. Dữ liệu có kích thước gần hoặc bằng giới hạn xử lý của chương trình hoặc hệ thống.
  • D. Dữ liệu ngẫu nhiên không theo quy tắc nào.

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

  • A. Debugger làm cho chương trình chạy nhanh hơn.
  • B. Debugger tự động sửa lỗi cho bạn.
  • C. Debugger chỉ hoạt động với lỗi cú pháp.
  • D. Debugger cho phép kiểm soát luồng thực thi (chạy từng bước, tạm dừng) và xem trạng thái (giá trị biến) tại bất kỳ điểm nào mà không cần sửa mã nguồn liên tục.

Câu 23: Khi gặp một lỗi ngữ nghĩa (lỗi logic), phương pháp tiếp cận hiệu quả nhất để tìm ra nguyên nhân lỗi là gì?

  • A. Đoán mò và thay đổi mã nguồn ngẫu nhiên.
  • B. Sử dụng các bộ dữ liệu kiểm thử đã chuẩn bị (bao gồm trường hợp thường, đặc biệt, biên) để xác định khi nào lỗi xảy ra và truy vết luồng thực thi/giá trị biến tại các điểm nghi ngờ.
  • C. Chỉ kiểm tra lại lỗi cú pháp.
  • D. Bỏ qua lỗi và hy vọng nó sẽ tự biến mất.

Câu 24: Trong Python, khi bạn cố gắng truy cập một biến chưa được khai báo hoặc gán giá trị, lỗi nào thường xảy ra?

  • A. SyntaxError.
  • B. TypeError.
  • C. ValueError.
  • D. NameError (một loại lỗi ngoại lệ).

Câu 25: Bạn viết một chương trình tính trung bình cộng của một danh sách số. Chương trình chạy với danh sách `[1, 2, 3]` cho kết quả 2.0 (đúng), nhưng với danh sách `[10, 20, 30]` lại cho kết quả 20.0 (đúng). Tuy nhiên, khi nhập danh sách `[1, 2, "ba"]`, chương trình báo lỗi. Lỗi cuối cùng này thuộc loại nào?

  • A. Lỗi cú pháp.
  • B. Lỗi ngoại lệ (ví dụ: TypeError khi cố gắng cộng số với chuỗi).
  • C. Lỗi ngữ nghĩa.
  • D. Lỗi logic.

Câu 26: Phát biểu nào sau đây là đúng về mối quan hệ giữa kiểm thử và gỡ lỗi?

  • A. Kiểm thử giúp phát hiện lỗi, gỡ lỗi giúp tìm và sửa lỗi đã phát hiện.
  • B. Kiểm thử và gỡ lỗi là hai tên gọi khác nhau cho cùng một hoạt động.
  • C. Gỡ lỗi phải hoàn thành trước khi bắt đầu kiểm thử.
  • D. Kiểm thử chỉ áp dụng cho lỗi cú pháp, còn gỡ lỗi áp dụng cho lỗi ngữ nghĩa.

Câu 27: Khi gặp một lỗi ngoại lệ (ví dụ: chương trình dừng đột ngột do chia cho 0), thông tin nào được hiển thị trên màn hình thường rất hữu ích cho việc gỡ lỗi?

  • A. Tổng thời gian chạy của chương trình.
  • B. Dung lượng bộ nhớ đã sử dụng.
  • C. Tên của người viết chương trình.
  • D. Traceback (dấu vết) hiển thị loại lỗi, thông báo lỗi và dòng mã gây ra lỗi.

Câu 28: Giả sử bạn có một vòng lặp `for i in range(n):`. Nếu bạn vô tình viết `for i in range(n+1):` nhưng logic chương trình chỉ cần lặp N lần, điều này có thể dẫn đến loại lỗi nào?

  • A. Lỗi cú pháp (Syntax Error).
  • B. Lỗi ngoại lệ (Exception Error) - trừ khi việc lặp thêm 1 lần gây ra lỗi khác như truy cập ngoài phạm vi mảng.
  • C. Lỗi ngữ nghĩa (Semantic Error) - chương trình chạy, không báo lỗi nhưng kết quả sai.
  • D. Lỗi runtime (Runtime Error).

Câu 29: Khi kiểm thử một chương trình xử lý số, việc kiểm tra với các giá trị âm (nếu bài toán cho phép) thuộc nhóm dữ liệu kiểm thử nào?

  • A. Trường hợp thường gặp.
  • B. Trường hợp đặc biệt/biên.
  • C. Trường hợp dữ liệu lớn.
  • D. Không cần kiểm tra với giá trị âm.

Câu 30: Để đảm bảo chất lượng của một chương trình, quá trình nào sau đây thường được thực hiện lặp đi lặp lại trong suốt chu trình phát triển?

  • A. Kiểm thử và gỡ lỗi.
  • B. Chỉ viết mã nguồn.
  • C. Chỉ thiết kế giao diện người dùng.
  • D. Chỉ biên dịch/thông dịch chương trình.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 1: Khi viết chương trình Python, bạn gõ thiếu dấu hai chấm (:) ở cuối câu lệnh `if`. Khi chạy chương trình, lỗi này sẽ được phát hiện ở giai đoạn nào và thuộc loại lỗi gì?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 2: Một chương trình Python yêu cầu người dùng nhập vào hai số nguyên `a` và `b`, sau đó tính `c = a / b`. Nếu người dùng nhập `b = 0`, chương trình sẽ dừng đột ngột và báo lỗi. Đây là loại lỗi nào?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 3: Bạn viết một chương trình tính diện tích hình chữ nhật với chiều dài `dai` và chiều rộng `rong`. Công thức đúng là `dien_tich = dai * rong`. Tuy nhiên, bạn lại viết nhầm thành `dien_tich = dai + rong`. Chương trình vẫn chạy bình thường nhưng kết quả tính toán luôn sai. Đây là loại lỗi nào?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 4: Trong quá trình phát triển phần mềm, việc kiểm thử (testing) chương trình nhằm mục đích chính là gì?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 5: Khi kiểm thử chương trình, tại sao cần phải tạo ra các bộ dữ liệu kiểm thử khác nhau, bao gồm trường hợp thường gặp, trường hợp đặc biệt/biên và trường hợp dữ liệu lớn?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 6: Bạn đang kiểm thử một chương trình sắp xếp danh sách các số nguyên. Danh sách đầu vào là `[5, 2, 8, 1, 9]`. Chương trình trả về `[1, 2, 5, 8, 9]`. Đây là một bộ dữ liệu kiểm thử thuộc loại nào?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 7: Bạn kiểm thử chương trình sắp xếp với danh sách đầu vào là `[]` (danh sách rỗng) hoặc `[7]` (danh sách chỉ có một phần tử). Đây là các bộ dữ liệu kiểm thử thuộc loại nào?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 8: Mục đích chính của việc gỡ lỗi (debugging) là gì?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 9: Trong các loại lỗi đã học (cú pháp, ngoại lệ, ngữ nghĩa), loại lỗi nào thường khó phát hiện và sửa chữa nhất?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 10: Công cụ nào trong môi trường phát triển tích hợp (IDE) giúp lập trình viên chạy từng dòng lệnh của chương trình, tạm dừng ở các điểm mong muốn và xem giá trị của các biến?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 11: Phương pháp nào sau đây KHÔNG phải là cách phổ biến để truy vết (trace) lỗi trong chương trình?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 12: Giả sử bạn có đoạn mã Python sau: `x = 10 / y`. Nếu biến `y` có giá trị là 0, lỗi ngoại lệ nào sẽ xảy ra?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 13: Khi sử dụng công cụ gỡ lỗi (debugger), khái niệm 'điểm dừng' (breakpoint) có ý nghĩa gì?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 14: Thư viện chuẩn nào của Python được thiết kế đặc biệt để hỗ trợ việc gỡ lỗi tương tác?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 15: Khi bạn đang gỡ lỗi một chương trình Python bằng công cụ debugger và muốn thực hiện câu lệnh hiện tại rồi dừng lại ở câu lệnh kế tiếp (không đi sâu vào các hàm con nếu có), bạn thường sử dụng lệnh/chức năng nào?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 16: Bạn đang kiểm tra một chương trình tính tổng các số từ 1 đến N. Bạn nhận thấy rằng với N = 5, chương trình trả về kết quả là 10 thay vì 15. Loại lỗi nào có khả năng xảy ra nhất?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 17: Việc sử dụng các câu lệnh `print()` để hiển thị giá trị của biến tại các điểm khác nhau trong mã nguồn là một kỹ thuật gỡ lỗi hiệu quả đối với loại chương trình nào?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 18: Khi kiểm thử một hàm nhận vào một số nguyên dương N và tính giai thừa của N, bộ dữ liệu kiểm thử nào sau đây thuộc nhóm trường hợp đặc biệt/biên?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 19: Lỗi ngoại lệ (Exception Error) khác với lỗi cú pháp (Syntax Error) ở điểm nào?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 20: Bạn viết một chương trình đọc dữ liệu từ một tệp tin. Nếu tệp tin không tồn tại khi chương trình cố gắng mở nó, loại lỗi nào sẽ xảy ra?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 21: Để kiểm tra xem chương trình có hoạt động hiệu quả với lượng dữ liệu lớn hay không, bạn nên sử dụng bộ dữ liệu kiểm thử như thế nào?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

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

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 23: Khi gặp một lỗi ngữ nghĩa (lỗi logic), phương pháp tiếp cận hiệu quả nhất để tìm ra nguyên nhân lỗi là gì?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 24: Trong Python, khi bạn cố gắng truy cập một biến chưa được khai báo hoặc gán giá trị, lỗi nào thường xảy ra?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 25: Bạn viết một chương trình tính trung bình cộng của một danh sách số. Chương trình chạy với danh sách `[1, 2, 3]` cho kết quả 2.0 (đúng), nhưng với danh sách `[10, 20, 30]` lại cho kết quả 20.0 (đúng). Tuy nhiên, khi nhập danh sách `[1, 2, 'ba']`, chương trình báo lỗi. Lỗi cuối cùng này thuộc loại nào?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 26: Phát biểu nào sau đây là đúng về mối quan hệ giữa kiểm thử và gỡ lỗi?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 27: Khi gặp một lỗi ngoại lệ (ví dụ: chương trình dừng đột ngột do chia cho 0), thông tin nào được hiển thị trên màn hình thường rất hữu ích cho việc gỡ lỗi?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 28: Giả sử bạn có một vòng lặp `for i in range(n):`. Nếu bạn vô tình viết `for i in range(n+1):` nhưng logic chương trình chỉ cần lặp N lần, điều này có thể dẫn đến loại lỗi nào?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 29: Khi kiểm thử một chương trình xử lý số, việc kiểm tra với các giá trị âm (nếu bài toán cho phép) thuộc nhóm dữ liệu kiểm thử nào?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 03

Câu 30: Để đảm bảo chất lượng của một chương trình, quá trình nào sau đây thường được thực hiện lặp đi lặp lại trong suốt chu trình phát triển?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 04

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 04 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong quá trình lập trình, khi máy tính báo lỗi ngay khi bạn cố gắng chạy chương trình mà chưa kịp thực hiện lệnh nào, lỗi đó thuộc loại nào sau đâ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 Error/Logic Error)
  • D. Lỗi phần cứng

Câu 2: Một chương trình Python yêu cầu người dùng nhập hai số nguyên và tính tổng của chúng. Khi người dùng nhập chuỗi "abc" thay vì một số, chương trình dừng lại và báo lỗi. Loại lỗi này là gì?

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

Câu 3: Bạn viết chương trình tính diện tích hình chữ nhật bằng cách nhập chiều dài và chiều rộng. Tuy nhiên, bạn vô tình sử dụng phép trừ (-) thay vì phép nhân (*) trong công thức. Chương trình vẫn chạy bình thường và không báo lỗi, nhưng kết quả tính ra bị sai. Đây là loại lỗi nào?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (Logic Error)
  • D. Lỗi hệ thống

Câu 4: Lỗi nào sau đây thường khó phát hiện nhất trong quá trình kiểm thử chương trình?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa
  • D. Tất cả các lỗi đều khó phát hiện như nhau

Câu 5: Công việc nào sau đây thuộc về giai đoạn kiểm thử chương trình?

  • A. Viết mã nguồn cho chương trình.
  • B. Thiết kế giao diện người dùng.
  • C. Xác định yêu cầu của bài toán.
  • D. Chạy chương trình với các bộ dữ liệu đầu vào khác nhau để kiểm tra kết quả.

Câu 6: Mục đích chính của việc kiểm thử chương trình với các bộ dữ liệu đầu vào "đặc biệt" (ví dụ: giá trị biên, giá trị âm nếu bài toán không cho phép, số 0 khi phép chia có thể xảy ra) là gì?

  • A. Để chương trình chạy nhanh hơn.
  • B. Để phát hiện các lỗi ngoại lệ hoặc lỗi ngữ nghĩa xảy ra trong các tình huống không phổ biến.
  • C. Để làm cho mã nguồn ngắn gọn hơn.
  • D. Để cải thiện giao diện chương trình.

Câu 7: Khi gặp lỗi ngữ nghĩa (logic error), phương pháp hiệu quả nhất để tìm ra nguyên nhân là gì?

  • A. Chỉ cần đọc lại mã nguồn một cách nhanh chóng.
  • B. Chạy chương trình với một bộ dữ liệu duy nhất.
  • C. Thay đổi ngẫu nhiên các câu lệnh cho đến khi chương trình chạy đúng.
  • D. Sử dụng kỹ thuật truy vết (tracing) hoặc công cụ gỡ lỗi (debugger) để theo dõi giá trị biến và luồng thực thi.

Câu 8: Công cụ nào trong môi trường phát triển tích hợp (IDE) giúp lập trình viên chạy từng bước một chương trình, tạm dừng ở các điểm mong muốn và kiểm tra giá trị của các biến?

  • A. Debugger (Công cụ gỡ lỗi)
  • B. Compiler (Trình biên dịch)
  • C. Interpreter (Trình thông dịch)
  • D. Text Editor (Trình soạn thảo văn bản)

Câu 9: Trong Python, thư viện chuẩn nào hỗ trợ các công cụ gỡ lỗi mạnh mẽ, cho phép thiết lập điểm dừng (breakpoints), chạy từng bước lệnh, và kiểm tra trạng thái chương trình?

  • A. math
  • B. pdb
  • C. os
  • D. random

Câu 10: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác "Step Over" (Bước qua) có ý nghĩa gì?

  • A. Chạy chương trình cho đến khi gặp lỗi.
  • B. Thoát khỏi chương trình.
  • C. Thực hiện toàn bộ một lời gọi hàm hoặc phương thức mà không đi sâu vào bên trong hàm/phương thức đó.
  • D. Đi sâu vào bên trong một lời gọi hàm hoặc phương thức.

Câu 11: Đâu là một chiến lược hiệu quả để kiểm thử chương trình với các bộ dữ liệu "thường gặp"?

  • A. Chọn các giá trị đầu vào hợp lệ, phổ biến và có kích thước đủ nhỏ để dễ dàng kiểm tra kết quả bằng tay.
  • B. Sử dụng các giá trị đầu vào rất lớn để kiểm tra hiệu suất.
  • C. Chỉ kiểm thử với một bộ dữ liệu duy nhất.
  • D. Nhập các giá trị không hợp lệ để gây lỗi.

Câu 12: Giả sử bạn có một hàm tính căn bậc hai. Khi kiểm thử, bạn nên chú ý đến những giá trị đầu vào đặc biệt nào?

  • A. Chỉ các số nguyên dương lớn.
  • B. Chỉ các số thập phân.
  • C. Các số nguyên âm, số 0 và các số dương.
  • D. Số 0 và các số âm (vì căn bậc hai của số âm không xác định trong số thực).

Câu 13: Khi một chương trình gặp lỗi ngoại lệ (Exception), điều gì thường xảy ra nếu không có cơ chế xử lý lỗi được triển khai?

  • A. Chương trình sẽ dừng hoạt động và hiển thị thông báo lỗi.
  • B. Chương trình sẽ tự động sửa lỗi và tiếp tục chạy.
  • C. Chương trình sẽ bỏ qua lệnh gây lỗi và tiếp tục thực hiện các lệnh khác.
  • D. Máy tính sẽ bị tắt nguồn.

Câu 14: Kỹ thuật "truy vết" (tracing) thủ công để tìm lỗi ngữ nghĩa là gì?

  • A. Đọc lướt qua mã nguồn để tìm lỗi chính tả.
  • B. Chạy chương trình nhiều lần với cùng một dữ liệu.
  • C. Tưởng tượng hoặc ghi lại trên giấy quá trình thực hiện từng lệnh của chương trình với một bộ dữ liệu cụ thể, theo dõi sự thay đổi của các biến.
  • D. Hỏi một người khác đọc mã nguồn của bạn.

Câu 15: Tại sao việc kiểm thử với các bộ dữ liệu có kích thước lớn nhất có thể lại quan trọng?

  • A. Để làm cho chương trình chạy nhanh hơn.
  • B. Để kiểm tra hiệu suất của chương trình và phát hiện các vấn đề về bộ nhớ hoặc thời gian xử lý khi làm việc với dữ liệu lớn.
  • C. Để tìm lỗi cú pháp.
  • D. Việc này không quan trọng, chỉ cần kiểm thử với dữ liệu nhỏ là đủ.

Câu 16: Khi gỡ lỗi bằng công cụ debugger, "Điểm dừng" (Breakpoint) có chức năng gì?

  • A. Là vị trí trong mã nguồn mà chương trình sẽ tạm dừng thực thi khi chạy bằng debugger.
  • B. Là nơi chương trình tự động sửa lỗi.
  • C. Là nơi chương trình báo cáo tất cả các lỗi ngoại lệ.
  • D. Là vị trí cuối cùng của chương trình.

Câu 17: Xét đoạn mã Python sau:
x = 10
y = 0
z = x / y
Khi chạy đoạn mã này, loại lỗi nào có khả năng xảy ra nhất?

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

Câu 18: Xét đoạn mã Python sau:
print("Hello"
Khi chạy đoạn mã này, loại lỗi nào sẽ xảy ra?

  • A. SyntaxError
  • B. RuntimeError
  • C. LogicError
  • D. NameError

Câu 19: Giả sử bạn viết một chương trình sắp xếp một danh sách các số. Khi kiểm thử với danh sách rỗng [], chương trình của bạn gặp lỗi. Đây là ví dụ về việc kiểm thử với bộ dữ liệu thuộc nhóm nào?

  • A. Trường hợp thường gặp.
  • B. Trường hợp dữ liệu lớn nhất.
  • C. Trường hợp đặc biệt (trường hợp biên/ngoại lệ).
  • D. Trường hợp dữ liệu không hợp lệ.

Câu 20: Lợi ích chính của việc sử dụng công cụ gỡ lỗi (debugger) so với phương pháp truy vết thủ công là gì?

  • A. Cho phép tự động tạm dừng chương trình, xem giá trị biến một cách dễ dàng và di chuyển qua lại giữa các bước thực thi một cách linh hoạt.
  • B. Tự động sửa tất cả các lỗi trong mã nguồn.
  • C. Giúp chương trình chạy nhanh hơn.
  • D. Chỉ phát hiện lỗi cú pháp.

Câu 21: Khi kiểm thử một chương trình xử lý chuỗi, bộ dữ liệu nào sau đây được coi là trường hợp đặc biệt cần kiểm tra?

  • A. Một chuỗi có độ dài trung bình.
  • B. Một chuỗi chỉ chứa chữ cái.
  • C. Một chuỗi chỉ chứa số.
  • D. Một chuỗi rỗng (

Câu 22: Trong quá trình gỡ lỗi, nếu bạn muốn xem chương trình sẽ hoạt động như thế nào sau khi thực hiện một khối lệnh lớn (ví dụ: một vòng lặp phức tạp hoặc một hàm mà bạn tin là đúng), bạn nên sử dụng thao tác nào trong debugger?

  • A. Continue (Tiếp tục chạy đến điểm dừng tiếp theo hoặc hết chương trình)
  • B. Step Into (Bước vào)
  • C. Step Over (Bước qua)
  • D. Stop (Dừng)

Câu 23: Lỗi nào sau đây thường được trình thông dịch hoặc trình biên dịch phát hiện và báo cáo trước khi chương trình bắt đầu chạy?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa
  • D. Lỗi logic

Câu 24: Khi bạn sử dụng lệnh `print()` để hiển thị giá trị của các biến tại các điểm khác nhau trong chương trình nhằm mục đích tìm lỗi, bạn đang áp dụng kỹ thuật nào?

  • A. Kiểm thử dữ liệu đặc biệt.
  • B. Sử dụng công cụ debugger.
  • C. Truy vết (tracing) bằng cách in thông tin trung gian.
  • D. Kiểm tra cú pháp tự động.

Câu 25: Mục tiêu cuối cùng của quá trình kiểm thử và gỡ lỗi chương trình là gì?

  • A. Làm cho chương trình chạy nhanh hơn.
  • B. Giúp mã nguồn ngắn gọn hơn.
  • C. Thêm nhiều tính năng mới.
  • D. Đảm bảo chương trình hoạt động đúng như yêu cầu và đáng tin cậy trong mọi trường hợp sử dụng hợp lệ.

Câu 26: Việc tạo ra các bộ dữ liệu kiểm thử đa dạng (thường gặp, đặc biệt, lớn nhất) giúp phát hiện loại lỗi nào hiệu quả nhất?

  • A. Chỉ lỗi cú pháp.
  • B. Chỉ lỗi ngoại lệ.
  • C. Lỗi ngoại lệ và lỗi ngữ nghĩa.
  • D. Tất cả các loại lỗi, bao gồm cả lỗi cú pháp.

Câu 27: Khi một chương trình tính toán kết quả dựa trên một công thức, và bạn nhận thấy kết quả sai chỉ khi dữ liệu đầu vào nằm ở ranh giới (ví dụ: số lớn nhất hoặc nhỏ nhất cho phép), lỗi đó rất có thể là:

  • A. Lỗi cú pháp.
  • B. Lỗi ngữ nghĩa liên quan đến xử lý trường hợp biên (boundary case).
  • C. Lỗi ngoại lệ do thiếu bộ nhớ.
  • D. Lỗi do virus máy tính.

Câu 28: Trong Python, khi bạn cố gắng truy cập một phần tử của danh sách bằng một chỉ số (index) nằm ngoài phạm vi hợp lệ (ví dụ: chỉ số âm hoặc lớn hơn hoặc bằng độ dài danh sách), loại lỗi ngoại lệ nào sẽ xảy ra?

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

Câu 29: Việc gỡ lỗi (debugging) là quá trình gì?

  • A. Chỉ đơn giản là chạy chương trình nhiều lần.
  • B. Viết thêm tính năng mới cho chương trình.
  • C. Kiểm tra xem chương trình có chạy nhanh không.
  • D. Tìm kiếm, phân tích và sửa chữa các lỗi trong mã nguồn chương trình.

Câu 30: Giả sử bạn có một vòng lặp `for` trong chương trình. Khi sử dụng debugger, thao tác "Step Into" (Bước vào) tại dòng gọi một hàm bên trong vòng lặp sẽ đưa bạn đến đâu?

  • A. Dòng lệnh tiếp theo ngay sau vòng lặp.
  • B. Dòng lệnh đầu tiên bên trong hàm được gọi.
  • C. Kết thúc chương trình.
  • D. Lặp lại dòng lệnh hiện tại.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 1: Trong quá trình lập trình, khi máy tính báo lỗi ngay khi bạn cố gắng chạy chương trình mà chưa kịp thực hiện lệnh nào, lỗi đó thuộc loại nào sau đây?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 2: Một chương trình Python yêu cầu người dùng nhập hai số nguyên và tính tổng của chúng. Khi người dùng nhập chuỗi 'abc' thay vì một số, chương trình dừng lại và báo lỗi. Loại lỗi này là gì?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 3: Bạn viết chương trình tính diện tích hình chữ nhật bằng cách nhập chiều dài và chiều rộng. Tuy nhiên, bạn vô tình sử dụng phép trừ (-) thay vì phép nhân (*) trong công thức. Chương trình vẫn chạy bình thường và không báo lỗi, nhưng kết quả tính ra bị sai. Đây là loại lỗi nào?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 4: Lỗi nào sau đây thường khó phát hiện nhất trong quá trình kiểm thử chương trình?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 5: Công việc nào sau đây thuộc về giai đoạn kiểm thử chương trình?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 6: Mục đích chính của việc kiểm thử chương trình với các bộ dữ liệu đầu vào 'đặc biệt' (ví dụ: giá trị biên, giá trị âm nếu bài toán không cho phép, số 0 khi phép chia có thể xảy ra) là gì?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 7: Khi gặp lỗi ngữ nghĩa (logic error), phương pháp hiệu quả nhất để tìm ra nguyên nhân là gì?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 8: Công cụ nào trong môi trường phát triển tích hợp (IDE) giúp lập trình viên chạy từng bước một chương trình, tạm dừng ở các điểm mong muốn và kiểm tra giá trị của các biến?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 9: Trong Python, thư viện chuẩn nào hỗ trợ các công cụ gỡ lỗi mạnh mẽ, cho phép thiết lập điểm dừng (breakpoints), chạy từng bước lệnh, và kiểm tra trạng thái chương trình?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 10: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác 'Step Over' (Bước qua) có ý nghĩa gì?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 11: Đâu là một chiến lược hiệu quả để kiểm thử chương trình với các bộ dữ liệu 'thường gặp'?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 12: Giả sử bạn có một hàm tính căn bậc hai. Khi kiểm thử, bạn nên chú ý đến những giá trị đầu vào đặc biệt nào?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 13: Khi một chương trình gặp lỗi ngoại lệ (Exception), điều gì thường xảy ra nếu không có cơ chế xử lý lỗi được triển khai?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 14: Kỹ thuật 'truy vết' (tracing) thủ công để tìm lỗi ngữ nghĩa là gì?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 15: Tại sao việc kiểm thử với các bộ dữ liệu có kích thước lớn nhất có thể lại quan trọng?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 16: Khi gỡ lỗi bằng công cụ debugger, 'Điểm dừng' (Breakpoint) có chức năng gì?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 17: Xét đoạn mã Python sau:
x = 10
y = 0
z = x / y
Khi chạy đoạn mã này, loại lỗi nào có khả năng xảy ra nhất?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 18: Xét đoạn mã Python sau:
print('Hello'
Khi chạy đoạn mã này, loại lỗi nào sẽ xảy ra?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 19: Giả sử bạn viết một chương trình sắp xếp một danh sách các số. Khi kiểm thử với danh sách rỗng [], chương trình của bạn gặp lỗi. Đây là ví dụ về việc kiểm thử với bộ dữ liệu thuộc nhóm nào?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 20: Lợi ích chính của việc sử dụng công cụ gỡ lỗi (debugger) so với phương pháp truy vết thủ công là gì?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 21: Khi kiểm thử một chương trình xử lý chuỗi, bộ dữ liệu nào sau đây được coi là trường hợp đặc biệt cần kiểm tra?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 22: Trong quá trình gỡ lỗi, nếu bạn muốn xem chương trình sẽ hoạt động như thế nào sau khi thực hiện một khối lệnh lớn (ví dụ: một vòng lặp phức tạp hoặc một hàm mà bạn tin là đúng), bạn nên sử dụng thao tác nào trong debugger?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 23: Lỗi nào sau đây thường được trình thông dịch hoặc trình biên dịch phát hiện và báo cáo trước khi chương trình bắt đầu chạy?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 24: Khi bạn sử dụng lệnh `print()` để hiển thị giá trị của các biến tại các điểm khác nhau trong chương trình nhằm mục đích tìm lỗi, bạn đang áp dụng kỹ thuật nào?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 25: Mục tiêu cuối cùng của quá trình kiểm thử và gỡ lỗi chương trình là gì?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 26: Việc tạo ra các bộ dữ liệu kiểm thử đa dạng (thường gặp, đặc biệt, lớn nhất) giúp phát hiện loại lỗi nào hiệu quả nhất?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 27: Khi một chương trình tính toán kết quả dựa trên một công thức, và bạn nhận thấy kết quả sai chỉ khi dữ liệu đầu vào nằm ở ranh giới (ví dụ: số lớn nhất hoặc nhỏ nhất cho phép), lỗi đó rất có thể là:

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 28: Trong Python, khi bạn cố gắng truy cập một phần tử của danh sách bằng một chỉ số (index) nằm ngoài phạm vi hợp lệ (ví dụ: chỉ số âm hoặc lớn hơn hoặc bằng độ dài danh sách), loại lỗi ngoại lệ nào sẽ xảy ra?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 29: Việc gỡ lỗi (debugging) là quá trình gì?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 04

Câu 30: Giả sử bạn có một vòng lặp `for` trong chương trình. Khi sử dụng debugger, thao tác 'Step Into' (Bước vào) tại dòng gọi một hàm bên trong vòng lặp sẽ đưa bạn đến đâu?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 05

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 05 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi viết chương trình Python, bạn gõ thiếu dấu hai chấm (:) ở cuối câu lệnh `if dieu_kien`. Khi chạy chương trình, trình thông dịch báo lỗi và không thực thi được. Đây là loại lỗi gì?

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

Câu 2: Một chương trình Python yêu cầu người dùng nhập hai số nguyên và thực hiện phép chia số thứ nhất cho số thứ hai. Nếu người dùng nhập số 0 cho số thứ hai, chương trình sẽ dừng đột ngột và báo lỗi "ZeroDivisionError". Đây là loại lỗi gì?

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

Câu 3: Bạn viết chương trình tính diện tích hình chữ nhật bằng cách nhập chiều dài và chiều rộng, sau đó in kết quả. Công thức bạn gõ nhầm là `dien_tich = chieu_dai + chieu_rong` thay vì `dien_tich = chieu_dai * chieu_rong`. Chương trình vẫn chạy bình thường, không báo lỗi, nhưng kết quả in ra luôn sai. Đây là loại lỗi gì?

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

Câu 4: Trong các loại lỗi chương trình đã học (cú pháp, ngoại lệ, ngữ nghĩa), loại lỗi nào thường khó phát hiện và sửa chữa nhất, vì chương trình vẫn chạy nhưng cho kết quả sai?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa
  • D. Cả ba loại đều khó như nhau

Câu 5: Để tìm và sửa các lỗi trong chương trình, chúng ta cần thực hiện quá trình nào?

  • A. Gỡ lỗi (Debugging)
  • B. Biên dịch (Compiling)
  • C. Thực thi (Executing)
  • D. Lưu trữ (Saving)

Câu 6: Quá trình chạy thử chương trình với các bộ dữ liệu đầu vào khác nhau để phát hiện ra lỗi được gọi là gì?

  • A. Gỡ lỗi (Debugging)
  • B. Kiểm thử (Testing)
  • C. Phân tích (Analyzing)
  • D. Tối ưu hóa (Optimization)

Câu 7: Khi kiểm thử một chương trình, việc tạo ra các bộ dữ liệu kiểm thử đa dạng có mục đích chính là gì?

  • A. Làm cho chương trình chạy nhanh hơn.
  • B. Giảm thiểu số lượng biến trong chương trình.
  • C. Chứng minh chương trình không có lỗi.
  • D. Tìm ra càng nhiều lỗi càng tốt trong các trường hợp khác nhau.

Câu 8: Để kiểm thử một chương trình tính điểm trung bình của học sinh (điểm từ 0 đến 10), bộ dữ liệu kiểm thử nào sau đây được xem là trường hợp đặc biệt hoặc biên?

  • A. Các điểm số như 7, 8, 9.
  • B. Các điểm số như 5, 6, 7.
  • C. Các điểm số như 0, 10, hoặc các giá trị không hợp lệ như -1, 11.
  • D. Các điểm số ngẫu nhiên bất kỳ.

Câu 9: Giả sử bạn có một chương trình xử lý danh sách các số nguyên. Để kiểm thử trường hợp rỗng (empty case), bạn nên sử dụng bộ dữ liệu nào?

  • A. Một danh sách rỗng (ví dụ: `[]`)
  • B. Một danh sách chỉ có một phần tử (ví dụ: `[5]`)
  • C. Một danh sách có nhiều phần tử (ví dụ: `[1, 2, 3]`)
  • D. Một danh sách chứa các số âm (ví dụ: `[-1, -2]`)

Câu 10: Công cụ nào trong môi trường lập trình (IDE) giúp bạn tạm dừng chương trình tại một dòng lệnh cụ thể và xem giá trị của các biến tại thời điểm đó?

  • A. Trình biên dịch (Compiler)
  • B. Công cụ gỡ lỗi (Debugger)
  • C. Trình soạn thảo văn bản (Text Editor)
  • D. Trình quản lý dự án (Project Manager)

Câu 11: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác "Step Over" (Bước qua) có ý nghĩa gì?

  • A. Thực thi dòng lệnh hiện tại và chuyển sang dòng lệnh tiếp theo, nếu dòng hiện tại là gọi hàm thì thực thi toàn bộ hàm đó mà không đi sâu vào bên trong.
  • B. Thực thi dòng lệnh hiện tại và đi sâu vào bên trong hàm nếu dòng lệnh đó là gọi hàm.
  • C. Tiếp tục chạy chương trình cho đến điểm dừng (breakpoint) tiếp theo hoặc kết thúc chương trình.
  • D. Dừng thực thi chương trình ngay lập tức.

Câu 12: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác "Step Into" (Bước vào) có ý nghĩa gì?

  • A. Thực thi dòng lệnh hiện tại và chuyển sang dòng lệnh tiếp theo, nếu dòng hiện tại là gọi hàm thì thực thi toàn bộ hàm đó mà không đi sâu vào bên trong.
  • B. Thực thi dòng lệnh hiện tại, và nếu dòng lệnh đó là gọi hàm, thì đi sâu vào thực thi dòng lệnh đầu tiên bên trong hàm đó.
  • C. Tiếp tục chạy chương trình cho đến điểm dừng (breakpoint) tiếp theo hoặc kết thúc chương trình.

Câu 13: Kỹ thuật gỡ lỗi bằng cách chèn thêm các câu lệnh `print()` vào chương trình để hiển thị giá trị của các biến hoặc thông báo về luồng thực thi được gọi là gì?

  • A. Thực thi từng bước (Step-by-step execution)
  • B. Đặt điểm dừng (Setting breakpoints)
  • C. Xem giá trị biến (Watching variables)
  • D. Truy vết bằng cách in (Print debugging/Traceback)

Câu 14: Lỗi ngữ nghĩa (Semantic Error) thường khó phát hiện hơn lỗi cú pháp và ngoại lệ vì lý do chính nào sau đây?

  • A. Chương trình vẫn chạy mà không báo lỗi, chỉ cho kết quả sai hoặc không mong muốn.
  • B. Trình biên dịch/thông dịch không thể phát hiện ra loại lỗi này.
  • C. Loại lỗi này chỉ xảy ra trên một số hệ điều hành nhất định.
  • D. Loại lỗi này chỉ xảy ra khi chương trình sử dụng quá nhiều bộ nhớ.

Câu 15: Khi một lỗi ngoại lệ (Exception) xảy ra trong chương trình Python, thông báo lỗi (traceback) thường cung cấp những thông tin hữu ích nào để gỡ lỗi?

  • A. Tên loại lỗi.
  • B. Dòng lệnh gây ra lỗi.
  • C. Chuỗi các lệnh đã được gọi dẫn đến dòng lỗi (stack trace).
  • D. Tất cả các thông tin trên.

Câu 16: Bạn viết một chương trình để tính tổng các số từ 1 đến N. Bạn sử dụng vòng lặp `for i in range(N):` và cộng `i` vào tổng. Khi chạy với N=5, kết quả là 10 (tổng của 0+1+2+3+4) thay vì 15 (tổng của 1+2+3+4+5). Đây là một ví dụ về lỗi gì?

  • A. Lỗi cú pháp.
  • B. Lỗi ngoại lệ.
  • C. Lỗi ngữ nghĩa (lỗi logic "off-by-one").
  • D. Lỗi hệ thống.

Câu 17: Mục tiêu chính của việc kiểm thử chương trình với "trường hợp điển hình" (typical cases) là gì?

  • A. Tìm các lỗi chỉ xảy ra trong điều kiện cực đoan.
  • B. Đảm bảo chương trình hoạt động đúng với các dữ liệu thường gặp trong thực tế.
  • C. Phát hiện lỗi cú pháp.
  • D. Kiểm tra hiệu suất của chương trình.

Câu 18: Bạn đang gỡ lỗi một chương trình phức tạp. Bạn nghi ngờ có một biến bị gán sai giá trị ở giữa quá trình thực hiện. Phương pháp gỡ lỗi nào sau đây hiệu quả nhất để xác định chính xác dòng lệnh nào làm thay đổi giá trị của biến đó và giá trị của nó tại các bước?

  • A. Chỉ đọc lại code.
  • B. Chạy lại chương trình nhiều lần với cùng một dữ liệu.
  • C. Sử dụng công cụ debugger để đặt điểm dừng và theo dõi giá trị biến ("watch").
  • D. Thêm các comment vào code.

Câu 19: Thư viện chuẩn nào trong Python cung cấp các dịch vụ hỗ trợ gỡ lỗi tương tác?

  • A. PDB (Python Debugger)
  • B. OS (Operating System)
  • C. Math
  • D. Random

Câu 20: Khi một lỗi ngoại lệ (Exception) xảy ra, chương trình Python mặc định sẽ làm gì nếu không có cơ chế xử lý lỗi (như `try...except`)?

  • A. Tự động sửa lỗi và tiếp tục chạy.
  • B. Dừng thực thi và in ra thông báo lỗi (traceback).
  • C. Bỏ qua dòng lệnh gây lỗi và tiếp tục chạy.
  • D. Hỏi người dùng cách xử lý lỗi.

Câu 21: Bạn viết một chương trình đọc dữ liệu từ một file có tên `data.txt`. Nếu file này không tồn tại khi chương trình chạy, loại lỗi nào có khả năng xảy ra?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (ví dụ: FileNotFoundError)
  • C. Lỗi ngữ nghĩa (Semantic Error)
  • D. Không có lỗi nào xảy ra.

Câu 22: Quy trình gỡ lỗi cơ bản thường bao gồm các bước: 1. Xác định lỗi; 2. Sửa lỗi; 3. Tìm vị trí lỗi; 4. Kiểm thử lại. Thứ tự đúng của các bước này là gì?

  • A. 1 -> 3 -> 2 -> 4
  • B. 3 -> 1 -> 2 -> 4
  • C. 1 -> 2 -> 3 -> 4
  • D. 2 -> 1 -> 3 -> 4

Câu 23: Tại sao việc kiểm thử các "trường hợp biên" (boundary cases) lại quan trọng?

  • A. Vì chúng là những trường hợp dễ nhập liệu nhất.
  • B. Vì chúng giúp kiểm tra tốc độ xử lý của chương trình.
  • C. Vì lỗi ngữ nghĩa thường xảy ra tại các giá trị tối thiểu, tối đa hoặc ranh giới của phạm vi dữ liệu hợp lệ.
  • D. Vì chúng chỉ liên quan đến lỗi cú pháp.

Câu 24: Công cụ gỡ lỗi (debugger) giúp ích gì trong việc tìm lỗi ngoại lệ?

  • A. Nó tự động sửa lỗi ngoại lệ.
  • B. Nó chuyển lỗi ngoại lệ thành lỗi cú pháp.
  • C. Nó chỉ phát hiện lỗi ngoại lệ nhưng không cho biết vị trí.
  • D. Nó cho phép chương trình dừng lại ngay tại dòng lệnh gây ra ngoại lệ để kiểm tra trạng thái (giá trị biến, luồng thực thi).

Câu 25: Bạn có một chương trình tính tiền giảm giá. Nếu tổng hóa đơn trên 1.000.000 VNĐ thì giảm 10%, ngược lại không giảm. Bạn kiểm thử với hóa đơn 1.000.000 VNĐ và chương trình không áp dụng giảm giá. Đây có thể là lỗi gì?

  • A. Lỗi cú pháp (ví dụ: thiếu dấu ngoặc).
  • B. Lỗi ngoại lệ (ví dụ: chia cho 0).
  • C. Lỗi ngữ nghĩa (lỗi logic điều kiện, có thể là dùng `<` thay vì `<=`).
  • D. Lỗi hệ thống (ví dụ: thiếu bộ nhớ).

Câu 26: Khi phát hiện một lỗi trong chương trình, bước đầu tiên quan trọng nhất trong quy trình gỡ lỗi là gì?

  • A. Ngay lập tức thay đổi code một cách ngẫu nhiên.
  • B. Xác định chính xác lỗi là gì (loại lỗi, biểu hiện của lỗi).
  • C. Chạy lại chương trình với tất cả các bộ dữ liệu kiểm thử.
  • D. Xóa toàn bộ code và viết lại từ đầu.

Câu 27: Việc kiểm thử với "trường hợp đặc biệt" (special cases) nhằm mục đích gì?

  • A. Tìm lỗi trong những tình huống ít xảy ra nhưng có thể làm chương trình gặp vấn đề (ví dụ: dữ liệu rỗng, giá trị âm khi không mong muốn, chuỗi trống).
  • B. Kiểm tra khả năng chịu tải của chương trình với dữ liệu lớn.
  • C. Chỉ kiểm tra các lỗi cú pháp.
  • D. Đảm bảo chương trình chạy nhanh trên mọi dữ liệu.

Câu 28: Bạn đã sửa một lỗi trong chương trình. Bước tiếp theo CẦN THIẾT sau khi sửa lỗi là gì để đảm bảo lỗi đã được khắc phục hoàn toàn và không gây ra lỗi mới?

  • A. Chỉ chạy lại chương trình một lần với dữ liệu đã gây ra lỗi.
  • B. Gửi chương trình cho người dùng cuối sử dụng ngay.
  • C. Chỉ kiểm tra lại dòng code vừa sửa.
  • D. Kiểm thử lại chương trình với bộ dữ liệu đã phát hiện lỗi VÀ các bộ dữ liệu kiểm thử khác (bao gồm cả trường hợp điển hình, đặc biệt, biên).

Câu 29: Trong Python, lỗi `TypeError` (Lỗi kiểu dữ liệu) là một dạng của 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 logic.

Câu 30: Giả sử bạn có một chương trình xử lý danh sách và bạn cố gắng truy cập vào phần tử ở chỉ mục (index) 10 trong một danh sách chỉ có 5 phần tử. Loại lỗi nào sẽ xảy ra trong trường hợp này?

  • A. SyntaxError
  • B. IndexError (một dạng của lỗi ngoại lệ)
  • C. TypeError
  • D. SemanticError

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 1: Khi viết chương trình Python, bạn gõ thiếu dấu hai chấm (:) ở cuối câu lệnh `if dieu_kien`. Khi chạy chương trình, trình thông dịch báo lỗi và không thực thi được. Đây là loại lỗi gì?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 2: Một chương trình Python yêu cầu người dùng nhập hai số nguyên và thực hiện phép chia số thứ nhất cho số thứ hai. Nếu người dùng nhập số 0 cho số thứ hai, chương trình sẽ dừng đột ngột và báo lỗi 'ZeroDivisionError'. Đây là loại lỗi gì?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 3: Bạn viết chương trình tính diện tích hình chữ nhật bằng cách nhập chiều dài và chiều rộng, sau đó in kết quả. Công thức bạn gõ nhầm là `dien_tich = chieu_dai + chieu_rong` thay vì `dien_tich = chieu_dai * chieu_rong`. Chương trình vẫn chạy bình thường, không báo lỗi, nhưng kết quả in ra luôn sai. Đây là loại lỗi gì?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 4: Trong các loại lỗi chương trình đã học (cú pháp, ngoại lệ, ngữ nghĩa), loại lỗi nào thường khó phát hiện và sửa chữa nhất, vì chương trình vẫn chạy nhưng cho kết quả sai?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 5: Để tìm và sửa các lỗi trong chương trình, chúng ta cần thực hiện quá trình nào?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 6: Quá trình chạy thử chương trình với các bộ dữ liệu đầu vào khác nhau để phát hiện ra lỗi được gọi là gì?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 7: Khi kiểm thử một chương trình, việc tạo ra các bộ dữ liệu kiểm thử đa dạng có mục đích chính là gì?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 8: Để kiểm thử một chương trình tính điểm trung bình của học sinh (điểm từ 0 đến 10), bộ dữ liệu kiểm thử nào sau đây được xem là trường hợp đặc biệt hoặc biên?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 9: Giả sử bạn có một chương trình xử lý danh sách các số nguyên. Để kiểm thử trường hợp rỗng (empty case), bạn nên sử dụng bộ dữ liệu nào?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 10: Công cụ nào trong môi trường lập trình (IDE) giúp bạn tạm dừng chương trình tại một dòng lệnh cụ thể và xem giá trị của các biến tại thời điểm đó?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 11: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác 'Step Over' (Bước qua) có ý nghĩa gì?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 12: Khi sử dụng công cụ gỡ lỗi (debugger), thao tác 'Step Into' (Bước vào) có ý nghĩa gì?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 13: Kỹ thuật gỡ lỗi bằng cách chèn thêm các câu lệnh `print()` vào chương trình để hiển thị giá trị của các biến hoặc thông báo về luồng thực thi được gọi là gì?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 14: Lỗi ngữ nghĩa (Semantic Error) thường khó phát hiện hơn lỗi cú pháp và ngoại lệ vì lý do chính nào sau đây?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 15: Khi một lỗi ngoại lệ (Exception) xảy ra trong chương trình Python, thông báo lỗi (traceback) thường cung cấp những thông tin hữu ích nào để gỡ lỗi?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 16: Bạn viết một chương trình để tính tổng các số từ 1 đến N. Bạn sử dụng vòng lặp `for i in range(N):` và cộng `i` vào tổng. Khi chạy với N=5, kết quả là 10 (tổng của 0+1+2+3+4) thay vì 15 (tổng của 1+2+3+4+5). Đây là một ví dụ về lỗi gì?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 17: Mục tiêu chính của việc kiểm thử chương trình với 'trường hợp điển hình' (typical cases) là gì?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 18: Bạn đang gỡ lỗi một chương trình phức tạp. Bạn nghi ngờ có một biến bị gán sai giá trị ở giữa quá trình thực hiện. Phương pháp gỡ lỗi nào sau đây hiệu quả nhất để xác định chính xác dòng lệnh nào làm thay đổi giá trị của biến đó và giá trị của nó tại các bước?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 19: Thư viện chuẩn nào trong Python cung cấp các dịch vụ hỗ trợ gỡ lỗi tương tác?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 20: Khi một lỗi ngoại lệ (Exception) xảy ra, chương trình Python mặc định sẽ làm gì nếu không có cơ chế xử lý lỗi (như `try...except`)?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 21: Bạn viết một chương trình đọc dữ liệu từ một file có tên `data.txt`. Nếu file này không tồn tại khi chương trình chạy, loại lỗi nào có khả năng xảy ra?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 22: Quy trình gỡ lỗi cơ bản thường bao gồm các bước: 1. Xác định lỗi; 2. Sửa lỗi; 3. Tìm vị trí lỗi; 4. Kiểm thử lại. Thứ tự đúng của các bước này là gì?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 23: Tại sao việc kiểm thử các 'trường hợp biên' (boundary cases) lại quan trọng?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 24: Công cụ gỡ lỗi (debugger) giúp ích gì trong việc tìm lỗi ngoại lệ?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 25: Bạn có một chương trình tính tiền giảm giá. Nếu tổng hóa đơn trên 1.000.000 VNĐ thì giảm 10%, ngược lại không giảm. Bạn kiểm thử với hóa đơn 1.000.000 VNĐ và chương trình không áp dụng giảm giá. Đây có thể là lỗi gì?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 26: Khi phát hiện một lỗi trong chương trình, bước đầu tiên quan trọng nhất trong quy trình gỡ lỗi là gì?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 27: Việc kiểm thử với 'trường hợp đặc biệt' (special cases) nhằm mục đích gì?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 28: Bạn đã sửa một lỗi trong chương trình. Bước tiếp theo CẦN THIẾT sau khi sửa lỗi là gì để đảm bảo lỗi đã được khắc phục hoàn toàn và không gây ra lỗi mới?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 29: Trong Python, lỗi `TypeError` (Lỗi kiểu dữ liệu) là một dạng của lỗi nào?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 05

Câu 30: Giả sử bạn có một chương trình xử lý danh sách và bạn cố gắng truy cập vào phần tử ở chỉ mục (index) 10 trong một danh sách chỉ có 5 phần tử. Loại lỗi nào sẽ xảy ra trong trường hợp này?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 06

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 06 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong lập trình, lỗi xảy ra khi các câu lệnh không tuân thủ đúng quy tắc viết của ngôn ngữ lập trình (ví dụ: thiếu dấu hai chấm sau câu lệnh `if`, sai tên hàm dựng sẵn) được gọi là loại lỗi nào?

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

Câu 2: Một chương trình Python được viết đúng cú pháp, nhưng khi chạy với dữ liệu đầu vào là 0 cho phép chia, chương trình dừng đột ngột và báo lỗi `ZeroDivisionError`. Đây là ví dụ về loại lỗi nào?

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

Câu 3: Một chương trình tính diện tích hình chữ nhật nhưng lại sử dụng công thức tính chu vi (nhân tổng hai cạnh với 2 thay vì nhân hai cạnh). Chương trình vẫn chạy và cho ra kết quả, nhưng kết quả đó sai so với yêu cầu bài toán. Loại lỗi này là gì?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngữ nghĩa (Semantic Error)
  • C. Lỗi ngoại lệ (Exception Error)
  • D. Lỗi thời gian chạy (Runtime Error)

Câu 4: Lỗi nào trong các loại lỗi sau đây thường khó phát hiện nhất chỉ bằng cách đọc mã nguồn hoặc dựa vào thông báo lỗi tự động của trình biên dịch/thông dịch?

  • A. Lỗi cú pháp
  • B. Lỗi ngữ nghĩa
  • C. Lỗi ngoại lệ
  • D. Lỗi thời gian chạy

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

  • A. Để chương trình chạy nhanh hơn.
  • B. Để làm cho mã nguồn ngắn gọn hơn.
  • C. Để chuyển đổi chương trình sang ngôn ngữ máy.
  • D. Để tìm ra lỗi và đảm bảo chương trình hoạt động đúng như mong đợi.

Câu 6: Khi kiểm thử chương trình, việc tạo ra các bộ dữ liệu đầu vào và xác định kết quả đầu ra mong muốn tương ứng được gọi là gì?

  • A. Thiết kế ca kiểm thử (Test case design)
  • B. Gỡ lỗi (Debugging)
  • C. Biên dịch (Compiling)
  • D. Phân tích cú pháp (Parsing)

Câu 7: Để kiểm thử một chương trình tính căn bậc hai của một số không âm, bộ dữ liệu kiểm thử nào sau đây thuộc nhóm "trường hợp đặc biệt"?

  • A. Số 9 (số dương thông thường)
  • B. Số 0
  • C. Số 100 (số dương lớn)
  • D. Số -4 (số âm)

Câu 8: Khi kiểm thử một chương trình xử lý điểm số học sinh (từ 0 đến 10), bộ dữ liệu kiểm thử nào sau đây thuộc nhóm "trường hợp biên"?

  • A. Điểm 7.5
  • B. Điểm 5
  • C. Điểm 15
  • D. Điểm 0 và điểm 10

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

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

Câu 10: Kỹ thuật gỡ lỗi nào bao gồm việc thêm các câu lệnh tạm thời (ví dụ: `print`) vào chương trình để hiển thị giá trị của các biến hoặc thông báo quá trình thực hiện tại các điểm khác nhau?

  • A. Sử dụng trình gỡ lỗi (Debugger)
  • B. Truy vết bằng tay (Manual tracing/Print debugging)
  • C. Kiểm thử đơn vị (Unit testing)
  • D. Kiểm tra cú pháp tự động

Câu 11: Đâu là một trong những lợi ích chính của việc sử dụng công cụ trình gỡ lỗi (debugger) so với truy vết bằng tay?

  • A. Cho phép dừng chương trình tại bất kỳ điểm nào (breakpoint) và xem giá trị các biến.
  • B. Tự động sửa tất cả các lỗi trong mã nguồn.
  • C. Làm cho chương trình chạy nhanh hơn đáng kể.
  • D. Loại bỏ hoàn toàn nhu cầu viết mã kiểm thử.

Câu 12: Khi sử dụng trình gỡ lỗi, thao tác "Step Over" (Bước qua) thường có ý nghĩa gì?

  • A. Chạy thẳng đến điểm dừng tiếp theo.
  • B. Thực hiện từng dòng lệnh bên trong một hàm được gọi.
  • C. Thực hiện toàn bộ một hàm được gọi như một bước duy nhất mà không đi sâu vào bên trong.
  • D. Dừng phiên gỡ lỗi hiện tại.

Câu 13: Python Debugger (PDB) là một thư viện giúp ích cho công việc nào sau đây?

  • A. Gỡ lỗi (Debugging)
  • B. Xử lý đồ họa
  • C. Truy cập cơ sở dữ liệu
  • D. Kết nối mạng

Câu 14: Sau khi đã xác định, định vị và sửa một lỗi 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. Chuyển sang tìm lỗi khác.
  • B. Hoàn thành chương trình.
  • C. Xóa tất cả các câu lệnh `print` đã thêm vào.
  • D. Kiểm thử lại chương trình, đặc biệt với bộ dữ liệu đã gây ra lỗi đó.

Câu 15: Khi kiểm thử một chương trình tính tiền cước taxi dựa trên quãng đường, nếu quãng đường là số âm thì điều gì có khả năng xảy ra nhất?

  • A. Chương trình có thể gặp lỗi ngoại lệ hoặc tính toán sai kết quả (lỗi ngữ nghĩa).
  • B. Chương trình sẽ tự động làm tròn số âm thành 0 và tính đúng.
  • C. Đây là một trường hợp kiểm thử bình thường, không gây ra lỗi.
  • D. Trình thông dịch Python sẽ tự động báo lỗi cú pháp trước khi chạy.

Câu 16: Cho đoạn mã Python: `x = 10
y = "5"
z = x + y`. Khi chạy đoạn mã này, lỗi gì sẽ xảy ra?

  • A. Lỗi cú pháp do thiếu dấu chấm phẩy.
  • B. Lỗi ngữ nghĩa do kết quả tính toán sai.
  • C. Lỗi ngoại lệ `ZeroDivisionError`.
  • D. Lỗi ngoại lệ `TypeError` do cộng hai kiểu dữ liệu không tương thích.

Câu 17: Đâu KHÔNG PHẢI là một loại dữ liệu kiểm thử quan trọng cần xem xét khi kiểm thử chương trình?

  • A. Dữ liệu điển hình (Typical cases)
  • B. Dữ liệu biên (Boundary cases)
  • C. Dữ liệu ngẫu nhiên hoàn toàn không có kế hoạch
  • D. Dữ liệu đặc biệt (Special cases)

Câu 18: Khi phân tích một lỗi, việc đầu tiên cần làm là gì?

  • A. Hiểu rõ triệu chứng lỗi (chương trình hoạt động sai như thế nào, thông báo lỗi là gì).
  • B. Ngay lập tức thay đổi các dòng mã nghi ngờ.
  • C. Chạy chương trình với tất cả các bộ dữ liệu có thể.
  • D. Hỏi người khác cách sửa lỗi.

Câu 19: Giả sử bạn có một chương trình tính tổng các số từ 1 đến N. Nếu bạn nhập N = 1000000 và chương trình chạy rất chậm, đây có thể là dấu hiệu của vấn đề gì liên quan đến kiểm thử?

  • A. Lỗi cú pháp.
  • B. Chưa kiểm thử với dữ liệu có kích thước lớn (Performance testing concern).
  • C. Lỗi ngoại lệ `IndexError`.
  • D. Lỗi ngữ nghĩa đơn giản.

Câu 20: Việc ghi lại các bộ dữ liệu kiểm thử đã sử dụng và kết quả mong muốn/thực tế của chúng có lợi ích gì trong quá trình phát triển phần mềm?

  • A. Giúp chương trình tự sửa lỗi.
  • B. Làm cho chương trình chạy nhanh hơn.
  • C. Tự động tạo ra mã nguồn mới.
  • D. Giúp kiểm thử lại dễ dàng hơn sau khi sửa lỗi hoặc thay đổi mã nguồn.

Câu 21: Khi sử dụng trình gỡ lỗi, "breakpoint" (điểm dừng) có chức năng gì?

  • A. Đánh dấu một dòng lệnh mà tại đó chương trình sẽ tạm dừng thực hiện để người dùng kiểm tra.
  • B. Đánh dấu một dòng lệnh bị lỗi cú pháp.
  • C. Đánh dấu phần mã nguồn cần được tối ưu hóa.
  • D. Đánh dấu điểm cuối của chương trình.

Câu 22: Cho đoạn mã: `a = 5
b = 0
if b != 0:
c = a / b
print(c)
else:
print("Không thể chia cho 0")`. Khi chạy đoạn mã này, điều gì sẽ xảy ra?

  • A. Chương trình in ra "Không thể chia cho 0".
  • B. Chương trình báo lỗi ngoại lệ `ZeroDivisionError`.
  • C. Chương trình in ra một số.
  • D. Chương trình báo lỗi cú pháp.

Câu 23: Dựa trên câu 22, nếu bỏ đi khối lệnh `else` và chỉ giữ lại `if b != 0: c = a / b; print(c)`, khi chạy với `b = 0`, lỗi gì sẽ xảy ra?

  • A. Chương trình không làm gì cả và kết thúc bình thường.
  • B. Chương trình báo lỗi ngoại lệ `ZeroDivisionError`.
  • C. Chương trình in ra kết quả phép chia.
  • D. Chương trình báo lỗi cú pháp.

Câu 24: Đâu là một phương pháp hiệu quả để tìm ra nguyên nhân của lỗi ngữ nghĩa trong một chương trình phức tạp?

  • A. Đọc lướt qua toàn bộ mã nguồn một cách nhanh chóng.
  • B. Thay đổi ngẫu nhiên các dòng mã cho đến khi chương trình hoạt động đúng.
  • C. Sử dụng trình gỡ lỗi để chạy từng bước và kiểm tra giá trị của các biến tại các điểm khác nhau.
  • D. Tập trung sửa các lỗi cú pháp (vì lỗi ngữ nghĩa thường đi kèm với lỗi cú pháp).

Câu 25: Bạn viết một chương trình nhận vào một danh sách các số và tính trung bình cộng. Khi nhập danh sách rỗng `[]`, chương trình báo lỗi ngoại lệ. Đây là ví dụ về việc kiểm thử với loại dữ liệu nào cần được xem xét?

  • A. Trường hợp đặc biệt (danh sách rỗng)
  • B. Trường hợp điển hình (danh sách có nhiều phần tử dương)
  • C. Trường hợp biên (danh sách có một phần tử)
  • D. Không phải lỗi, đây là hành vi bình thường.

Câu 26: Trong quy trình gỡ lỗi, bước nào thường tốn nhiều thời gian và công sức nhất?

  • A. Xác định rằng có lỗi xảy ra.
  • B. Định vị (tìm ra chính xác) vị trí của lỗi trong mã nguồn.
  • C. Sửa lỗi.
  • D. Kiểm thử lại sau khi sửa lỗi.

Câu 27: Trình gỡ lỗi (debugger) giúp ích gì trong việc phân tích lỗi?

  • A. Tự động viết báo cáo lỗi chi tiết.
  • B. Chỉ phát hiện lỗi cú pháp.
  • C. Tự động sửa lỗi ngữ nghĩa.
  • D. Cho phép theo dõi luồng thực thi của chương trình và trạng thái của các biến.

Câu 28: Giả sử bạn viết một hàm tính giai thừa của một số nguyên không âm. Để kiểm thử kỹ lưỡng, bạn nên tạo bộ dữ liệu kiểm thử nào sau đây?

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

Câu 29: Lỗi nào thường được phát hiện sớm nhất trong quá trình viết mã, ngay cả trước khi chạy chương trình?

  • A. Lỗi cú pháp
  • B. Lỗi ngữ nghĩa
  • C. Lỗi ngoại lệ
  • D. Lỗi logic

Câu 30: Khi một chương trình chạy thành công với dữ liệu kiểm thử điển hình nhưng lại cho kết quả sai với dữ liệu biên hoặc dữ liệu đặc biệt, loại lỗi nào có khả năng cao nhất đang tồn tại?

  • A. Lỗi cú pháp nghiêm trọng.
  • B. Lỗi ngữ nghĩa hoặc lỗi xử lý trường hợp đặc biệt/biên.
  • C. Lỗi ngoại lệ không thể khắc phục.
  • D. Chương trình không có lỗi, dữ liệu kiểm thử không phù hợp.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 1: Trong lập trình, lỗi xảy ra khi các câu lệnh không tuân thủ đúng quy tắc viết của ngôn ngữ lập trình (ví dụ: thiếu dấu hai chấm sau câu lệnh `if`, sai tên hàm dựng sẵn) được gọi là loại lỗi nào?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 2: Một chương trình Python được viết đúng cú pháp, nhưng khi chạy với dữ liệu đầu vào là 0 cho phép chia, chương trình dừng đột ngột và báo lỗi `ZeroDivisionError`. Đây là ví dụ về loại lỗi nào?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 3: Một chương trình tính diện tích hình chữ nhật nhưng lại sử dụng công thức tính chu vi (nhân tổng hai cạnh với 2 thay vì nhân hai cạnh). Chương trình vẫn chạy và cho ra kết quả, nhưng kết quả đó sai so với yêu cầu bài toán. Loại lỗi này là gì?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 4: Lỗi nào trong các loại lỗi sau đây thường khó phát hiện nhất chỉ bằng cách đọc mã nguồn hoặc dựa vào thông báo lỗi tự động của trình biên dịch/thông dịch?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 6: Khi kiểm thử chương trình, việc tạo ra các bộ dữ liệu đầu vào và xác định kết quả đầu ra mong muốn tương ứng được gọi là gì?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 7: Để kiểm thử một chương trình tính căn bậc hai của một số không âm, bộ dữ liệu kiểm thử nào sau đây thuộc nhóm 'trường hợp đặc biệt'?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 8: Khi kiểm thử một chương trình xử lý điểm số học sinh (từ 0 đến 10), bộ dữ liệu kiểm thử nào sau đây thuộc nhóm 'trường hợp biên'?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

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

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 10: Kỹ thuật gỡ lỗi nào bao gồm việc thêm các câu lệnh tạm thời (ví dụ: `print`) vào chương trình để hiển thị giá trị của các biến hoặc thông báo quá trình thực hiện tại các điểm khác nhau?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 11: Đâu là một trong những lợi ích chính của việc sử dụng công cụ trình gỡ lỗi (debugger) so với truy vết bằng tay?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 12: Khi sử dụng trình gỡ lỗi, thao tác 'Step Over' (Bước qua) thường có ý nghĩa gì?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 13: Python Debugger (PDB) là một thư viện giúp ích cho công việc nào sau đây?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 14: Sau khi đã xác định, định vị và sửa một lỗi trong chương trình, bước tiếp theo quan trọng nhất trong quy trình gỡ lỗi là gì?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 15: Khi kiểm thử một chương trình tính tiền cước taxi dựa trên quãng đường, nếu quãng đường là số âm thì điều gì có khả năng xảy ra nhất?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 16: Cho đoạn mã Python: `x = 10
y = '5'
z = x + y`. Khi chạy đoạn mã này, lỗi gì sẽ xảy ra?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 17: Đâu KHÔNG PHẢI là một loại dữ liệu kiểm thử quan trọng cần xem xét khi kiểm thử chương trình?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 18: Khi phân tích một lỗi, việc đầu tiên cần làm là gì?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 19: Giả sử bạn có một chương trình tính tổng các số từ 1 đến N. Nếu bạn nhập N = 1000000 và chương trình chạy rất chậm, đây có thể là dấu hiệu của vấn đề gì liên quan đến kiểm thử?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 20: Việc ghi lại các bộ dữ liệu kiểm thử đã sử dụng và kết quả mong muốn/thực tế của chúng có lợi ích gì trong quá trình phát triển phần mềm?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 21: Khi sử dụng trình gỡ lỗi, 'breakpoint' (điểm dừng) có chức năng gì?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 22: Cho đoạn mã: `a = 5
b = 0
if b != 0:
c = a / b
print(c)
else:
print('Không thể chia cho 0')`. Khi chạy đoạn mã này, điều gì sẽ xảy ra?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 23: Dựa trên câu 22, nếu bỏ đi khối lệnh `else` và chỉ giữ lại `if b != 0: c = a / b; print(c)`, khi chạy với `b = 0`, lỗi gì sẽ xảy ra?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 24: Đâu là một phương pháp hiệu quả để tìm ra nguyên nhân của lỗi ngữ nghĩa trong một chương trình phức tạp?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 25: Bạn viết một chương trình nhận vào một danh sách các số và tính trung bình cộng. Khi nhập danh sách rỗng `[]`, chương trình báo lỗi ngoại lệ. Đây là ví dụ về việc kiểm thử với loại dữ liệu nào cần được xem xét?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 26: Trong quy trình gỡ lỗi, bước nào thường tốn nhiều thời gian và công sức nhất?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 27: Trình gỡ lỗi (debugger) giúp ích gì trong việc phân tích lỗi?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 28: Giả sử bạn viết một hàm tính giai thừa của một số nguyên không âm. Để kiểm thử kỹ lưỡng, bạn nên tạo bộ dữ liệu kiểm thử nào sau đây?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 29: Lỗi nào thường được phát hiện sớm nhất trong quá trình viết mã, ngay cả trước khi chạy chương trình?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 06

Câu 30: Khi một chương trình chạy thành công với dữ liệu kiểm thử điển hình nhưng lại cho kết quả sai với dữ liệu biên hoặc dữ liệu đặc biệt, loại lỗi nào có khả năng cao nhất đang tồn tại?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 07

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 07 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong lập trình, khi bạn viết một câu lệnh không tuân thủ các quy tắc ngữ pháp (cấu trúc) của ngôn ngữ lập trình (ví dụ: thiếu dấu hai chấm, sai tên hàm), loại lỗi nào sau đây thường xuất hiện?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Lỗi thời gian chạy (Runtime Error)

Câu 2: Xét đoạn mã Python sau: `num_str =

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error), cụ thể là ValueError
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Không có lỗi xảy ra

Câu 3: Một chương trình được thiết kế để tính tổng các số chẵn từ 1 đến N. Tuy nhiên, lập trình viên lại viết mã để tính tổng tất cả các số từ 1 đến N. Khi chạy chương trình, nó không báo lỗi cú pháp hay ngoại lệ, nhưng kết quả đưa ra lại sai so với yêu cầu ban đầu. Đây là ví dụ về loại lỗi nào?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Lỗi thời gian biên dịch (Compile-time Error)

Câu 4: Công việc nào sau đây thuộc về giai đoạn "kiểm thử" chương trình?

  • A. Sửa lỗi cú pháp do trình biên dịch báo cáo.
  • B. Tìm dòng mã gây ra lỗi ngoại lệ.
  • C. Thay đổi logic tính toán để có kết quả đúng.
  • D. Chạy chương trình với các bộ dữ liệu khác nhau để tìm ra lỗi.

Câu 5: Khi kiểm thử một chương trình, tại sao việc sử dụng các bộ dữ liệu "đặc biệt" (ví dụ: giá trị biên, giá trị âm nếu không hợp lệ, giá trị lặp lại) lại quan trọng?

  • A. Chúng giúp phát hiện các lỗi ngữ nghĩa hoặc ngoại lệ mà dữ liệu thông thường không làm lộ ra.
  • B. Chúng làm cho chương trình chạy nhanh hơn.
  • C. Chúng chỉ cần thiết khi chương trình quá phức tạp.
  • D. Chúng giúp kiểm tra lỗi cú pháp.

Câu 6: Quá trình "truy vết" (tracing) chương trình thủ công là gì?

  • A. Sử dụng trình gỡ lỗi tự động để tìm lỗi.
  • B. Thực hiện từng bước chương trình trong đầu hoặc trên giấy, ghi lại giá trị các biến sau mỗi bước.
  • C. Chỉ chạy chương trình với một bộ dữ liệu duy nhất.
  • D. Kiểm tra lại cú pháp của toàn bộ mã nguồn.

Câu 7: Công cụ "debugger" (trình gỡ lỗi) cung cấp khả năng chính nào giúp ích cho việc tìm và sửa lỗi?

  • A. Tự động sửa tất cả các lỗi trong mã nguồn.
  • B. Biên dịch mã nguồn thành mã máy nhanh hơn.
  • C. Cho phép chạy chương trình từng bước, xem giá trị các biến và điểm dừng thực thi.
  • D. Tự động tạo ra các bộ dữ liệu kiểm thử.

Câu 8: Khi bạn gặp một lỗi ngoại lệ (Exception Error) trong Python, ví dụ `TypeError: can only concatenate str (not

  • A. Loại lỗi xảy ra và dòng mã gây ra lỗi.
  • B. Nguyên nhân gốc rễ duy nhất của lỗi.
  • C. Cách sửa lỗi chi tiết.
  • D. Bộ dữ liệu kiểm thử cần sử dụng.

Câu 9: Giả sử bạn có một chương trình tính diện tích hình vuông với cạnh là `a`. Công thức đúng là `dien_tich = a * a`. Nếu bạn viết nhầm thành `dien_tich = a + a`, chương trình sẽ mắc loại lỗi nào?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa
  • D. Lỗi thời gian chạy

Câu 10: Khi kiểm thử một chương trình xử lý danh sách, bộ dữ liệu nào sau đây được coi là "trường hợp đặc biệt"?

  • A. Danh sách chứa 10 phần tử số nguyên dương ngẫu nhiên.
  • B. Danh sách rỗng hoặc danh sách chỉ chứa một phần tử.
  • C. Danh sách chứa 1000 phần tử số thực.
  • D. Danh sách chứa các chuỗi ký tự.

Câu 11: Trong quá trình gỡ lỗi, sau khi bạn đã xác định được vị trí và nguyên nhân của một lỗi, bước tiếp theo quan trọng nhất là gì?

  • A. Sửa lỗi và kiểm thử lại chương trình, đặc biệt với bộ dữ liệu đã gây ra lỗi.
  • B. Chuyển sang tìm lỗi tiếp theo mà không cần kiểm thử lại.
  • C. Xóa toàn bộ đoạn mã chứa lỗi.
  • D. Đóng chương trình và bắt đầu lại từ đầu.

Câu 12: Lỗi nào sau đây thường là khó phát hiện và sửa chữa nhất, vì chương trình vẫn chạy nhưng cho kết quả sai?

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

Câu 13: Bạn viết một chương trình yêu cầu người dùng nhập tuổi và in ra nhóm tuổi. Nếu người dùng nhập một chuỗi không phải số (ví dụ:

  • A. Sử dụng khối lệnh `try-except` để bắt lỗi và thông báo cho người dùng.
  • B. Chỉ sử dụng câu lệnh `if-else` để kiểm tra kiểu dữ liệu.
  • C. Bỏ qua việc kiểm tra dữ liệu nhập vào.
  • D. Yêu cầu người dùng chỉ nhập số ngay từ đầu.

Câu 14: Khi sử dụng trình gỡ lỗi (debugger), "điểm dừng" (breakpoint) có chức năng gì?

  • A. Tự động sửa lỗi tại dòng mã đó.
  • B. Bỏ qua việc thực thi dòng mã đó.
  • C. Đánh dấu dòng mã có lỗi cú pháp.
  • D. Tạm dừng việc thực thi chương trình tại dòng mã được đánh dấu để kiểm tra trạng thái.

Câu 15: Xét đoạn mã: `a = 5; b = 0; c = a / b`. Lỗi nào sẽ xảy ra khi chạy đoạn mã này?

  • A. ZeroDivisionError (một loại lỗi ngoại lệ)
  • B. SyntaxError
  • C. TypeError
  • D. Không có lỗi

Câu 16: Mục đích chính của việc kiểm thử chương trình với "các trường hợp thường gặp" là gì?

  • A. Tìm các lỗi ngoại lệ khó nhất.
  • B. Kiểm tra xem chương trình có hoạt động đúng với các dữ liệu đầu vào phổ biến, điển hình hay không.
  • C. Đảm bảo chương trình không có lỗi cú pháp.
  • D. Kiểm tra hiệu suất của chương trình với dữ liệu lớn.

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

  • A. Chương trình tự động sửa lỗi và tiếp tục chạy.
  • B. Chương trình bỏ qua câu lệnh gây lỗi và tiếp tục.
  • C. Chương trình tự động tạo ra một báo cáo lỗi chi tiết gửi cho nhà phát triển.
  • D. Chương trình dừng đột ngột (crash) và hiển thị thông báo lỗi.

Câu 18: Bạn có một chương trình nhỏ tính bình phương của một số nguyên dương. Bạn kiểm thử với số 5, kết quả là 25 (đúng). Bạn kiểm thử với số 10, kết quả là 100 (đúng). Tuy nhiên, khi kiểm thử với số -2, chương trình lại cho kết quả là 4 (đúng, nhưng yêu cầu chỉ xử lý số nguyên dương). Loại lỗi nào (nếu có) đang tồn tại dựa trên yêu cầu ban đầu?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (chương trình xử lý sai phạm vi dữ liệu đầu vào theo yêu cầu)
  • D. Không có lỗi

Câu 19: Phương pháp nào sau đây ít hiệu quả nhất để tìm lỗi ngữ nghĩa trong một chương trình phức tạp?

  • A. Chỉ đọc lại mã nguồn một cách lướt qua.
  • B. Sử dụng trình gỡ lỗi để theo dõi giá trị biến.
  • C. Chạy chương trình với nhiều bộ dữ liệu kiểm thử khác nhau.
  • D. Thêm các câu lệnh `print` để in ra giá trị trung gian của các biến.

Câu 20: Khi phát triển phần mềm, quá trình nào giúp đảm bảo rằng các thay đổi (ví dụ: sửa lỗi) không làm hỏng các chức năng đã hoạt động trước đó?

  • A. Kiểm thử cú pháp
  • B. Kiểm thử hồi quy (Regression Testing)
  • C. Kiểm thử ngoại lệ
  • D. Kiểm thử dữ liệu lớn

Câu 21: Xét đoạn mã: `my_list = [10, 20, 30]`. Nếu bạn cố gắng truy cập `print(my_list[3])`, lỗi nào sẽ xảy ra?

  • A. SyntaxError
  • B. ValueError
  • C. TypeError
  • D. IndexError (một loại lỗi ngoại lệ)

Câu 22: Bạn đang sử dụng trình gỡ lỗi và thấy rằng tại một dòng mã cụ thể, giá trị của một biến không như bạn mong đợi. Điều này gợi ý điều gì về vị trí của lỗi ngữ nghĩa?

  • A. Lỗi có thể nằm ở dòng mã đó hoặc ở trước dòng mã đó, làm biến có giá trị sai.
  • B. Lỗi chắc chắn nằm ở dòng mã đó.
  • C. Lỗi chắc chắn nằm ở sau dòng mã đó.
  • D. Giá trị biến sai không liên quan đến lỗi.

Câu 23: Việc thêm các câu lệnh `print()` tạm thời vào chương trình để hiển thị giá trị của các biến hoặc thông báo vị trí thực thi là một kỹ thuật đơn giản để hỗ trợ quá trình nào?

  • A. Kiểm thử cú pháp tự động.
  • B. Truy vết (tracing) thủ công và gỡ lỗi.
  • C. Biên dịch chương trình.
  • D. Tối ưu hóa hiệu suất chương trình.

Câu 24: Khi kiểm thử một chương trình xử lý số, bộ dữ liệu kiểm thử nào sau đây được coi là "trường hợp biên" (boundary case)?

  • A. Một số nguyên dương lớn bất kỳ.
  • B. Một số thực âm nhỏ.
  • C. Giá trị nhỏ nhất hoặc lớn nhất mà chương trình dự kiến xử lý (ví dụ: 0 hoặc 100 nếu phạm vi là 0-100).
  • D. Một chuỗi ký tự không phải số.

Câu 25: Lỗi ngoại lệ (Exception Error) khác lỗi cú pháp (Syntax Error) ở điểm nào?

  • A. Lỗi cú pháp được phát hiện trước khi chương trình chạy, còn lỗi ngoại lệ xảy ra trong khi chương trình đang thực thi.
  • B. Lỗi cú pháp dễ sửa hơn lỗi ngoại lệ.
  • C. Lỗi ngoại lệ luôn làm chương trình dừng, còn lỗi cú pháp thì không.
  • D. Lỗi ngoại lệ chỉ liên quan đến dữ liệu nhập, còn lỗi cú pháp liên quan đến cấu trúc mã.

Câu 26: Quá trình nào tập trung vào việc tìm ra lỗi trong chương trình, trong khi quá trình còn lại tập trung vào việc xác định nguyên nhân và sửa lỗi đó?

  • A. Gỡ lỗi và Kiểm thử
  • B. Kiểm thử và Gỡ lỗi
  • C. Biên dịch và Thông dịch
  • D. Phân tích và Thiết kế

Câu 27: Bạn đang viết một chương trình để tính giá trị trung bình của một danh sách các số. Nếu danh sách đó rỗng, phép chia cho số lượng phần tử (là 0) sẽ gây ra lỗi. Đây là một ví dụ điển hình cho trường hợp nào cần kiểm thử?

  • A. Trường hợp đặc biệt hoặc trường hợp biên.
  • B. Trường hợp thường gặp.
  • C. Trường hợp dữ liệu lớn.
  • D. Trường hợp lỗi cú pháp.

Câu 28: Một chương trình Python có dòng mã `for i in range(1, 5): print(i)`. Nếu bạn muốn xem giá trị của biến `i` sau mỗi lần lặp khi chạy chương trình bằng trình gỡ lỗi, bạn sẽ sử dụng tính năng nào?

  • A. Chạy chương trình bình thường.
  • B. Chỉ đặt điểm dừng ở đầu chương trình.
  • C. Đặt điểm dừng bên trong vòng lặp và xem giá trị biến `i` khi chương trình tạm dừng.
  • D. Biên dịch lại chương trình.

Câu 29: Lỗi nào sau đây không làm cho chương trình dừng đột ngột nhưng lại dẫn đến kết quả tính toán hoặc hành vi sai lệch so với yêu cầu?

  • A. Lỗi cú pháp
  • B. Lỗi ngữ nghĩa
  • C. Lỗi ngoại lệ (Runtime Error)
  • D. ZeroDivisionError

Câu 30: Tại sao việc kiểm thử chương trình với "các trường hợp tham số nhận giá trị lớn nhất có thể" lại quan trọng?

  • A. Để tìm lỗi cú pháp.
  • B. Để đảm bảo chương trình chạy nhanh trên mọi dữ liệu.
  • C. Để tìm lỗi ngữ nghĩa đơn giản.
  • D. Để kiểm tra hiệu suất, sử dụng bộ nhớ và phát hiện các lỗi liên quan đến giới hạn xử lý của chương trình.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 1: Trong lập trình, khi bạn viết một câu lệnh không tuân thủ các quy tắc ngữ pháp (cấu trúc) của ngôn ngữ lập trình (ví dụ: thiếu dấu hai chấm, sai tên hàm), loại lỗi nào sau đây thường xuất hiện?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 2: Xét đoạn mã Python sau: `num_str = "123a"`. Nếu bạn cố gắng thực hiện `num_int = int(num_str)`, loại lỗi nào có khả năng xảy ra nhất khi chương trình chạy?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 3: Một chương trình được thiết kế để tính tổng các số chẵn từ 1 đến N. Tuy nhiên, lập trình viên lại viết mã để tính tổng tất cả các số từ 1 đến N. Khi chạy chương trình, nó không báo lỗi cú pháp hay ngoại lệ, nhưng kết quả đưa ra lại sai so với yêu cầu ban đầu. Đây là ví dụ về loại lỗi nào?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 4: Công việc nào sau đây thuộc về giai đoạn 'kiểm thử' chương trình?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 5: Khi kiểm thử một chương trình, tại sao việc sử dụng các bộ dữ liệu 'đặc biệt' (ví dụ: giá trị biên, giá trị âm nếu không hợp lệ, giá trị lặp lại) lại quan trọng?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 6: Quá trình 'truy vết' (tracing) chương trình thủ công là gì?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 7: Công cụ 'debugger' (trình gỡ lỗi) cung cấp khả năng chính nào giúp ích cho việc tìm và sửa lỗi?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 8: Khi bạn gặp một lỗi ngoại lệ (Exception Error) trong Python, ví dụ `TypeError: can only concatenate str (not "int") to str`, thông tin quan trọng nhất mà thông báo lỗi này cung cấp ngay lập tức là gì?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 9: Giả sử bạn có một chương trình tính diện tích hình vuông với cạnh là `a`. Công thức đúng là `dien_tich = a * a`. Nếu bạn viết nhầm thành `dien_tich = a + a`, chương trình sẽ mắc loại lỗi nào?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 10: Khi kiểm thử một chương trình xử lý danh sách, bộ dữ liệu nào sau đây được coi là 'trường hợp đặc biệt'?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 11: Trong quá trình gỡ lỗi, sau khi bạn đã xác định được vị trí và nguyên nhân của một lỗi, bước tiếp theo quan trọng nhất là gì?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 12: Lỗi nào sau đây thường là khó phát hiện và sửa chữa nhất, vì chương trình vẫn chạy nhưng cho kết quả sai?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 13: Bạn viết một chương trình yêu cầu người dùng nhập tuổi và in ra nhóm tuổi. Nếu người dùng nhập một chuỗi không phải số (ví dụ: "hai mươi"), chương trình có thể gặp lỗi ngoại lệ. Để xử lý tình huống này một cách 'mềm dẻo' (gracefully), bạn nên sử dụng kỹ thuật nào trong Python?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 14: Khi sử dụng trình gỡ lỗi (debugger), 'điểm dừng' (breakpoint) có chức năng gì?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 15: Xét đoạn mã: `a = 5; b = 0; c = a / b`. Lỗi nào sẽ xảy ra khi chạy đoạn mã này?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 16: Mục đích chính của việc kiểm thử chương trình với 'các trường hợp thường gặp' là gì?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

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

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 18: Bạn có một chương trình nhỏ tính bình phương của một số nguyên dương. Bạn kiểm thử với số 5, kết quả là 25 (đúng). Bạn kiểm thử với số 10, kết quả là 100 (đúng). Tuy nhiên, khi kiểm thử với số -2, chương trình lại cho kết quả là 4 (đúng, nhưng yêu cầu chỉ xử lý số nguyên dương). Loại lỗi nào (nếu có) đang tồn tại dựa trên *yêu cầu ban đầu*?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 19: Phương pháp nào sau đây ít hiệu quả nhất để tìm lỗi ngữ nghĩa trong một chương trình phức tạp?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 20: Khi phát triển phần mềm, quá trình nào giúp đảm bảo rằng các thay đổi (ví dụ: sửa lỗi) không làm hỏng các chức năng đã hoạt động trước đó?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 21: Xét đoạn mã: `my_list = [10, 20, 30]`. Nếu bạn cố gắng truy cập `print(my_list[3])`, lỗi nào sẽ xảy ra?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 22: Bạn đang sử dụng trình gỡ lỗi và thấy rằng tại một dòng mã cụ thể, giá trị của một biến không như bạn mong đợi. Điều này gợi ý điều gì về vị trí của lỗi ngữ nghĩa?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 23: Việc thêm các câu lệnh `print()` tạm thời vào chương trình để hiển thị giá trị của các biến hoặc thông báo vị trí thực thi là một kỹ thuật đơn giản để hỗ trợ quá trình nào?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 24: Khi kiểm thử một chương trình xử lý số, bộ dữ liệu kiểm thử nào sau đây được coi là 'trường hợp biên' (boundary case)?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 25: Lỗi ngoại lệ (Exception Error) khác lỗi cú pháp (Syntax Error) ở điểm nào?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 26: Quá trình nào tập trung vào việc tìm ra lỗi trong chương trình, trong khi quá trình còn lại tập trung vào việc xác định nguyên nhân và sửa lỗi đó?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 27: Bạn đang viết một chương trình để tính giá trị trung bình của một danh sách các số. Nếu danh sách đó rỗng, phép chia cho số lượng phần tử (là 0) sẽ gây ra lỗi. Đây là một ví dụ điển hình cho trường hợp nào cần kiểm thử?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 28: Một chương trình Python có dòng mã `for i in range(1, 5): print(i)`. Nếu bạn muốn xem giá trị của biến `i` sau mỗi lần lặp khi chạy chương trình bằng trình gỡ lỗi, bạn sẽ sử dụng tính năng nào?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 29: Lỗi nào sau đây *không* làm cho chương trình dừng đột ngột nhưng lại dẫn đến kết quả tính toán hoặc hành vi sai lệch so với yêu cầu?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 07

Câu 30: Tại sao việc kiểm thử chương trình với 'các trường hợp tham số nhận giá trị lớn nhất có thể' lại quan trọng?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 08

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 08 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong lập trình, khi bạn viết một câu lệnh không tuân thủ các quy tắc ngữ pháp (cấu trúc) của ngôn ngữ lập trình (ví dụ: thiếu dấu hai chấm, sai tên hàm), loại lỗi nào sau đây thường xuất hiện?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Lỗi thời gian chạy (Runtime Error)

Câu 2: Xét đoạn mã Python sau: `num_str =

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error), cụ thể là ValueError
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Không có lỗi xảy ra

Câu 3: Một chương trình được thiết kế để tính tổng các số chẵn từ 1 đến N. Tuy nhiên, lập trình viên lại viết mã để tính tổng tất cả các số từ 1 đến N. Khi chạy chương trình, nó không báo lỗi cú pháp hay ngoại lệ, nhưng kết quả đưa ra lại sai so với yêu cầu ban đầu. Đây là ví dụ về loại lỗi nào?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic/Logic Error)
  • D. Lỗi thời gian biên dịch (Compile-time Error)

Câu 4: Công việc nào sau đây thuộc về giai đoạn "kiểm thử" chương trình?

  • A. Sửa lỗi cú pháp do trình biên dịch báo cáo.
  • B. Tìm dòng mã gây ra lỗi ngoại lệ.
  • C. Thay đổi logic tính toán để có kết quả đúng.
  • D. Chạy chương trình với các bộ dữ liệu khác nhau để tìm ra lỗi.

Câu 5: Khi kiểm thử một chương trình, tại sao việc sử dụng các bộ dữ liệu "đặc biệt" (ví dụ: giá trị biên, giá trị âm nếu không hợp lệ, giá trị lặp lại) lại quan trọng?

  • A. Chúng giúp phát hiện các lỗi ngữ nghĩa hoặc ngoại lệ mà dữ liệu thông thường không làm lộ ra.
  • B. Chúng làm cho chương trình chạy nhanh hơn.
  • C. Chúng chỉ cần thiết khi chương trình quá phức tạp.
  • D. Chúng giúp kiểm tra lỗi cú pháp.

Câu 6: Quá trình "truy vết" (tracing) chương trình thủ công là gì?

  • A. Sử dụng trình gỡ lỗi tự động để tìm lỗi.
  • B. Thực hiện từng bước chương trình trong đầu hoặc trên giấy, ghi lại giá trị các biến sau mỗi bước.
  • C. Chỉ chạy chương trình với một bộ dữ liệu duy nhất.
  • D. Kiểm tra lại cú pháp của toàn bộ mã nguồn.

Câu 7: Công cụ "debugger" (trình gỡ lỗi) cung cấp khả năng chính nào giúp ích cho việc tìm và sửa lỗi?

  • A. Tự động sửa tất cả các lỗi trong mã nguồn.
  • B. Biên dịch mã nguồn thành mã máy nhanh hơn.
  • C. Cho phép chạy chương trình từng bước, xem giá trị các biến và điểm dừng thực thi.
  • D. Tự động tạo ra các bộ dữ liệu kiểm thử.

Câu 8: Khi bạn gặp một lỗi ngoại lệ (Exception Error) trong Python, ví dụ `TypeError: can only concatenate str (not

  • A. Loại lỗi xảy ra và dòng mã gây ra lỗi.
  • B. Nguyên nhân gốc rễ duy nhất của lỗi.
  • C. Cách sửa lỗi chi tiết.
  • D. Bộ dữ liệu kiểm thử cần sử dụng.

Câu 9: Giả sử bạn có một chương trình tính diện tích hình vuông với cạnh là `a`. Công thức đúng là `dien_tich = a * a`. Nếu bạn viết nhầm thành `dien_tich = a + a`, chương trình sẽ mắc loại lỗi nào?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa
  • D. Lỗi thời gian chạy

Câu 10: Khi kiểm thử một chương trình xử lý danh sách, bộ dữ liệu nào sau đây được coi là "trường hợp đặc biệt"?

  • A. Danh sách chứa 10 phần tử số nguyên dương ngẫu nhiên.
  • B. Danh sách rỗng hoặc danh sách chỉ chứa một phần tử.
  • C. Danh sách chứa 1000 phần tử số thực.
  • D. Danh sách chứa các chuỗi ký tự.

Câu 11: Trong quá trình gỡ lỗi, sau khi bạn đã xác định được vị trí và nguyên nhân của một lỗi, bước tiếp theo quan trọng nhất là gì?

  • A. Sửa lỗi và kiểm thử lại chương trình, đặc biệt với bộ dữ liệu đã gây ra lỗi.
  • B. Chuyển sang tìm lỗi tiếp theo mà không cần kiểm thử lại.
  • C. Xóa toàn bộ đoạn mã chứa lỗi.
  • D. Đóng chương trình và bắt đầu lại từ đầu.

Câu 12: Lỗi nào sau đây thường là khó phát hiện và sửa chữa nhất, vì chương trình vẫn chạy nhưng cho kết quả sai?

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

Câu 13: Bạn viết một chương trình yêu cầu người dùng nhập tuổi và in ra nhóm tuổi. Nếu người dùng nhập một chuỗi không phải số (ví dụ:

  • A. Sử dụng khối lệnh `try-except` để bắt lỗi và thông báo cho người dùng.
  • B. Chỉ sử dụng câu lệnh `if-else` để kiểm tra kiểu dữ liệu.
  • C. Bỏ qua việc kiểm tra dữ liệu nhập vào.
  • D. Yêu cầu người dùng chỉ nhập số ngay từ đầu.

Câu 14: Khi sử dụng trình gỡ lỗi (debugger), "điểm dừng" (breakpoint) có chức năng gì?

  • A. Tự động sửa lỗi tại dòng mã đó.
  • B. Bỏ qua việc thực thi dòng mã đó.
  • C. Đánh dấu dòng mã có lỗi cú pháp.
  • D. Tạm dừng việc thực thi chương trình tại dòng mã được đánh dấu để kiểm tra trạng thái.

Câu 15: Xét đoạn mã: `a = 5; b = 0; c = a / b`. Lỗi nào sẽ xảy ra khi chạy đoạn mã này?

  • A. ZeroDivisionError (một loại lỗi ngoại lệ)
  • B. SyntaxError
  • C. TypeError
  • D. Không có lỗi

Câu 16: Mục đích chính của việc kiểm thử chương trình với "các trường hợp thường gặp" là gì?

  • A. Tìm các lỗi ngoại lệ khó nhất.
  • B. Kiểm tra xem chương trình có hoạt động đúng với các dữ liệu đầu vào phổ biến, điển hình hay không.
  • C. Đảm bảo chương trình không có lỗi cú pháp.
  • D. Kiểm tra hiệu suất của chương trình với dữ liệu lớn.

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

  • A. Chương trình tự động sửa lỗi và tiếp tục chạy.
  • B. Chương trình bỏ qua câu lệnh gây lỗi và tiếp tục.
  • C. Chương trình tự động tạo ra một báo cáo lỗi chi tiết gửi cho nhà phát triển.
  • D. Chương trình dừng đột ngột (crash) và hiển thị thông báo lỗi.

Câu 18: Bạn có một chương trình nhỏ tính bình phương của một số nguyên dương. Bạn kiểm thử với số 5, kết quả là 25 (đúng). Bạn kiểm thử với số 10, kết quả là 100 (đúng). Tuy nhiên, khi kiểm thử với số -2, chương trình lại cho kết quả là 4 (đúng, nhưng yêu cầu chỉ xử lý số nguyên dương). Loại lỗi nào (nếu có) đang tồn tại dựa trên yêu cầu ban đầu?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (chương trình xử lý sai phạm vi dữ liệu đầu vào theo yêu cầu)
  • D. Không có lỗi

Câu 19: Phương pháp nào sau đây ít hiệu quả nhất để tìm lỗi ngữ nghĩa trong một chương trình phức tạp?

  • A. Chỉ đọc lại mã nguồn một cách lướt qua.
  • B. Sử dụng trình gỡ lỗi để theo dõi giá trị biến.
  • C. Chạy chương trình với nhiều bộ dữ liệu kiểm thử khác nhau.
  • D. Thêm các câu lệnh `print` để in ra giá trị trung gian của các biến.

Câu 20: Khi phát triển phần mềm, quá trình nào giúp đảm bảo rằng các thay đổi (ví dụ: sửa lỗi) không làm hỏng các chức năng đã hoạt động trước đó?

  • A. Kiểm thử cú pháp
  • B. Kiểm thử hồi quy (Regression Testing)
  • C. Kiểm thử ngoại lệ
  • D. Kiểm thử dữ liệu lớn

Câu 21: Xét đoạn mã: `my_list = [10, 20, 30]`. Nếu bạn cố gắng truy cập `print(my_list[3])`, lỗi nào sẽ xảy ra?

  • A. SyntaxError
  • B. ValueError
  • C. TypeError
  • D. IndexError (một loại lỗi ngoại lệ)

Câu 22: Bạn đang sử dụng trình gỡ lỗi và thấy rằng tại một dòng mã cụ thể, giá trị của một biến không như bạn mong đợi. Điều này gợi ý điều gì về vị trí của lỗi ngữ nghĩa?

  • A. Lỗi có thể nằm ở dòng mã đó hoặc ở trước dòng mã đó, làm biến có giá trị sai.
  • B. Lỗi chắc chắn nằm ở dòng mã đó.
  • C. Lỗi chắc chắn nằm ở sau dòng mã đó.
  • D. Giá trị biến sai không liên quan đến lỗi.

Câu 23: Việc thêm các câu lệnh `print()` tạm thời vào chương trình để hiển thị giá trị của các biến hoặc thông báo vị trí thực thi là một kỹ thuật đơn giản để hỗ trợ quá trình nào?

  • A. Kiểm thử cú pháp tự động.
  • B. Truy vết (tracing) thủ công và gỡ lỗi.
  • C. Biên dịch chương trình.
  • D. Tối ưu hóa hiệu suất chương trình.

Câu 24: Khi kiểm thử một chương trình xử lý số, bộ dữ liệu kiểm thử nào sau đây được coi là "trường hợp biên" (boundary case)?

  • A. Một số nguyên dương lớn bất kỳ.
  • B. Một số thực âm nhỏ.
  • C. Giá trị nhỏ nhất hoặc lớn nhất mà chương trình dự kiến xử lý (ví dụ: 0 hoặc 100 nếu phạm vi là 0-100).
  • D. Một chuỗi ký tự không phải số.

Câu 25: Lỗi ngoại lệ (Exception Error) khác lỗi cú pháp (Syntax Error) ở điểm nào?

  • A. Lỗi cú pháp được phát hiện trước khi chương trình chạy, còn lỗi ngoại lệ xảy ra trong khi chương trình đang thực thi.
  • B. Lỗi cú pháp dễ sửa hơn lỗi ngoại lệ.
  • C. Lỗi ngoại lệ luôn làm chương trình dừng, còn lỗi cú pháp thì không.
  • D. Lỗi ngoại lệ chỉ liên quan đến dữ liệu nhập, còn lỗi cú pháp liên quan đến cấu trúc mã.

Câu 26: Quá trình nào tập trung vào việc tìm ra lỗi trong chương trình, trong khi quá trình còn lại tập trung vào việc xác định nguyên nhân và sửa lỗi đó?

  • A. Gỡ lỗi và Kiểm thử
  • B. Kiểm thử và Gỡ lỗi
  • C. Biên dịch và Thông dịch
  • D. Phân tích và Thiết kế

Câu 27: Bạn đang viết một chương trình để tính giá trị trung bình của một danh sách các số. Nếu danh sách đó rỗng, phép chia cho số lượng phần tử (là 0) sẽ gây ra lỗi. Đây là một ví dụ điển hình cho trường hợp nào cần kiểm thử?

  • A. Trường hợp đặc biệt hoặc trường hợp biên.
  • B. Trường hợp thường gặp.
  • C. Trường hợp dữ liệu lớn.
  • D. Trường hợp lỗi cú pháp.

Câu 28: Một chương trình Python có dòng mã `for i in range(1, 5): print(i)`. Nếu bạn muốn xem giá trị của biến `i` sau mỗi lần lặp khi chạy chương trình bằng trình gỡ lỗi, bạn sẽ sử dụng tính năng nào?

  • A. Chạy chương trình bình thường.
  • B. Chỉ đặt điểm dừng ở đầu chương trình.
  • C. Đặt điểm dừng bên trong vòng lặp và xem giá trị biến `i` khi chương trình tạm dừng.
  • D. Biên dịch lại chương trình.

Câu 29: Lỗi nào sau đây không làm cho chương trình dừng đột ngột nhưng lại dẫn đến kết quả tính toán hoặc hành vi sai lệch so với yêu cầu?

  • A. Lỗi cú pháp
  • B. Lỗi ngữ nghĩa
  • C. Lỗi ngoại lệ (Runtime Error)
  • D. ZeroDivisionError

Câu 30: Tại sao việc kiểm thử chương trình với "các trường hợp tham số nhận giá trị lớn nhất có thể" lại quan trọng?

  • A. Để tìm lỗi cú pháp.
  • B. Để đảm bảo chương trình chạy nhanh trên mọi dữ liệu.
  • C. Để tìm lỗi ngữ nghĩa đơn giản.
  • D. Để kiểm tra hiệu suất, sử dụng bộ nhớ và phát hiện các lỗi liên quan đến giới hạn xử lý của chương trình.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 1: Trong lập trình, khi bạn viết một câu lệnh không tuân thủ các quy tắc ngữ pháp (cấu trúc) của ngôn ngữ lập trình (ví dụ: thiếu dấu hai chấm, sai tên hàm), loại lỗi nào sau đây thường xuất hiện?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 2: Xét đoạn mã Python sau: `num_str = "123a"`. Nếu bạn cố gắng thực hiện `num_int = int(num_str)`, loại lỗi nào có khả năng xảy ra nhất khi chương trình chạy?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 3: Một chương trình được thiết kế để tính tổng các số chẵn từ 1 đến N. Tuy nhiên, lập trình viên lại viết mã để tính tổng tất cả các số từ 1 đến N. Khi chạy chương trình, nó không báo lỗi cú pháp hay ngoại lệ, nhưng kết quả đưa ra lại sai so với yêu cầu ban đầu. Đây là ví dụ về loại lỗi nào?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 4: Công việc nào sau đây thuộc về giai đoạn 'kiểm thử' chương trình?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 5: Khi kiểm thử một chương trình, tại sao việc sử dụng các bộ dữ liệu 'đặc biệt' (ví dụ: giá trị biên, giá trị âm nếu không hợp lệ, giá trị lặp lại) lại quan trọng?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 6: Quá trình 'truy vết' (tracing) chương trình thủ công là gì?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 7: Công cụ 'debugger' (trình gỡ lỗi) cung cấp khả năng chính nào giúp ích cho việc tìm và sửa lỗi?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 8: Khi bạn gặp một lỗi ngoại lệ (Exception Error) trong Python, ví dụ `TypeError: can only concatenate str (not "int") to str`, thông tin quan trọng nhất mà thông báo lỗi này cung cấp ngay lập tức là gì?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 9: Giả sử bạn có một chương trình tính diện tích hình vuông với cạnh là `a`. Công thức đúng là `dien_tich = a * a`. Nếu bạn viết nhầm thành `dien_tich = a + a`, chương trình sẽ mắc loại lỗi nào?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 10: Khi kiểm thử một chương trình xử lý danh sách, bộ dữ liệu nào sau đây được coi là 'trường hợp đặc biệt'?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 11: Trong quá trình gỡ lỗi, sau khi bạn đã xác định được vị trí và nguyên nhân của một lỗi, bước tiếp theo quan trọng nhất là gì?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 12: Lỗi nào sau đây thường là khó phát hiện và sửa chữa nhất, vì chương trình vẫn chạy nhưng cho kết quả sai?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 13: Bạn viết một chương trình yêu cầu người dùng nhập tuổi và in ra nhóm tuổi. Nếu người dùng nhập một chuỗi không phải số (ví dụ: "hai mươi"), chương trình có thể gặp lỗi ngoại lệ. Để xử lý tình huống này một cách 'mềm dẻo' (gracefully), bạn nên sử dụng kỹ thuật nào trong Python?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 14: Khi sử dụng trình gỡ lỗi (debugger), 'điểm dừng' (breakpoint) có chức năng gì?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 15: Xét đoạn mã: `a = 5; b = 0; c = a / b`. Lỗi nào sẽ xảy ra khi chạy đoạn mã này?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 16: Mục đích chính của việc kiểm thử chương trình với 'các trường hợp thường gặp' là gì?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

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

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 18: Bạn có một chương trình nhỏ tính bình phương của một số nguyên dương. Bạn kiểm thử với số 5, kết quả là 25 (đúng). Bạn kiểm thử với số 10, kết quả là 100 (đúng). Tuy nhiên, khi kiểm thử với số -2, chương trình lại cho kết quả là 4 (đúng, nhưng yêu cầu chỉ xử lý số nguyên dương). Loại lỗi nào (nếu có) đang tồn tại dựa trên *yêu cầu ban đầu*?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 19: Phương pháp nào sau đây ít hiệu quả nhất để tìm lỗi ngữ nghĩa trong một chương trình phức tạp?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 20: Khi phát triển phần mềm, quá trình nào giúp đảm bảo rằng các thay đổi (ví dụ: sửa lỗi) không làm hỏng các chức năng đã hoạt động trước đó?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 21: Xét đoạn mã: `my_list = [10, 20, 30]`. Nếu bạn cố gắng truy cập `print(my_list[3])`, lỗi nào sẽ xảy ra?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 22: Bạn đang sử dụng trình gỡ lỗi và thấy rằng tại một dòng mã cụ thể, giá trị của một biến không như bạn mong đợi. Điều này gợi ý điều gì về vị trí của lỗi ngữ nghĩa?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 23: Việc thêm các câu lệnh `print()` tạm thời vào chương trình để hiển thị giá trị của các biến hoặc thông báo vị trí thực thi là một kỹ thuật đơn giản để hỗ trợ quá trình nào?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 24: Khi kiểm thử một chương trình xử lý số, bộ dữ liệu kiểm thử nào sau đây được coi là 'trường hợp biên' (boundary case)?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 25: Lỗi ngoại lệ (Exception Error) khác lỗi cú pháp (Syntax Error) ở điểm nào?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 26: Quá trình nào tập trung vào việc tìm ra lỗi trong chương trình, trong khi quá trình còn lại tập trung vào việc xác định nguyên nhân và sửa lỗi đó?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 27: Bạn đang viết một chương trình để tính giá trị trung bình của một danh sách các số. Nếu danh sách đó rỗng, phép chia cho số lượng phần tử (là 0) sẽ gây ra lỗi. Đây là một ví dụ điển hình cho trường hợp nào cần kiểm thử?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 28: Một chương trình Python có dòng mã `for i in range(1, 5): print(i)`. Nếu bạn muốn xem giá trị của biến `i` sau mỗi lần lặp khi chạy chương trình bằng trình gỡ lỗi, bạn sẽ sử dụng tính năng nào?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 29: Lỗi nào sau đây *không* làm cho chương trình dừng đột ngột nhưng lại dẫn đến kết quả tính toán hoặc hành vi sai lệch so với yêu cầu?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 08

Câu 30: Tại sao việc kiểm thử chương trình với 'các trường hợp tham số nhận giá trị lớn nhất có thể' lại quan trọng?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 09

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 09 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong lập trình, lỗi nào thường được trình biên dịch (interpreter) hoặc trình biên dịch (compiler) 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)
  • C. Lỗi ngữ nghĩa (Semantic error)
  • D. Lỗi logic (Logic error)

Câu 2: Khi một chương trình Python gặp phải tình huống như chia cho số 0 hoặc truy cập vào một phần tử không tồn tại trong danh sách khi đang thực thi, lỗi nào sẽ xảy ra?

  • 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 nào sau đây là khó phát hiện nhất vì chương trình vẫn chạy bình thường nhưng kết quả đầu ra không đúng với yêu cầu hoặc mong đợi?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (hoặc lỗi logic)
  • D. Lỗi thời gian chạy (Runtime error)

Câu 4: Xét đoạn mã Python sau:
`x = 10
y = 0
z = x / y
print(z)`
Khi chạy đoạn mã này, lỗi nào sẽ xảy ra?

  • A. Lỗi cú pháp (SyntaxError)
  • B. Lỗi ngoại lệ (ZeroDivisionError)
  • C. Lỗi ngữ nghĩa
  • D. Không có lỗi, kết quả là 0

Câu 5: Xét đoạn mã Python sau:
`a = 5
b = "10"
c = a + b
print(c)`
Khi chạy đoạn mã này, lỗi nào sẽ xảy ra?

  • A. Lỗi cú pháp (SyntaxError)
  • B. Lỗi ngoại lệ (TypeError)
  • C. Lỗi ngữ nghĩa
  • D. Kết quả là "510"

Câu 6: Xét đoạn mã Python sau:
`prin("Hello World!")`
Khi chạy đoạn mã này, lỗi nào sẽ xảy ra?

  • A. Lỗi cú pháp (SyntaxError)
  • B. Lỗi ngoại lệ (NameError)
  • C. Lỗi ngữ nghĩa
  • D. Chương trình vẫn chạy nhưng không in gì

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

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

Câu 8: Để kiểm thử một chương trình, người lập trình cần chuẩn bị những gì?

  • A. Bộ dữ liệu kiểm thử và kết quả mong đợi tương ứng.
  • B. Chỉ cần bộ dữ liệu ngẫu nhiên.
  • C. Chỉ cần chương trình đã viết xong.
  • D. Một công cụ gỡ lỗi mạnh mẽ.

Câu 9: Khi kiểm thử chương trình, việc sử dụng "dữ liệu biên" (boundary data) hoặc "dữ liệu đặc biệt" là quan trọng vì:

  • A. Chúng giúp kiểm tra các trường hợp thông thường.
  • B. Chúng làm cho chương trình chạy nhanh hơn.
  • C. Chúng chỉ cần thiết cho các chương trình lớn.
  • D. Chúng giúp phát hiện các lỗi thường xảy ra ở các giá trị giới hạn hoặc các điều kiện đặc biệt.

Câu 10: Để tìm hiểu nguyên nhân của lỗi ngữ nghĩa (lỗi logic), một kỹ thuật phổ biến là "truy vết" (tracing). Truy vết có thể được thực hiện bằng cách nào?

  • A. Chèn các lệnh in (print) để hiển thị giá trị của các biến tại các điểm khác nhau trong chương trình.
  • B. Chỉ cần đọc kỹ lại mã nguồn từ đầu đến cuối.
  • C. Xóa bớt các dòng mã để chương trình ngắn gọn hơn.
  • D. Chạy chương trình với dữ liệu ngẫu nhiên.

Câu 11: Công cụ nào được tích hợp trong nhiều môi trường lập trình (IDE) giúp người lập trình chạy từng bước chương trình, xem giá trị của biến, và theo dõi luồng thực thi để tìm lỗi?

  • A. Trình biên dịch (Compiler)
  • B. Trình thông dịch (Interpreter)
  • C. Công cụ gỡ lỗi (Debugger)
  • D. Trình soạn thảo mã (Code editor)

Câu 12: Giả sử bạn viết một chương trình tính diện tích hình chữ nhật với hai biến `dai` và `rong`. Nếu bạn vô tình viết `dien_tich = dai - rong` thay vì `dien_tich = dai * rong`, chương trình của bạn sẽ mắc lỗi gì?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (logic)
  • D. Lỗi thời gian chạy

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

  • A. Để làm cho chương trình chạy nhanh hơn.
  • B. Để tìm ra các lỗi trong chương trình.
  • C. Để chứng minh chương trình không có lỗi.
  • D. Để biên dịch mã nguồn.

Câu 14: Khi sử dụng công cụ gỡ lỗi (Debugger) trong Python, lệnh hoặc chức năng nào cho phép bạn thực thi từng dòng mã một và tạm dừng sau mỗi dòng?

  • A. Step Over (hoặc Step Into)
  • B. Run
  • C. Stop
  • D. Continue

Câu 15: Bạn viết 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 một chuỗi văn bản thay vì số, lỗi nào có khả năng xảy ra khi bạn cố gắng chuyển đổi chuỗi đó sang số nguyên?

  • A. Lỗi cú pháp (SyntaxError)
  • B. Lỗi ngữ nghĩa
  • C. Lỗi ngoại lệ (ValueError)
  • D. Lỗi logic

Câu 16: Quy trình chung để xử lý lỗi trong lập trình bao gồm các bước nào?

  • A. Viết mã, chạy thử, sửa lỗi.
  • B. Tìm lỗi, sửa lỗi, kiểm thử lại.
  • C. Kiểm thử, tìm lỗi, sửa lỗi.
  • D. Xác định lỗi, định vị lỗi, phân tích nguyên nhân, sửa lỗi, kiểm thử lại.

Câu 17: Khi bạn nhận được thông báo lỗi "IndentationError" trong Python, đây là loại lỗi gì và nguyên nhân có thể là gì?

  • A. Lỗi cú pháp, do thụt lề (indentation) không đúng quy tắc.
  • B. Lỗi ngoại lệ, do giá trị biến không hợp lệ.
  • C. Lỗi ngữ nghĩa, do sai công thức tính toán.
  • D. Lỗi thời gian chạy, do thiếu bộ nhớ.

Câu 18: Việc tạo ra các bộ dữ liệu kiểm thử với nhiều trường hợp khác nhau, bao gồm cả trường hợp bình thường và trường hợp đặc biệt/biên, giúp tăng khả năng phát hiện loại lỗi nào?

  • A. Chỉ lỗi cú pháp.
  • B. Chỉ lỗi ngoại lệ.
  • C. Chủ yếu lỗi ngữ nghĩa và một số lỗi ngoại lệ.
  • D. Tất cả các loại lỗi một cách đồng đều.

Câu 19: Tại sao việc kiểm thử với "dữ liệu lớn nhất có thể" lại quan trọng đối với một số chương trình?

  • A. Để chương trình chạy nhanh hơn với dữ liệu lớn.
  • B. Để kiểm tra xem chương trình có báo lỗi cú pháp với dữ liệu lớn không.
  • C. Để đảm bảo chương trình không sử dụng quá nhiều bộ nhớ.
  • D. Để kiểm tra hiệu năng và khả năng xử lý của chương trình với khối lượng dữ liệu tối đa mà nó được thiết kế để xử lý, có thể phát hiện lỗi tràn bộ nhớ hoặc chậm đáng kể.

Câu 20: Công cụ gỡ lỗi (Debugger) thường cung cấp chức năng "Breakpoints". Chức năng này dùng để làm gì?

  • A. Đánh dấu các điểm trong mã nguồn mà chương trình sẽ tạm dừng khi chạy ở chế độ gỡ lỗi.
  • B. Đánh dấu các dòng mã bị lỗi.
  • C. Chia chương trình thành các đoạn nhỏ hơn.
  • D. Tự động sửa các lỗi cú pháp.

Câu 21: Giả sử bạn viết chương trình tính tổng các số từ 1 đến N. Nếu bạn viết vòng lặp chạy từ 1 đến N-1 thay vì 1 đến N, chương trình sẽ cho kết quả sai. Đây là loại lỗi gì?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (lỗi logic)
  • D. Lỗi thời gian chạy

Câu 22: Phát biểu nào sau đây là SAI về lỗi ngoại lệ (Runtime error)?

  • A. Xảy ra khi chương trình đang chạy.
  • B. Thường do một thao tác không thể thực hiện được tại thời điểm đó.
  • C. Trình thông dịch Python thường báo cáo loại lỗi và vị trí xảy ra lỗi.
  • D. Luôn được phát hiện trước khi chương trình bắt đầu thực thi.

Câu 23: Khi gỡ lỗi một chương trình, việc thu hẹp phạm vi tìm kiếm lỗi là một kỹ thuật hiệu quả. Làm thế nào để thu hẹp phạm vi này?

  • A. Sử dụng các lệnh in hoặc breakpoint để kiểm tra giá trị biến và luồng thực thi ở các phần khác nhau của mã.
  • B. Đọc toàn bộ mã nguồn từ đầu đến cuối mà không chạy thử.
  • C. Ngẫu nhiên thay đổi các dòng mã cho đến khi lỗi biến mất.
  • D. Chỉ tập trung vào các dòng mã có vẻ phức tạp.

Câu 24: Xét đoạn mã Python:
`age = input("Nhập tuổi của bạn: ")
if age > 18:
print("Bạn đủ tuổi.")
else:
print("Bạn chưa đủ tuổi.")`
Nếu người dùng nhập "20", lỗi nào có khả năng xảy ra khi chạy đoạn mã này?

  • A. Lỗi cú pháp (SyntaxError)
  • B. Lỗi ngữ nghĩa
  • C. Lỗi ngoại lệ (TypeError), vì `input()` trả về chuỗi, không thể so sánh trực tiếp với số nguyên.
  • D. Không có lỗi, chương trình chạy đúng.

Câu 25: Một chương trình được thiết kế để sắp xếp một danh sách các số theo thứ tự tăng dần. Khi kiểm thử với danh sách [3, 1, 2], chương trình trả về [1, 2, 3] (đúng). Khi kiểm thử với danh sách [5, 5, 5], chương trình trả về [5, 5, 5] (đúng). Tuy nhiên, khi kiểm thử với danh sách [1, 2, 3], chương trình trả về [3, 2, 1] (sai). Đây là dấu hiệu của loại lỗi nào?

  • A. Lỗi cú pháp
  • B. Lỗi ngoại lệ
  • C. Lỗi ngữ nghĩa (logic), chỉ xuất hiện với bộ dữ liệu đầu vào cụ thể.
  • D. Lỗi thời gian chạy

Câu 26: Trong quá trình kiểm thử, "kết quả mong đợi" (expected output) có vai trò gì?

  • A. Là dữ liệu đầu vào mà chương trình sẽ xử lý.
  • B. Là kết quả đúng mà chương trình phải tạo ra khi chạy với bộ dữ liệu kiểm thử tương ứng, dùng để so sánh với kết quả thực tế.
  • C. Là loại lỗi mà chương trình dự kiến sẽ gặp phải.
  • D. Là công cụ dùng để sửa lỗi.

Câu 27: Thư viện chuẩn nào của Python cung cấp các công cụ mạnh mẽ để gỡ lỗi tương tác, cho phép đặt breakpoint, chạy từng bước, và kiểm tra biến?

  • A. pdb (Python Debugger)
  • B. math
  • C. os
  • D. random

Câu 28: Khi sử dụng thư viện `pdb` trong Python, lệnh nào được dùng để chạy từng dòng lệnh tiếp theo của chương trình?

  • A. `c` (continue)
  • B. `n` (next)
  • C. `q` (quit)
  • D. `p variable_name` (print variable)

Câu 29: Khi bạn gặp lỗi "IndexError: list index out of range" trong Python, đây là loại lỗi gì và nguyên nhân thường gặp là gì?

  • A. Lỗi ngoại lệ, do cố gắng truy cập một chỉ mục (index) không tồn tại trong danh sách (list).
  • B. Lỗi cú pháp, do sai cách viết lệnh truy cập danh sách.
  • C. Lỗi ngữ nghĩa, do tính toán sai chỉ mục.
  • D. Lỗi logic, do thứ tự các lệnh sai.

Câu 30: Tại sao việc kiểm thử và gỡ lỗi là một phần không thể thiếu và thường xuyên lặp đi lặp lại trong quá trình phát triển phần mềm?

  • A. Vì lập trình viên luôn mắc lỗi cú pháp.
  • B. Vì chỉ có kiểm thử mới đảm bảo chương trình chạy nhanh.
  • C. Vì gỡ lỗi là cách duy nhất để hiểu mã nguồn.
  • D. Vì rất khó để viết một chương trình phức tạp mà không có bất kỳ lỗi nào ngay từ đầu, và việc sửa lỗi này có thể vô tình tạo ra lỗi khác, đòi hỏi quá trình lặp lại để đảm bảo độ tin cậy.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 1: Trong lập trình, lỗi nào thường được trình biên dịch (interpreter) hoặc trình biên dịch (compiler) 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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 2: Khi một chương trình Python gặp phải tình huống như chia cho số 0 hoặc truy cập vào một phần tử không tồn tại trong danh sách khi đang thực thi, lỗi nào sẽ xảy ra?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 3: Lỗi nào sau đây là khó phát hiện nhất vì chương trình vẫn chạy bình thường nhưng kết quả đầu ra không đúng với yêu cầu hoặc mong đợi?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 4: Xét đoạn mã Python sau:
`x = 10
y = 0
z = x / y
print(z)`
Khi chạy đoạn mã này, lỗi nào sẽ xảy ra?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 5: Xét đoạn mã Python sau:
`a = 5
b = '10'
c = a + b
print(c)`
Khi chạy đoạn mã này, lỗi nào sẽ xảy ra?

6 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 6: Xét đoạn mã Python sau:
`prin('Hello World!')`
Khi chạy đoạn mã này, lỗi nào sẽ xảy ra?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

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

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 8: Để kiểm thử một chương trình, người lập trình cần chuẩn bị những gì?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 9: Khi kiểm thử chương trình, việc sử dụng 'dữ liệu biên' (boundary data) hoặc 'dữ liệu đặc biệt' là quan trọng vì:

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 10: Để tìm hiểu nguyên nhân của lỗi ngữ nghĩa (lỗi logic), một kỹ thuật phổ biến là 'truy vết' (tracing). Truy vết có thể được thực hiện bằng cách nào?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 11: Công cụ nào được tích hợp trong nhiều môi trường lập trình (IDE) giúp người lập trình chạy từng bước chương trình, xem giá trị của biến, và theo dõi luồng thực thi để tìm lỗi?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 12: Giả sử bạn viết một chương trình tính diện tích hình chữ nhật với hai biến `dai` và `rong`. Nếu bạn vô tình viết `dien_tich = dai - rong` thay vì `dien_tich = dai * rong`, chương trình của bạn sẽ mắc lỗi gì?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

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

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 14: Khi sử dụng công cụ gỡ lỗi (Debugger) trong Python, lệnh hoặc chức năng nào cho phép bạn thực thi từng dòng mã một và tạm dừng sau mỗi dòng?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 15: Bạn viết 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 một chuỗi văn bản thay vì số, lỗi nào có khả năng xảy ra khi bạn cố gắng chuyển đổi chuỗi đó sang số nguyên?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 16: Quy trình chung để xử lý lỗi trong lập trình bao gồm các bước nào?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 17: Khi bạn nhận được thông báo lỗi 'IndentationError' trong Python, đây là loại lỗi gì và nguyên nhân có thể là gì?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 18: Việc tạo ra các bộ dữ liệu kiểm thử với nhiều trường hợp khác nhau, bao gồm cả trường hợp bình thường và trường hợp đặc biệt/biên, giúp tăng khả năng phát hiện loại lỗi nào?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 19: Tại sao việc kiểm thử với 'dữ liệu lớn nhất có thể' lại quan trọng đối với một số chương trình?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 20: Công cụ gỡ lỗi (Debugger) thường cung cấp chức năng 'Breakpoints'. Chức năng này dùng để làm gì?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 21: Giả sử bạn viết chương trình tính tổng các số từ 1 đến N. Nếu bạn viết vòng lặp chạy từ 1 đến N-1 thay vì 1 đến N, chương trình sẽ cho kết quả sai. Đây là loại lỗi gì?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 22: Phát biểu nào sau đây là SAI về lỗi ngoại lệ (Runtime error)?

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 23: Khi gỡ lỗi một chương trình, việc thu hẹp phạm vi tìm kiếm lỗi là một kỹ thuật hiệu quả. Làm thế nào để thu hẹp phạm vi này?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 24: Xét đoạn mã Python:
`age = input('Nhập tuổi của bạn: ')
if age > 18:
print('Bạn đủ tuổi.')
else:
print('Bạn chưa đủ tuổi.')`
Nếu người dùng nhập '20', lỗi nào có khả năng xảy ra khi chạy đoạn mã này?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 25: Một chương trình được thiết kế để sắp xếp một danh sách các số theo thứ tự tăng dần. Khi kiểm thử với danh sách [3, 1, 2], chương trình trả về [1, 2, 3] (đúng). Khi kiểm thử với danh sách [5, 5, 5], chương trình trả về [5, 5, 5] (đúng). Tuy nhiên, khi kiểm thử với danh sách [1, 2, 3], chương trình trả về [3, 2, 1] (sai). Đây là dấu hiệu của loại lỗi nào?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 26: Trong quá trình kiểm thử, 'kết quả mong đợi' (expected output) có vai trò gì?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 27: Thư viện chuẩn nào của Python cung cấp các công cụ mạnh mẽ để gỡ lỗi tương tác, cho phép đặt breakpoint, chạy từng bước, và kiểm tra biến?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 28: Khi sử dụng thư viện `pdb` trong Python, lệnh nào được dùng để chạy từng dòng lệnh tiếp theo của chương trình?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 29: Khi bạn gặp lỗi 'IndexError: list index out of range' trong Python, đây là loại lỗi gì và nguyên nhân thường gặp là gì?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 09

Câu 30: Tại sao việc kiểm thử và gỡ lỗi là một phần không thể thiếu và thường xuyên lặp đi lặp lại trong quá trình phát triển phần mềm?

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 10

Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi viết chương trình Python, bạn gõ sai chính tả tên một hàm hoặc thiếu dấu hai chấm (:) ở cuối câu lệnh `if`. Đây là loại lỗi gì?

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

Câu 2: Chương trình Python của bạn yêu cầu người dùng nhập một số nguyên, nhưng người dùng lại nhập vào một chuỗi văn bản. Khi chương trình cố gắng chuyển đổi chuỗi này thành số, nó sẽ dừng đột ngột. Loại lỗi xảy ra trong trường hợp này là gì?

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

Câu 3: Bạn viết chương trình tính diện tích hình chữ nhật bằng cách lấy chiều dài nhân chiều rộng. Tuy nhiên, bạn nhầm lẫn sử dụng phép cộng thay vì phép nhân. Chương trình chạy không báo lỗi nhưng kết quả tính ra luôn sai. Đây là loại lỗi gì?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic Error)
  • D. Lỗi thời gian chạy (Runtime Error)

Câu 4: Lỗi nào trong các loại lỗi cơ bản thường khó phát hiện nhất chỉ bằng việc chạy chương trình mà không có các bộ dữ liệu kiểm thử kỹ lưỡng?

  • A. Lỗi cú pháp (Syntax Error)
  • B. Lỗi ngoại lệ (Exception Error)
  • C. Lỗi ngữ nghĩa (Semantic Error)
  • D. Cả ba loại lỗi đều dễ phát hiện như nhau

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

  • A. Phát hiện lỗi và xác minh chương trình hoạt động đúng yêu cầu.
  • B. Làm cho chương trình chạy nhanh hơn.
  • C. Giảm dung lượng bộ nhớ mà chương trình sử dụng.
  • D. Thay đổi ngôn ngữ lập trình của chương trình.

Câu 6: Khi kiểm thử một chương trình, việc sử dụng các bộ dữ liệu kiểm thử đặc biệt (ví dụ: số 0, số âm, chuỗi rỗng) nhằm mục đích gì?

  • A. Kiểm tra chương trình có chạy được với dữ liệu lớn không.
  • B. Kiểm tra cách chương trình xử lý các trường hợp biên hoặc không mong đợi.
  • C. Chỉ để kiểm tra lỗi cú pháp.
  • D. Làm cho quá trình kiểm thử nhanh hơn.

Câu 7: Bạn đang viết một chương trình xử lý danh sách các số. Để kiểm thử chức năng xử lý danh sách trống, bạn nên sử dụng bộ dữ liệu kiểm thử nào?

  • A. Một danh sách chứa nhiều số dương.
  • B. Một danh sách chứa các số rất lớn.
  • C. Một danh sách chứa cả số dương và số âm.
  • D. Một danh sách rỗng (không chứa phần tử nào).

Câu 8: Quá trình tìm kiếm và loại bỏ các lỗi trong chương trình được gọi là gì?

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

Câu 9: Khi gặp một lỗi ngữ nghĩa khó hiểu, phương pháp nào sau đây thường hiệu quả nhất để tìm ra nguyên nhân?

  • A. Chỉ đọc lại code một cách nhanh chóng.
  • B. Sử dụng công cụ gỡ lỗi (debugger) để theo dõi giá trị biến và luồng thực thi từng bước.
  • C. Xóa bớt các dòng code để chương trình ngắn gọn hơn.
  • D. Chạy chương trình với cùng một bộ dữ liệu kiểm thử nhiều lần.

Câu 10: Công cụ hỗ trợ gỡ lỗi (debugger) trong môi trường lập trình thường cung cấp khả năng nào sau đây?

  • A. Chỉ ra tất cả các lỗi cú pháp tự động.
  • B. Tự động sửa các lỗi ngữ nghĩa.
  • C. Tăng tốc độ thực thi chương trình.
  • D. Cho phép chạy chương trình từng bước, tạm dừng tại các điểm nhất định và xem giá trị biến.

Câu 11: Trong quá trình gỡ lỗi, việc đặt "điểm dừng" (breakpoint) có ý nghĩa gì?

  • A. Chương trình sẽ tạm dừng thực thi tại dòng code đó để người lập trình kiểm tra.
  • B. Đánh dấu dòng code cần xóa.
  • C. Chỉ ra dòng code không có lỗi.
  • D. Làm cho dòng code đó được bỏ qua khi chạy chương trình.

Câu 12: Bạn có một chương trình tính tổng các số từ 1 đến N. Bạn kiểm thử với N=3 và nhận được kết quả là 5 thay vì 6. Bạn nghi ngờ lỗi nằm trong vòng lặp tính tổng. Phương pháp gỡ lỗi nào sau đây phù hợp nhất để xác định chính xác lúc nào tổng bị sai?

  • A. Chỉ đọc code và đoán.
  • B. Sử dụng debugger để chạy từng bước vòng lặp và theo dõi giá trị biến tổng.
  • C. Chạy chương trình với N=1000.
  • D. Kiểm tra lại lỗi cú pháp.

Câu 13: Một chương trình tính trung bình cộng của các số trong danh sách. Khi chạy với danh sách [10, 20, 30], chương trình in ra 20. Khi chạy với danh sách [10, 20, 30, 40], chương trình in ra 25. Nhưng khi chạy với danh sách [5, 5, 5], chương trình in ra 10. Dấu hiệu này cho thấy khả năng cao chương trình đang mắc loại lỗi gì?

  • A. Lỗi cú pháp nghiêm trọng.
  • B. Lỗi ngoại lệ do dữ liệu nhập.
  • C. Lỗi ngữ nghĩa/logic trong công thức hoặc thuật toán tính trung bình.
  • D. Lỗi do hệ điều hành.

Câu 14: Khi kiểm thử một chương trình xử lý phép chia, bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất để kiểm tra lỗi ngoại lệ?

  • A. Các cặp số dương lớn.
  • B. Cặp số mà số bị chia là bất kỳ và số chia là 0.
  • C. Cặp số âm.
  • D. Cặp số thập phân.

Câu 15: Bạn viết một hàm tính giai thừa của một số nguyên không âm. Để kiểm thử hàm này, bộ dữ liệu nào sau đây thuộc loại "trường hợp đặc biệt" hoặc "biên" cần được cân nhắc?

  • A. Số 0 và số 1.
  • B. Các số nguyên dương lớn.
  • C. Các số nguyên âm.
  • D. Các số thập phân.

Câu 16: Giả sử bạn có đoạn code Python sau: `print("Hello world")`. Nếu bạn chạy đoạn code này và nhận được thông báo lỗi `SyntaxError: invalid syntax`, lỗi đó có khả năng là do đâu?

  • A. Kết nối mạng bị lỗi.
  • B. Bộ nhớ máy tính không đủ.
  • C. Bạn đang cố gắng chia cho 0.
  • D. Bạn đã gõ sai cú pháp (ví dụ: thiếu dấu nháy kép hoặc dấu ngoặc).

Câu 17: Việc sử dụng các câu lệnh `print()` để in ra giá trị của các biến tại các điểm khác nhau trong chương trình là một kỹ thuật gỡ lỗi. Kỹ thuật này thuộc nhóm nào?

  • A. Truy vết thủ công (Manual Tracing)
  • B. Sử dụng debugger chuyên nghiệp
  • C. Kiểm thử tự động
  • D. Tối ưu hóa code

Câu 18: So với việc sử dụng các câu lệnh `print()` để gỡ lỗi, công cụ debugger mang lại lợi thế đáng kể nào?

  • A. Chỉ có thể phát hiện lỗi cú pháp.
  • B. Yêu cầu phải thay đổi code gốc rất nhiều.
  • C. Cho phép kiểm soát luồng thực thi (chạy từng bước, bỏ qua hàm) và xem giá trị biến mà không cần chỉnh sửa code gốc quá nhiều.
  • D. Tự động sửa tất cả các loại lỗi.

Câu 19: Khi kiểm thử một chương trình tính toán liên quan đến các số rất lớn (ví dụ: tính tổng 1 triệu số), bộ dữ liệu kiểm thử loại này nhằm mục đích chính là gì?

  • A. Kiểm tra lỗi cú pháp.
  • B. Kiểm tra lỗi ngoại lệ do chia cho 0.
  • C. Kiểm tra các trường hợp đặc biệt như số 0 hoặc số âm.
  • D. Kiểm tra hiệu suất và khả năng xử lý dữ liệu lớn của chương trình, có thể phát hiện lỗi tràn bộ nhớ hoặc chậm đáng kể.

Câu 20: Giả sử bạn có đoạn code sau: `age = int(input("Nhập tuổi của bạn: "))`. Nếu người dùng nhập "mười lăm", loại lỗi nào có khả năng xảy ra khi chương trình thực thi dòng lệnh này?

  • A. Lỗi cú pháp (Syntax Error).
  • B. Lỗi ngoại lệ (Exception Error), cụ thể là ValueError.
  • C. Lỗi ngữ nghĩa (Semantic Error).
  • D. Không có lỗi nào xảy ra.

Câu 21: Bạn đang gỡ lỗi một chương trình in ra dãy số Fibonacci. Bạn nhận thấy chương trình in ra 1, 1, 2, 3, 5, 8,... (đúng) nhưng khi đến số thứ 100 thì kết quả đột nhiên sai. Bạn nên tập trung kiểm tra phần code nào trước tiên?

  • A. Phần code tính toán các số Fibonacci, đặc biệt là cách nó xử lý các giá trị lớn hoặc lặp lại nhiều lần.
  • B. Phần code nhập dữ liệu ban đầu.
  • C. Phần code in kết quả ra màn hình.
  • D. Kiểm tra lại xem có thiếu dấu chấm phẩy ở đâu không.

Câu 22: Một chương trình sắp xếp danh sách các số. Bạn kiểm thử với danh sách [3, 1, 4, 1, 5, 9] và nhận được kết quả [1, 1, 3, 4, 5, 9] (đúng). Nhưng khi kiểm thử với danh sách [5, 4, 3, 2, 1], chương trình lại cho kết quả [1, 2, 3, 5, 4] (sai). Điều này gợi ý rằng lỗi có thể liên quan đến:

  • A. Lỗi cú pháp trong câu lệnh `print`.
  • B. Lỗi ngoại lệ khi nhập dữ liệu.
  • C. Chỉ có lỗi khi danh sách đầu vào đã được sắp xếp một phần.
  • D. Lỗi logic trong thuật toán sắp xếp, có thể không xử lý đúng các trường hợp danh sách gần như hoặc đã sắp xếp ngược.

Câu 23: Bạn viết một chương trình có sử dụng hàm `tinh_toan(a, b)`. Khi kiểm thử, bạn thấy rằng với `a=10, b=2`, kết quả đúng. Với `a=5, b=0`, chương trình dừng với lỗi `ZeroDivisionError`. Loại lỗi này là gì và bạn nên làm gì?

  • A. Lỗi cú pháp; Sửa lỗi chính tả trong tên hàm.
  • B. Lỗi ngữ nghĩa; Thay phép chia bằng phép cộng.
  • C. Lỗi ngoại lệ; Bổ sung xử lý trường hợp số chia bằng 0.
  • D. Không có lỗi; Đây là hành vi bình thường.

Câu 24: Để đảm bảo chương trình của bạn hoạt động ổn định và đáng tin cậy, quy trình phát triển phần mềm hợp lý nên bao gồm kiểm thử vào giai đoạn nào?

  • A. Chỉ sau khi chương trình đã hoàn thành 100%.
  • B. Chỉ khi khách hàng báo cáo có lỗi.
  • C. Chỉ trước khi phát hành sản phẩm.
  • D. Thực hiện song song và lặp đi lặp lại trong suốt quá trình phát triển (viết code, kiểm thử, sửa lỗi, kiểm thử lại).

Câu 25: Khi gỡ lỗi bằng cách sử dụng debugger, việc "bước qua" (step over) một dòng code có ý nghĩa là gì?

  • A. Thực thi dòng code đó (và toàn bộ hàm nếu nó là lời gọi hàm) rồi dừng ở dòng tiếp theo.
  • B. Chỉ thực thi dòng code đó rồi kết thúc chương trình.
  • C. Bỏ qua không thực thi dòng code đó.
  • D. Thực thi dòng code đó và dừng lại bên trong hàm nếu đó là lời gọi hàm.

Câu 26: Việc chuẩn bị các bộ dữ liệu kiểm thử đa dạng (thường, đặc biệt, biên, lớn) giúp phát hiện những loại lỗi nào hiệu quả nhất?

  • A. Chỉ lỗi cú pháp.
  • B. Lỗi ngoại lệ và lỗi ngữ nghĩa.
  • C. Chỉ lỗi do thiếu bộ nhớ.
  • D. Chỉ lỗi do tốc độ xử lý chậm.

Câu 27: Giả sử bạn có đoạn code sau: `x = 10; if x > 5 print("x lớn hơn 5")`. Khi chạy, bạn nhận được lỗi `SyntaxError`. Vị trí lỗi có khả năng cao nhất là ở đâu?

  • A. Ở dòng `x = 10;`
  • B. Ở điều kiện `x > 5`.
  • C. Thiếu dấu hai chấm (:) sau điều kiện `if` và/hoặc thụt lề dòng `print`.
  • D. Trong chuỗi `"x lớn hơn 5"`.

Câu 28: Một chương trình tính tiền cước taxi dựa trên quãng đường. Giá cước có thể thay đổi tại các mốc quãng đường nhất định. Để kiểm thử chính xác, bạn nên chuẩn bị các bộ dữ liệu quãng đường nào?

  • A. Chỉ các quãng đường rất dài.
  • B. Chỉ các quãng đường ngắn (dưới 1km).
  • C. Chỉ các quãng đường là số nguyên.
  • D. Các quãng đường thông thường, các quãng đường bằng chính các mốc chuyển giá cước, và các quãng đường ngay sát dưới/trên các mốc đó.

Câu 29: Lỗi ngoại lệ (Exception Error) khác với lỗi cú pháp (Syntax Error) ở điểm nào?

  • A. Lỗi cú pháp được phát hiện trước khi chương trình chạy (thường bởi trình thông dịch/biên dịch), còn lỗi ngoại lệ xảy ra trong quá trình chương trình đang chạy.
  • B. Lỗi ngoại lệ dễ sửa hơn lỗi cú pháp.
  • C. Lỗi cú pháp chỉ liên quan đến các phép toán, còn lỗi ngoại lệ liên quan đến cấu trúc câu lệnh.
  • D. Lỗi ngoại lệ làm dừng chương trình ngay lập tức, còn lỗi cú pháp thì không.

Câu 30: Tại sao việc gỡ lỗi (debugging) thường là một quá trình lặp đi lặp lại?

  • A. Vì mỗi lần sửa lỗi thường chỉ giải quyết được một lỗi duy nhất.
  • B. Vì việc sửa một lỗi có thể vô tình tạo ra các lỗi mới hoặc làm lộ ra các lỗi khác chưa được phát hiện trước đó.
  • C. Vì quá trình gỡ lỗi yêu cầu phải viết lại toàn bộ chương trình.
  • D. Vì công cụ debugger chỉ hoạt động một lần duy nhất.

1 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 1: Khi viết chương trình Python, bạn gõ sai chính tả tên một hàm hoặc thiếu dấu hai chấm (:) ở cuối câu lệnh `if`. Đây là loại lỗi gì?

2 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 2: Chương trình Python của bạn yêu cầu người dùng nhập một số nguyên, nhưng người dùng lại nhập vào một chuỗi văn bản. Khi chương trình cố gắng chuyển đổi chuỗi này thành số, nó sẽ dừng đột ngột. Loại lỗi xảy ra trong trường hợp này là gì?

3 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 3: Bạn viết chương trình tính diện tích hình chữ nhật bằng cách lấy chiều dài nhân chiều rộng. Tuy nhiên, bạn nhầm lẫn sử dụng phép cộng thay vì phép nhân. Chương trình chạy không báo lỗi nhưng kết quả tính ra luôn sai. Đây là loại lỗi gì?

4 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 4: Lỗi nào trong các loại lỗi cơ bản thường khó phát hiện nhất chỉ bằng việc chạy chương trình mà không có các bộ dữ liệu kiểm thử kỹ lưỡng?

5 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

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 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 6: Khi kiểm thử một chương trình, việc sử dụng các bộ dữ liệu kiểm thử đặc biệt (ví dụ: số 0, số âm, chuỗi rỗng) nhằm mục đích gì?

7 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 7: Bạn đang viết một chương trình xử lý danh sách các số. Để kiểm thử chức năng xử lý danh sách trống, bạn nên sử dụng bộ dữ liệu kiểm thử nào?

8 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 8: Quá trình tìm kiếm và loại bỏ các lỗi trong chương trình được gọi là gì?

9 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 9: Khi gặp một lỗi ngữ nghĩa khó hiểu, phương pháp nào sau đây thường hiệu quả nhất để tìm ra nguyên nhân?

10 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 10: Công cụ hỗ trợ gỡ lỗi (debugger) trong môi trường lập trình thường cung cấp khả năng nào sau đây?

11 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 11: Trong quá trình gỡ lỗi, việc đặt 'điểm dừng' (breakpoint) có ý nghĩa gì?

12 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 12: Bạn có một chương trình tính tổng các số từ 1 đến N. Bạn kiểm thử với N=3 và nhận được kết quả là 5 thay vì 6. Bạn nghi ngờ lỗi nằm trong vòng lặp tính tổng. Phương pháp gỡ lỗi nào sau đây phù hợp nhất để xác định chính xác lúc nào tổng bị sai?

13 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 13: Một chương trình tính trung bình cộng của các số trong danh sách. Khi chạy với danh sách [10, 20, 30], chương trình in ra 20. Khi chạy với danh sách [10, 20, 30, 40], chương trình in ra 25. Nhưng khi chạy với danh sách [5, 5, 5], chương trình in ra 10. Dấu hiệu này cho thấy khả năng cao chương trình đang mắc loại lỗi gì?

14 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 14: Khi kiểm thử một chương trình xử lý phép chia, bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất để kiểm tra lỗi ngoại lệ?

15 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 15: Bạn viết một hàm tính giai thừa của một số nguyên không âm. Để kiểm thử hàm này, bộ dữ liệu nào sau đây thuộc loại 'trường hợp đặc biệt' hoặc 'biên' cần được cân nhắc?

16 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 16: Giả sử bạn có đoạn code Python sau: `print('Hello world')`. Nếu bạn chạy đoạn code này và nhận được thông báo lỗi `SyntaxError: invalid syntax`, lỗi đó có khả năng là do đâu?

17 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 17: Việc sử dụng các câu lệnh `print()` để in ra giá trị của các biến tại các điểm khác nhau trong chương trình là một kỹ thuật gỡ lỗi. Kỹ thuật này thuộc nhóm nào?

18 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 18: So với việc sử dụng các câu lệnh `print()` để gỡ lỗi, công cụ debugger mang lại lợi thế đáng kể nào?

19 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 19: Khi kiểm thử một chương trình tính toán liên quan đến các số rất lớn (ví dụ: tính tổng 1 triệu số), bộ dữ liệu kiểm thử loại này nhằm mục đích chính là gì?

20 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 20: Giả sử bạn có đoạn code sau: `age = int(input('Nhập tuổi của bạn: '))`. Nếu người dùng nhập 'mười lăm', loại lỗi nào có khả năng xảy ra khi chương trình thực thi dòng lệnh này?

21 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 21: Bạn đang gỡ lỗi một chương trình in ra dãy số Fibonacci. Bạn nhận thấy chương trình in ra 1, 1, 2, 3, 5, 8,... (đúng) nhưng khi đến số thứ 100 thì kết quả đột nhiên sai. Bạn nên tập trung kiểm tra phần code nào trước tiên?

22 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 22: Một chương trình sắp xếp danh sách các số. Bạn kiểm thử với danh sách [3, 1, 4, 1, 5, 9] và nhận được kết quả [1, 1, 3, 4, 5, 9] (đúng). Nhưng khi kiểm thử với danh sách [5, 4, 3, 2, 1], chương trình lại cho kết quả [1, 2, 3, 5, 4] (sai). Điều này gợi ý rằng lỗi có thể liên quan đến:

23 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 23: Bạn viết một chương trình có sử dụng hàm `tinh_toan(a, b)`. Khi kiểm thử, bạn thấy rằng với `a=10, b=2`, kết quả đúng. Với `a=5, b=0`, chương trình dừng với lỗi `ZeroDivisionError`. Loại lỗi này là gì và bạn nên làm gì?

24 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 24: Để đảm bảo chương trình của bạn hoạt động ổn định và đáng tin cậy, quy trình phát triển phần mềm hợp lý nên bao gồm kiểm thử vào giai đoạn nào?

25 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 25: Khi gỡ lỗi bằng cách sử dụng debugger, việc 'bước qua' (step over) một dòng code có ý nghĩa là gì?

26 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 26: Việc chuẩn bị các bộ dữ liệu kiểm thử đa dạng (thường, đặc biệt, biên, lớn) giúp phát hiện những loại lỗi nào hiệu quả nhất?

27 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 27: Giả sử bạn có đoạn code sau: `x = 10; if x > 5 print('x lớn hơn 5')`. Khi chạy, bạn nhận được lỗi `SyntaxError`. Vị trí lỗi có khả năng cao nhất là ở đâu?

28 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 28: Một chương trình tính tiền cước taxi dựa trên quãng đường. Giá cước có thể thay đổi tại các mốc quãng đường nhất định. Để kiểm thử chính xác, bạn nên chuẩn bị các bộ dữ liệu quãng đường nào?

29 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 29: Lỗi ngoại lệ (Exception Error) khác với lỗi cú pháp (Syntax Error) ở điểm nào?

30 / 30

Category: Trắc nghiệm Tin 10 Cánh diều Bài 16: Kiểm thử và gỡ lỗi chương trình

Tags: Bộ đề 10

Câu 30: Tại sao việc gỡ lỗi (debugging) thường là một quá trình lặp đi lặp lại?

Viết một bình luận