1. Nếu một lập trình viên quên đóng một kết nối cơ sở dữ liệu sau khi sử dụng xong, điều này có thể dẫn đến loại lỗi nào về lâu dài?
A. Lỗi cú pháp (Syntax error).
B. Lỗi logic (Logic error).
C. Lỗi chạy (Runtime error) hoặc cạn kiệt tài nguyên hệ thống (Resource exhaustion).
D. Lỗi giao diện người dùng (UI error).
2. Nếu một chương trình được lập trình để tính tổng của hai số A và B, nhưng lại thực hiện phép trừ thay vì phép cộng, lỗi này thuộc loại nào?
A. Lỗi cú pháp (Syntax error).
B. Lỗi chạy (Runtime error).
C. Lỗi logic (Logic error).
D. Lỗi nhập liệu (Input error).
3. Mục đích của việc ghi lại chi tiết các lỗi tìm thấy trong quá trình kiểm thử (bug report) là gì?
A. Để làm chậm quá trình sửa lỗi.
B. Để cung cấp đủ thông tin cho lập trình viên sửa lỗi hiệu quả.
C. Để làm cho báo cáo kiểm thử trông chuyên nghiệp hơn.
D. Để tăng số lượng lỗi được báo cáo.
4. Loại kiểm thử nào tập trung vào việc đánh giá khả năng chương trình hoạt động ổn định dưới một số lượng lớn người dùng truy cập đồng thời hoặc một khối lượng dữ liệu lớn?
A. Kiểm thử chức năng (Functional testing)
B. Kiểm thử hiệu năng (Performance testing)
C. Kiểm thử khả dụng (Usability testing)
D. Kiểm thử đơn vị (Unit testing)
5. Nếu bạn đã sửa một lỗi trong chương trình và muốn đảm bảo rằng việc sửa lỗi đó không gây ra các lỗi mới ở các phần khác của chương trình, bạn nên thực hiện loại kiểm thử nào?
A. Kiểm thử khám phá (Exploratory testing)
B. Kiểm thử hồi quy (Regression testing)
C. Kiểm thử hiệu năng (Performance testing)
D. Kiểm thử bảo mật (Security testing)
6. Mục tiêu của kiểm thử hộp xám (Gray-box testing) là gì?
A. Chỉ tập trung vào giao diện người dùng.
B. Kết hợp cả kiểm thử hộp đen và hộp trắng, sử dụng một phần kiến thức về cấu trúc bên trong để thiết kế ca kiểm thử.
C. Đảm bảo chương trình hoạt động đúng theo yêu cầu nghiệp vụ.
D. Chỉ kiểm tra hiệu năng của hệ thống.
7. Khi một chương trình hiển thị thông báo lỗi NullPointerException hoặc Segmentation Fault, đây thường là dấu hiệu của loại lỗi nào?
A. Lỗi cú pháp (Syntax error).
B. Lỗi logic (Logic error).
C. Lỗi chạy (Runtime error).
D. Lỗi thiết kế (Design error).
8. Kiểm thử hộp trắng (White-box testing) đòi hỏi người kiểm thử phải có hiểu biết về điều gì?
A. Yêu cầu nghiệp vụ của người dùng cuối.
B. Cấu trúc bên trong, logic và mã nguồn của chương trình.
C. Chi phí và thời gian phát triển phần mềm.
D. Cách người dùng tương tác với giao diện chương trình.
9. Khi bạn sửa một lỗi và cần đảm bảo rằng bản sửa lỗi đó không làm hỏng các chức năng đã hoạt động đúng trước đó, bạn đang thực hiện loại kiểm thử nào?
A. Kiểm thử hồi quy (Regression testing)
B. Kiểm thử hiệu năng (Performance testing)
C. Kiểm thử bảo mật (Security testing)
D. Kiểm thử tải (Load testing)
10. Trong quá trình gỡ lỗi (debugging), hành động nào sau đây là quan trọng nhất để xác định nguyên nhân gốc rễ của lỗi?
A. Thêm nhiều tính năng mới vào chương trình.
B. Chạy lại chương trình nhiều lần với cùng một bộ dữ liệu.
C. Sử dụng công cụ gỡ lỗi (debugger) để theo dõi luồng thực thi và giá trị biến.
D. Thay đổi ngẫu nhiên mã nguồn cho đến khi chương trình chạy được.
11. Loại lỗi nào xảy ra khi lập trình viên quên khai báo một biến hoặc sử dụng sai tên biến đã khai báo?
A. Lỗi logic (Logic errors)
B. Lỗi cú pháp (Syntax errors)
C. Lỗi ngoại lệ (Exception errors)
D. Lỗi kiểu dữ liệu (Type errors)
12. Loại kiểm thử nào nhằm mục đích tìm kiếm các lỗi mà người dùng cuối có thể gặp phải trong quá trình sử dụng chương trình trong môi trường thực tế?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm thử tích hợp (Integration testing)
C. Kiểm thử chấp nhận (Acceptance testing)
D. Kiểm thử hệ thống (System testing)
13. Phương pháp kiểm thử nào tập trung vào việc xác minh rằng mỗi chức năng của chương trình hoạt động độc lập và đúng đắn như yêu cầu thiết kế, mà không quan tâm đến cách các chức năng đó tương tác với nhau?
A. Kiểm thử tích hợp (Integration testing)
B. Kiểm thử hệ thống (System testing)
C. Kiểm thử đơn vị (Unit testing)
D. Kiểm thử hồi quy (Regression testing)
14. Khi một chương trình gặp lỗi và dừng hoạt động đột ngột, hiển thị thông báo lỗi hoặc mã lỗi, đó thường là dấu hiệu của loại lỗi nào?
A. Lỗi logic (Logic errors)
B. Lỗi cú pháp (Syntax errors)
C. Lỗi chạy (Runtime errors)
D. Lỗi thiết kế (Design errors)
15. Kiểm thử hộp đen (Black-box testing) là phương pháp kiểm thử tập trung vào điều gì?
A. Cấu trúc bên trong và logic của mã nguồn.
B. Chức năng và hành vi của chương trình dựa trên yêu cầu, không quan tâm đến cấu trúc bên trong.
C. Hiệu năng và tốc độ xử lý của hệ thống.
D. Mức độ bảo mật và an toàn của dữ liệu.
16. Trong chu trình phát triển phần mềm, giai đoạn nào thường ưu tiên thực hiện kiểm thử đơn vị?
A. Giai đoạn thu thập yêu cầu.
B. Giai đoạn thiết kế kiến trúc.
C. Giai đoạn lập trình (Coding).
D. Giai đoạn triển khai (Deployment).
17. Khi kiểm thử một chức năng tính toán, nếu bạn nhập hai số và nhận được kết quả sai lệch so với phép tính thủ công, đó là lỗi gì?
A. Lỗi cú pháp (Syntax error)
B. Lỗi chạy (Runtime error)
C. Lỗi logic (Logic error)
D. Lỗi giao diện (UI error)
18. Kiểm thử hộp trắng (White-box testing) có ưu điểm là gì so với kiểm thử hộp đen (Black-box testing)?
A. Dễ thực hiện hơn vì không cần hiểu mã nguồn.
B. Có khả năng phát hiện nhiều loại lỗi logic ẩn sâu bên trong mã nguồn.
C. Chỉ tập trung vào giao diện người dùng.
D. Yêu cầu ít thời gian và nguồn lực hơn.
19. Đâu là một ví dụ về lỗi cú pháp (syntax error) trong nhiều ngôn ngữ lập trình phổ biến?
A. Một vòng lặp vô hạn (infinite loop).
B. Thiếu dấu chấm phẩy (semicolon) ở cuối câu lệnh.
C. Chương trình chạy chậm dưới tải nặng.
D. Kết quả tính toán sai.
20. Trong quá trình gỡ lỗi, việc sử dụng print statements (lệnh in) để 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 phổ biến thuộc loại nào?
A. Kiểm thử hộp đen (Black-box testing).
B. Kiểm thử hồi quy (Regression testing).
C. Gỡ lỗi bằng cách theo dõi (Debugging by tracing).
D. Kiểm thử chấp nhận (Acceptance testing).
21. Khi kiểm thử một chương trình xử lý số liệu, bạn cung cấp các giá trị đầu vào nằm ngoài phạm vi cho phép (ví dụ: nhập chữ vào trường số). Loại lỗi nào có thể xảy ra?
A. Lỗi logic (Logic errors)
B. Lỗi cú pháp (Syntax errors)
C. Lỗi chạy (Runtime errors)
D. Lỗi thiết kế (Design errors)
22. Khi một chương trình được thiết kế để thực hiện một tác vụ cụ thể, nhưng lại thực hiện một tác vụ khác hoặc không thực hiện đúng tác vụ đó, đó là biểu hiện của loại lỗi nào?
A. Lỗi cú pháp (Syntax errors)
B. Lỗi chạy (Runtime errors)
C. Lỗi logic (Logic errors)
D. Lỗi nhập liệu (Input errors)
23. 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 một số âm, chương trình không xử lý hoặc hiển thị kết quả không mong muốn, đây là ví dụ về lỗi gì?
A. Lỗi cú pháp (Syntax errors)
B. Lỗi ngoại lệ do dữ liệu không hợp lệ (Invalid data exception)
C. Lỗi logic do thiếu kiểm tra đầu vào (Logic error due to missing input validation)
D. Lỗi hiệu năng (Performance errors)
24. Trong quá trình kiểm thử, loại lỗi nào thường liên quan đến việc chương trình hoạt động không đúng như mong đợi do sai sót trong logic hoặc thuật toán được cài đặt?
A. Lỗi cú pháp (Syntax errors)
B. Lỗi logic (Logic errors)
C. Lỗi chạy (Runtime errors)
D. Lỗi ngoại lệ (Exception errors)
25. Mục tiêu chính của việc kiểm thử phần mềm là gì?
A. Tăng tốc độ thực thi của chương trình.
B. Giảm chi phí phát triển phần mềm.
C. Phát hiện và sửa lỗi, đảm bảo chất lượng và độ tin cậy của chương trình.
D. Tạo ra giao diện người dùng đẹp mắt hơn.