1. Nếu một chương trình hiển thị sai ký tự hoặc định dạng văn bản, lỗi này có thể liên quan đến yếu tố nào?
A. Lỗi cú pháp.
B. Lỗi xử lý mã hóa ký tự (character encoding) hoặc định dạng hiển thị.
C. Lỗi phần cứng màn hình.
D. Lỗi hệ điều hành.
2. Khi một chương trình máy tính gặp lỗi logic, điều này thường có nghĩa là gì?
A. Mã nguồn của chương trình không tuân thủ quy tắc viết của ngôn ngữ lập trình.
B. Chương trình biên dịch thành công nhưng cho ra kết quả không đúng như mong đợi.
C. Chương trình không thể khởi động hoặc bị dừng đột ngột trong quá trình chạy.
D. Người dùng đã nhập sai thông tin vào chương trình.
3. Khi chạy thử một chương trình sắp xếp danh sách, nếu danh sách sau khi sắp xếp không theo đúng thứ tự mong muốn (ví dụ: tăng dần), đó là lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic trong thuật toán sắp xếp.
C. Lỗi bộ nhớ.
D. Lỗi giao diện người dùng.
4. Nếu một chương trình tính tổng của hai số nguyên, nhưng lại chuyển đổi chúng thành số thực và thực hiện phép cộng, dẫn đến sai số nhỏ ở các phép tính phức tạp, đó là lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic về kiểu dữ liệu (Data type mismatch).
C. Lỗi thời gian chạy.
D. Lỗi nhập liệu.
5. Khi chạy thử một chương trình có giao diện đồ họa, nếu một nút bấm không phản hồi khi người dùng nhấp vào, lỗi này có thể là gì?
A. Lỗi cú pháp.
B. Lỗi logic trong xử lý sự kiện của nút bấm.
C. Lỗi phần cứng của thiết bị nhập.
D. Lỗi hệ điều hành.
6. Nếu một chương trình yêu cầu nhập số, nhưng người dùng nhập một chuỗi ký tự không phải số và chương trình bị dừng đột ngột, đó là loại lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi thời gian chạy (Runtime error).
D. Lỗi thiết kế.
7. Trong quá trình chạy thử, nếu bạn gặp một thông báo lỗi không rõ ràng, hành động nào sau đây là hữu ích nhất?
A. Bỏ qua thông báo lỗi và tiếp tục sử dụng chương trình.
B. Tìm kiếm thông tin về thông báo lỗi đó trên Internet hoặc tài liệu lập trình.
C. Giả định rằng chương trình sẽ tự sửa lỗi.
D. Thay đổi ngẫu nhiên mã nguồn cho đến khi lỗi biến mất.
8. Nếu một chương trình yêu cầu người dùng nhập tuổi, và người dùng nhập abc, lỗi này thuộc loại nào?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi nhập liệu (Input error).
D. Lỗi hệ thống.
9. Sau khi sửa một lỗi trong chương trình, hành động tiếp theo cần thực hiện là gì để đảm bảo việc sửa lỗi là chính xác?
A. Chuyển ngay sang phát triển tính năng mới.
B. Kiểm tra lại chương trình để xác nhận lỗi đã được khắc phục và không phát sinh lỗi mới.
C. Thông báo cho người dùng rằng chương trình đã ổn định.
D. Xóa bỏ phần mã nguồn liên quan đến lỗi.
10. Nếu một chương trình được thiết kế để xử lý tối đa 100 mục, và khi nhập 101 mục, chương trình bị dừng đột ngột, đó có thể là lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic liên quan đến giới hạn xử lý.
C. Lỗi thời gian chạy do vượt quá bộ nhớ.
D. Lỗi nhập liệu.
11. Mục đích của việc chạy thử với nhiều người dùng đồng thời (concurrency testing) là gì?
A. Để kiểm tra xem chương trình có thể chạy trên nhiều máy tính khác nhau không.
B. Đảm bảo chương trình hoạt động ổn định khi nhiều người dùng tương tác cùng lúc.
C. Giảm chi phí bản quyền phần mềm.
D. Tăng cường bảo mật cho hệ thống.
12. Nếu một chương trình xử lý danh sách, và khi danh sách trống, chương trình báo lỗi phân chia cho 0, đây là loại lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi thời gian chạy (Runtime error) do điều kiện không xử lý được.
D. Lỗi người dùng.
13. Việc chạy thử một chương trình là một phần quan trọng của giai đoạn nào trong vòng đời phát triển phần mềm?
A. Thiết kế yêu cầu người dùng.
B. Lập kế hoạch dự án.
C. Kiểm thử và gỡ lỗi.
D. Triển khai và bảo trì.
14. Tại sao việc kiểm tra trường hợp biên (boundary cases) lại quan trọng khi chạy thử chương trình?
A. Để đảm bảo chương trình hoạt động nhanh nhất với các giá trị trung bình.
B. Các lỗi thường xuất hiện ở các giới hạn của phạm vi dữ liệu hợp lệ.
C. Giúp chương trình sử dụng ít tài nguyên hệ thống hơn.
D. Để kiểm tra các chức năng không quan trọng của chương trình.
15. Nếu một chương trình lưu thông tin người dùng vào cơ sở dữ liệu, nhưng sau đó không thể truy xuất lại thông tin đó, lỗi này có khả năng là gì?
A. Lỗi cú pháp.
B. Lỗi logic trong quá trình lưu hoặc truy xuất dữ liệu.
C. Lỗi mạng.
D. Lỗi phần cứng lưu trữ.
16. Mục tiêu của kiểm thử hồi quy (regression testing) là gì?
A. Kiểm tra các chức năng hoàn toàn mới được thêm vào.
B. Đảm bảo rằng việc sửa lỗi hoặc thêm tính năng mới không làm hỏng các chức năng hiện có.
C. Tăng tốc độ xử lý của toàn bộ chương trình.
D. Giảm thiểu số lượng trường hợp kiểm thử cần thực hiện.
17. Khi chạy thử một chương trình tính toán đơn giản, nếu chương trình trả về kết quả 5 + 3 = 7, lỗi này là lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi thời gian chạy (Runtime error).
D. Lỗi giao diện người dùng.
18. Trong ngữ cảnh chạy thử chương trình, thuật ngữ test suite có nghĩa là gì?
A. Một công cụ dùng để viết mã chương trình.
B. Một tập hợp các trường hợp kiểm thử được thiết kế để kiểm tra một chức năng hoặc toàn bộ chương trình.
C. Báo cáo kết quả của quá trình gỡ lỗi.
D. Môi trường phát triển tích hợp (IDE).
19. Khi chạy thử một chương trình tìm kiếm, nếu chương trình không tìm thấy một mục có sẵn trong danh sách, lỗi này có khả năng là gì?
A. Lỗi cú pháp.
B. Lỗi logic trong thuật toán tìm kiếm.
C. Lỗi hệ điều hành.
D. Lỗi phần cứng.
20. Mục tiêu của việc gỡ lỗi (debugging) là gì?
A. Viết thêm các tính năng mới cho chương trình.
B. Tìm kiếm và sửa chữa các lỗi trong mã nguồn.
C. Tối ưu hóa tốc độ thực thi của chương trình.
D. Thiết kế lại giao diện người dùng.
21. Trong quá trình chạy thử, việc sử dụng các trường hợp kiểm thử (test cases) khác nhau giúp đạt được mục đích gì?
A. Tăng tốc độ xử lý của chương trình.
B. Kiểm tra toàn diện các chức năng và phát hiện nhiều loại lỗi tiềm ẩn.
C. Giảm dung lượng bộ nhớ mà chương trình sử dụng.
D. Tự động hóa hoàn toàn quá trình lập trình.
22. Việc ghi lại các bước thực hiện và kết quả quan sát được trong quá trình chạy thử nhằm mục đích gì?
A. Làm cho chương trình phức tạp hơn.
B. Cung cấp thông tin chi tiết để gỡ lỗi và cải tiến chương trình.
C. Giảm số lượng người dùng chương trình.
D. Tăng thời gian hoàn thành dự án.
23. Trong quá trình chạy thử chương trình, mục đích chính của việc kiểm tra lỗi cú pháp là gì?
A. Đảm bảo chương trình hoạt động hiệu quả và nhanh chóng.
B. Phát hiện và sửa các lỗi do người dùng nhập sai dữ liệu.
C. Xác định các sai sót trong cách viết mã theo quy tắc của ngôn ngữ lập trình.
D. Kiểm tra xem chương trình có xử lý được các trường hợp ngoại lệ hay không.
24. Mục đích của kiểm thử đơn vị (unit testing) là gì?
A. Kiểm tra toàn bộ chương trình hoạt động cùng nhau.
B. Kiểm tra từng thành phần hoặc module nhỏ nhất của chương trình một cách độc lập.
C. Đảm bảo giao diện người dùng thân thiện.
D. Đánh giá hiệu suất tổng thể của hệ thống.
25. Trong quá trình chạy thử, việc sử dụng trường hợp kiểm thử âm tính (negative test case) nhằm mục đích gì?
A. Kiểm tra xem chương trình có hoạt động tốt với dữ liệu hợp lệ.
B. Kiểm tra cách chương trình phản ứng với dữ liệu không hợp lệ hoặc các tình huống bất thường.
C. Đảm bảo chương trình có thể xử lý lượng lớn dữ liệu.
D. Tăng tốc độ thực thi của chương trình.