1. Sự khác biệt chính giữa kiểm thử alpha và kiểm thử beta là gì?
A. Kiểm thử alpha do lập trình viên thực hiện, kiểm thử beta do tester thực hiện.
B. Kiểm thử alpha thực hiện tại môi trường của nhà phát triển, kiểm thử beta thực hiện tại môi trường của người dùng cuối.
C. Kiểm thử alpha chỉ kiểm tra chức năng, kiểm thử beta chỉ kiểm tra hiệu năng.
D. Kiểm thử alpha không cần tài liệu, kiểm thử beta cần tài liệu đầy đủ.
2. Đâu là lợi ích của việc sử dụng phương pháp kiểm thử Agile?
A. Giảm sự tương tác giữa tester và lập trình viên.
B. Tăng tính linh hoạt và khả năng thích ứng với thay đổi trong yêu cầu.
C. Loại bỏ hoàn toàn nhu cầu kiểm thử.
D. Giảm chi phí kiểm thử.
3. Kiểm thử khói (smoke testing) thường được thực hiện khi nào?
A. Ở cuối chu kỳ phát triển phần mềm.
B. Sau mỗi lần build mới để đảm bảo các chức năng cơ bản hoạt động.
C. Chỉ khi có lỗi nghiêm trọng.
D. Trước khi bắt đầu kiểm thử hồi quy.
4. Phương pháp kiểm thử nào sau đây thuộc kiểm thử hộp trắng (white-box testing)?
A. Kiểm thử tương đương (Equivalence Partitioning).
B. Kiểm thử giá trị biên (Boundary Value Analysis).
C. Kiểm thử đường dẫn (Path Testing).
D. Kiểm thử dựa trên bảng quyết định (Decision Table Testing).
5. Khi nào nên dừng kiểm thử phần mềm?
A. Khi hết thời gian và ngân sách.
B. Khi tất cả các test case đã được thực hiện.
C. Khi đạt được mức độ tin cậy chấp nhận được và rủi ro ở mức thấp.
D. Khi không tìm thấy lỗi nào nữa.
6. Đâu là một thách thức trong kiểm thử các ứng dụng di động?
A. Quá ít thiết bị để kiểm thử.
B. Sự đa dạng của các thiết bị, hệ điều hành và độ phân giải màn hình.
C. Dễ dàng tự động hóa tất cả các test case.
D. Không cần kiểm tra hiệu năng.
7. Đâu là ưu điểm của việc tự động hóa kiểm thử?
A. Luôn tìm thấy nhiều lỗi hơn kiểm thử thủ công.
B. Giảm chi phí kiểm thử trong dài hạn và tăng tốc độ thực hiện các test case lặp đi lặp lại.
C. Loại bỏ hoàn toàn nhu cầu kiểm thử thủ công.
D. Đảm bảo phần mềm không có lỗi.
8. Đâu là mục tiêu của kiểm thử chấp nhận (acceptance testing)?
A. Để tìm lỗi trong code.
B. Để đảm bảo 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.
9. Đâu là mục đích của việc tạo ma trận truy vết yêu cầu (requirements traceability matrix)?
A. Để tự động tạo test case.
B. Để đảm bảo tất cả các yêu cầu đều được kiểm thử đầy đủ.
C. Để tính toán chi phí kiểm thử.
D. Để đánh giá hiệu suất của tester.
10. Đâu là vai trò của trưởng nhóm kiểm thử (test lead)?
A. Viết code.
B. Thiết kế và thực hiện test case.
C. Lập kế hoạch kiểm thử, phân công công việc và theo dõi tiến độ.
D. Quản lý cơ sở dữ liệu.
11. Đâu là một kỹ thuật thiết kế test case hộp đen?
A. Kiểm thử luồng điều khiển (Control Flow Testing).
B. Kiểm thử độ bao phủ quyết định (Decision Coverage Testing).
C. Kiểm thử chuyển trạng thái (State Transition Testing).
D. Kiểm thử độ bao phủ câu lệnh (Statement Coverage Testing).
12. Kiểm thử hồi quy (regression testing) được thực hiện khi nào?
A. Chỉ khi phát hiện lỗi nghiêm trọng.
B. Sau khi thay đổi code để đảm bảo các chức năng cũ vẫn hoạt động đúng.
C. Trước khi bắt đầu phát triển phần mềm.
D. Chỉ khi có yêu cầu từ khách hàng.
13. Đâu là một thách thức phổ biến trong kiểm thử phần mềm?
A. Quá nhiều tester.
B. Dễ dàng tìm thấy tất cả các lỗi.
C. Thiếu tài liệu yêu cầu rõ ràng.
D. Không có công cụ kiểm thử phù hợp.
14. Bạn nên làm gì khi một test case thất bại?
A. Bỏ qua nó và tiếp tục kiểm thử các test case khác.
B. Sửa lỗi trong code ngay lập tức.
C. Báo cáo lỗi và cung cấp thông tin chi tiết để lập trình viên có thể sửa lỗi.
D. Xóa test case đó.
15. Đâu là mục tiêu chính của kiểm thử phần mềm?
A. Đảm bảo phần mềm có giao diện đẹp mắt.
B. Tìm ra càng nhiều lỗi càng tốt để cải thiện chất lượng phần mềm.
C. Chứng minh rằng phần mềm không có lỗi.
D. Tăng tốc độ phát triển phần mềm.
16. Đâu là một loại kiểm thử bảo mật (security testing)?
A. Kiểm thử tải (load testing).
B. Kiểm thử xâm nhập (penetration testing).
C. Kiểm thử khả năng sử dụng (usability testing).
D. Kiểm thử tương thích (compatibility testing).
17. Đâu là lợi ích của việc sử dụng công cụ quản lý kiểm thử?
A. Giảm số lượng tester cần thiết.
B. Tự động tìm và sửa lỗi.
C. Cải thiện khả năng theo dõi, quản lý và báo cáo về quá trình kiểm thử.
D. Đảm bảo phần mềm không có lỗi.
18. Kiểm thử khám phá (exploratory testing) là gì?
A. Kiểm thử dựa trên các test case đã được viết sẵn.
B. Kiểm thử ngẫu nhiên không có kế hoạch.
C. Kiểm thử đồng thời học hỏi về phần mềm, thiết kế và thực hiện kiểm thử.
D. Kiểm thử chỉ tập trung vào giao diện người dùng.
19. Trong kiểm thử phần mềm, thuật ngữ `coverage` (độ bao phủ) nghĩa là gì?
A. Số lượng tester trong nhóm.
B. Mức độ các yêu cầu, code hoặc đường dẫn thực thi được kiểm tra bởi các test case.
C. Số lượng lỗi đã được tìm thấy.
D. Thời gian cần thiết để hoàn thành kiểm thử.
20. Kiểm thử hộp đen (black-box testing) là gì?
A. Kiểm thử dựa trên việc xem xét cấu trúc code bên trong của phần mềm.
B. Kiểm thử bỏ qua các yêu cầu của phần mềm.
C. Kiểm thử không cần tài liệu.
D. Kiểm thử dựa trên chức năng và yêu cầu của phần mềm mà không cần biết cấu trúc bên trong.
21. Đâu là một chỉ số (metric) quan trọng trong kiểm thử phần mềm?
A. Số dòng code đã viết.
B. Số lượng tester trong nhóm.
C. Số lượng lỗi được tìm thấy.
D. Số giờ làm việc của lập trình viên.
22. Đâu là định nghĩa chính xác nhất về `test case`?
A. Một đoạn code dùng để kiểm tra phần mềm.
B. Một tài liệu mô tả các bước, dữ liệu đầu vào, điều kiện thực hiện và kết quả mong đợi cho một chức năng cụ thể.
C. Một báo cáo về các lỗi đã được tìm thấy.
D. Một công cụ tự động hóa kiểm thử.
23. Đâu là nhược điểm của việc tự động hóa kiểm thử?
A. Không thể kiểm tra giao diện người dùng.
B. Đòi hỏi kỹ năng lập trình và bảo trì script kiểm thử.
C. Luôn chậm hơn kiểm thử thủ công.
D. Không thể kiểm tra hiệu năng.
24. 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. Đảm bảo phần mềm đáp ứng các yêu cầu về tốc độ, khả năng chịu tải và ổn định.
C. Kiểm tra giao diện người dùng.
D. Kiểm tra tính tương thích với các hệ điều hành khác nhau.
25. Đâu là sự khác biệt giữa `error`, `fault` và `failure` trong kiểm thử phần mềm?
A. Chúng là các thuật ngữ đồng nghĩa.
B. `Error` là hành động của người, `fault` là lỗi trong code, `failure` là khi phần mềm không hoạt động đúng.
C. `Error` là lỗi trong code, `fault` là hành động của người, `failure` là khi phần mềm không hoạt động đúng.
D. Chúng đều chỉ các vấn đề về hiệu năng.
26. Điều gì quan trọng nhất khi viết báo cáo lỗi (bug report)?
A. Sử dụng ngôn ngữ hoa mỹ.
B. Cung cấp thông tin đầy đủ, rõ ràng và dễ hiểu để lập trình viên có thể tái tạo lỗi.
C. Đổ lỗi cho lập trình viên.
D. Giữ báo cáo ngắn gọn nhất có thể, bỏ qua các chi tiết.
27. Đâu là mục đích của kiểm thử đơn vị (unit testing)?
A. Kiểm tra toàn bộ hệ thống.
B. Kiểm tra từng thành phần nhỏ nhất của phần mềm (ví dụ: hàm, phương thức).
C. Kiểm tra giao diện người dùng.
D. Kiểm tra hiệu năng của hệ thống.
28. Điều gì KHÔNG phải là một giai đoạn trong quy trình kiểm thử phần mềm?
A. Phân tích và thiết kế kiểm thử.
B. Thực hiện kiểm thử.
C. Phát triển phần mềm.
D. Đóng kiểm thử.
29. Kiểm thử ad-hoc là gì?
A. Kiểm thử theo kế hoạch và có tài liệu.
B. Kiểm thử không có kế hoạch và không có tài liệu, thường được thực hiện để tìm lỗi nhanh chóng.
C. Kiểm thử chỉ tập trung vào giao diện người dùng.
D. Kiểm thử chỉ do người dùng cuối thực hiện.
30. Phân tích giá trị biên (Boundary Value Analysis) là một kỹ thuật kiểm thử hộp gì?
A. Hộp trắng.
B. Hộp xám.
C. Hộp đen.
D. Không hộp.