1. Đâu là một ví dụ về kiểm thử phi chức năng (non-functional testing)?
A. Kiểm thử đơn vị.
B. Kiểm thử tích hợp.
C. Kiểm thử bảo mật.
D. Kiểm thử chức năng.
2. Kiểm thử hiệu năng (performance testing) nhằm mục đích gì?
A. Kiểm tra tính bảo mật của phần mềm.
B. Đánh giá tốc độ, độ ổn định và khả năng mở rộng của phần mềm.
C. Kiểm tra giao diện người dùng (UI) của phần mềm.
D. Kiểm tra tính tương thích của phần mềm với các hệ điều hành khác nhau.
3. Mục đích của kiểm thử khói (smoke testing) là gì?
A. Kiểm tra tất cả các chức năng của phần mềm.
B. Đảm bảo rằng các chức năng cốt lõi của phần mềm hoạt động bình thường sau khi build.
C. Kiểm tra hiệu năng của phần mềm.
D. Kiểm tra tính bảo mật của phần mềm.
4. Đâu là một lợi ích của việc sử dụng test driven development (TDD)?
A. Giảm thời gian kiểm thử.
B. Cải thiện chất lượng code và giảm số lượng lỗi.
C. Loại bỏ nhu cầu viết test case.
D. Chỉ phù hợp với các dự án nhỏ.
5. Đâu là một yếu tố quan trọng trong việc xây dựng chiến lược kiểm thử?
A. Chỉ tập trung vào kiểm thử tự động.
B. Hiểu rõ yêu cầu của dự án, rủi ro và nguồn lực.
C. Chỉ sử dụng các công cụ kiểm thử mới nhất.
D. Bỏ qua kiểm thử thủ công.
6. Đâu là mục tiêu của kiểm thử đột biến (mutation testing)?
A. Đánh giá chất lượng code.
B. Đánh giá hiệu quả của bộ test case bằng cách tạo ra các phiên bản đột biến của code và xem liệu các test case có thể phát hiện ra chúng hay không.
C. Kiểm tra hiệu năng của phần mềm.
D. Kiểm tra tính bảo mật của phần mềm.
7. Kiểm thử tích hợp (integration testing) nhằm mục đích gì?
A. Kiểm tra từng đơn vị code riêng lẻ.
B. Kiểm tra sự tương tác giữa các module và thành phần khác nhau của phần mềm.
C. Kiểm tra giao diện người dùng (UI).
D. Kiểm tra hiệu năng của phần mềm.
8. Đâu là một lợi ích của việc sử dụng công cụ tự động hóa kiểm thử?
A. Loại bỏ hoàn toàn nhu cầu kiểm thử thủ công.
B. Giảm thời gian và chi phí kiểm thử, tăng độ chính xác và hiệu quả.
C. Đảm bảo 100% phần mềm không có lỗi.
D. Chỉ cần thiết cho các dự án lớn.
9. Đâu là một kỹ thuật để ước lượng nỗ lực kiểm thử?
A. Phân tích điểm chức năng (Function Point Analysis).
B. Viết code.
C. Thiết kế giao diện người dùng.
D. Lập kế hoạch dự án.
10. Đâu là một kỹ thuật để giảm thiểu số lượng test case trong kiểm thử tổ hợp (combinatorial testing)?
A. Kiểm thử tất cả các tổ hợp.
B. Kiểm thử theo cặp (pairwise testing).
C. Kiểm thử ngẫu nhiên.
D. Kiểm thử thăm dò.
11. Đâu là mục tiêu của kiểm thử chấp nhận (acceptance testing)?
A. Kiểm tra code có tuân thủ coding standards hay không.
B. Xác minh rằng phần mềm đáp ứng yêu cầu của người dùng cuối.
C. Kiểm tra hiệu năng của phần mềm.
D. Kiểm tra tính bảo mật của phần mềm.
12. Loại kiểm thử nào tập trung vào việc xác minh rằng các chức năng riêng lẻ của một module hoạt động chính xác?
A. Kiểm thử tích hợp.
B. Kiểm thử hệ thống.
C. Kiểm thử đơn vị.
D. Kiểm thử chấp nhận.
13. Đâu là một thuộc tính của một test case tốt?
A. Phức tạp và bao gồm nhiều bước.
B. Dễ hiểu, có thể tái sử dụng và có khả năng phát hiện lỗi.
C. Chỉ nên được thực hiện bởi người kiểm thử có kinh nghiệm.
D. Không cần phải ghi lại kết quả.
14. Đâu là một lợi ích của việc sử dụng agile testing?
A. Giảm thiểu sự tham gia của khách hàng.
B. Tăng tốc độ phát triển và cung cấp phản hồi nhanh chóng.
C. Loại bỏ nhu cầu lập kế hoạch kiểm thử.
D. Chỉ phù hợp với các dự án nhỏ.
15. Đâu là một ví dụ về kiểm thử hộp trắng (white-box testing)?
A. Kiểm thử biên (boundary value testing).
B. Kiểm thử đường dẫn (path testing).
C. Kiểm thử tương đương (equivalence partitioning).
D. Kiểm thử chấp nhận (acceptance testing).
16. Đâu là một yếu tố quan trọng trong việc lựa chọn công cụ kiểm thử tự động?
A. Giá thành của công cụ.
B. Khả năng tích hợp với các công cụ phát triển khác, dễ sử dụng và phù hợp với yêu cầu dự án.
C. Sự phổ biến của công cụ.
D. Chỉ nên chọn các công cụ mã nguồn mở.
17. Kiểm thử hồi quy (regression testing) được thực hiện khi nào?
A. Chỉ khi có lỗi nghiêm trọng.
B. Sau khi thực hiện thay đổi code để đảm bảo không có chức năng nào bị ảnh hưởng.
C. Trước khi phát hành phiên bản đầu tiên của phần mềm.
D. Chỉ khi khách hàng yêu cầu.
18. Đâu là sự khác biệt giữa kiểm thử thăm dò (exploratory testing) và kiểm thử theo kịch bản (scripted testing)?
A. Kiểm thử thăm dò là kiểm thử tự động, kiểm thử theo kịch bản là kiểm thử thủ công.
B. Kiểm thử thăm dò dựa trên kinh nghiệm và sự sáng tạo của người kiểm thử, kiểm thử theo kịch bản tuân theo các test case được viết sẵn.
C. Kiểm thử thăm dò tập trung vào chức năng, kiểm thử theo kịch bản tập trung vào hiệu năng.
D. Kiểm thử thăm dò được thực hiện bởi nhà phát triển, kiểm thử theo kịch bản được thực hiện bởi người kiểm thử.
19. Đâu là một ví dụ về kỹ thuật kiểm thử dựa trên mô hình (model-based testing)?
A. Kiểm thử ad-hoc.
B. Kiểm thử theo cặp (pairwise testing).
C. Kiểm thử đơn vị.
D. Kiểm thử thăm dò.
20. Kỹ thuật kiểm thử hộp đen (black-box testing) dựa trên yếu tố nào?
A. Cấu trúc code bên trong của phần mềm.
B. Yêu cầu và đặc tả của phần mềm.
C. Hiệu suất của phần cứng.
D. Số lượng dòng code.
21. Đâu là một thách thức trong kiểm thử phần mềm nhúng (embedded software)?
A. Dễ dàng tái hiện lỗi.
B. Môi trường kiểm thử phức tạp và khó mô phỏng.
C. Dễ dàng truy cập vào phần cứng.
D. Chi phí kiểm thử thấp.
22. Đâu là một kỹ thuật kiểm thử hộp đen?
A. Statement coverage.
B. Decision coverage.
C. Equivalence partitioning.
D. Path coverage.
23. Một bug report tốt nên chứa những thông tin gì?
A. Chỉ mô tả triệu chứng của lỗi.
B. Các bước tái hiện lỗi, môi trường, kết quả mong đợi và kết quả thực tế.
C. Chỉ thông tin về người phát hiện ra lỗi.
D. Chỉ mã code gây ra lỗi.
24. Đâu là một lợi ích của việc sử dụng code coverage analysis?
A. Đảm bảo 100% phần mềm không có lỗi.
B. Xác định các phần code chưa được kiểm thử và cải thiện độ bao phủ kiểm thử.
C. Giảm thời gian kiểm thử.
D. Loại bỏ nhu cầu viết test case.
25. Đâu là sự khác biệt chính giữa kiểm thử tải (load testing) và kiểm thử stress (stress testing)?
A. Kiểm thử tải kiểm tra chức năng, kiểm thử stress kiểm tra hiệu năng.
B. Kiểm thử tải đánh giá hiệu năng của hệ thống dưới tải trọng dự kiến, kiểm thử stress đánh giá hiệu năng của hệ thống dưới tải trọng vượt quá mức dự kiến.
C. Kiểm thử tải là kiểm thử tự động, kiểm thử stress là kiểm thử thủ công.
D. Kiểm thử tải được thực hiện bởi nhà phát triển, kiểm thử stress được thực hiện bởi người kiểm thử.
26. Đâu là một ví dụ về công cụ quản lý kiểm thử?
A. Microsoft Word.
B. Jira.
C. Microsoft Excel.
D. Slack.
27. Khi nào nên dừng kiểm thử?
A. Khi hết thời gian.
B. Khi tất cả các test case đều pass.
C. Khi đạt được các tiêu chí dừng đã được xác định trước, chẳng hạn như tỷ lệ lỗi thấp và độ bao phủ code đủ.
D. Khi hết ngân sách.
28. Đâu là mục tiêu chính của kiểm thử phần mềm?
A. Chứng minh rằng phần mềm không có lỗi.
B. Tìm ra càng nhiều lỗi càng tốt trước khi phát hành.
C. Đảm bảo rằng phần mềm chạy nhanh nhất có thể.
D. Đảm bảo rằng phần mềm trông đẹp mắt.
29. Vai trò của người quản lý kiểm thử (test manager) là gì?
A. Viết code cho phần mềm.
B. Thiết kế và thực hiện các test case.
C. Lập kế hoạch, điều phối và quản lý các hoạt động kiểm thử.
D. Giao tiếp với khách hàng.
30. Đâu là sự khác biệt chính giữa kiểm thử alpha và kiểm thử beta?
A. Kiểm thử alpha được thực hiện bởi nhà phát triển, kiểm thử beta được thực hiện bởi người dùng cuối.
B. Kiểm thử alpha được thực hiện trong môi trường kiểm soát, kiểm thử beta được thực hiện trong môi trường thực tế.
C. Kiểm thử alpha tập trung vào chức năng, kiểm thử beta tập trung vào hiệu năng.
D. Kiểm thử alpha là kiểm thử tự động, kiểm thử beta là kiểm thử thủ công.