1. Kiểm thử khả năng sử dụng (Usability testing) tập trung vào khía cạnh nào của phần mềm?
A. Hiệu suất và tốc độ của phần mềm.
B. Mức độ thân thiện và dễ sử dụng của giao diện người dùng.
C. Tính bảo mật của dữ liệu người dùng.
D. Tính tương thích với các hệ điều hành khác nhau.
2. Công cụ `bug tracking` (theo dõi lỗi) được sử dụng để làm gì?
A. Tự động hóa việc thực thi các trường hợp kiểm thử.
B. Ghi lại, theo dõi và quản lý vòng đời của các lỗi phần mềm.
C. Đo lường hiệu năng của phần mềm.
D. Thiết kế trường hợp kiểm thử.
3. Chỉ số `số lượng lỗi trung bình trên mỗi nghìn dòng mã` (defects per thousand lines of code - KLOC) dùng để đo lường điều gì?
A. Hiệu suất của người kiểm thử.
B. Độ phức tạp của mã nguồn.
C. Chất lượng của mã nguồn.
D. Thời gian kiểm thử cần thiết.
4. Đo lường `độ bao phủ mã` (code coverage) trong kiểm thử hộp trắng nhằm mục đích gì?
A. Đo lường hiệu suất của phần mềm.
B. Đánh giá chất lượng yêu cầu.
C. Xác định tỷ lệ mã nguồn đã được thực thi bởi các trường hợp kiểm thử.
D. Đếm số lượng lỗi trong mã.
5. Mục đích của việc `lập kế hoạch kiểm thử` (test planning) là gì?
A. Viết tất cả các trường hợp kiểm thử chi tiết.
B. Xác định phạm vi, mục tiêu, nguồn lực và lịch trình cho hoạt động kiểm thử.
C. Thực hiện kiểm thử tự động.
D. Báo cáo kết quả kiểm thử cho quản lý.
6. Phương pháp kiểm thử ` thăm dò` (Exploratory testing) được mô tả đúng nhất là gì?
A. Kiểm thử dựa trên kịch bản kiểm thử được viết sẵn.
B. Kiểm thử không có kế hoạch trước và tập trung vào học hỏi trong quá trình kiểm thử.
C. Kiểm thử tự động hoàn toàn.
D. Kiểm thử chỉ thực hiện bởi người dùng cuối.
7. Mục tiêu chính của kiểm thử phần mềm là gì?
A. Chứng minh phần mềm không có lỗi.
B. Tìm càng nhiều lỗi càng tốt trước khi phát hành.
C. Đảm bảo phần mềm đáp ứng mọi yêu cầu của khách hàng.
D. Tăng tốc độ phát triển phần mềm.
8. Trong ngữ cảnh kiểm thử, `môi trường kiểm thử` (test environment) bao gồm những gì?
A. Chỉ phần cứng và phần mềm cần thiết để thực hiện kiểm thử.
B. Phần cứng, phần mềm, dữ liệu kiểm thử, và cấu hình mạng cần thiết để thực hiện kiểm thử.
C. Chỉ các công cụ kiểm thử tự động.
D. Chỉ đội ngũ kiểm thử và kế hoạch kiểm thử.
9. Trong kiểm thử hiệu năng (Performance testing), `load testing` và `stress testing` khác nhau như thế nào?
A. Load testing kiểm tra hiệu năng dưới tải trọng bình thường, stress testing kiểm tra hiệu năng dưới tải trọng cực đoan.
B. Load testing kiểm tra chức năng, stress testing kiểm tra phi chức năng.
C. Load testing được thực hiện trước stress testing.
D. Stress testing là một loại của load testing.
10. Kiểm thử khói (Smoke testing) thường được thực hiện khi nào?
A. Trước khi phát hành phần mềm cho người dùng cuối.
B. Sau mỗi thay đổi nhỏ trong mã nguồn.
C. Sau khi tích hợp các module và trước khi kiểm thử hệ thống chi tiết.
D. Chỉ khi có lỗi nghiêm trọng được phát hiện.
11. Trong kiểm thử dựa trên rủi ro (Risk-based testing), trọng tâm chính là gì?
A. Kiểm thử tất cả các chức năng của phần mềm.
B. Ưu tiên kiểm thử các khu vực có rủi ro cao nhất đối với dự án.
C. Giảm thiểu chi phí kiểm thử.
D. Tăng tốc độ kiểm thử.
12. Kiểm thử đơn vị (Unit testing) thường được thực hiện ở giai đoạn nào của vòng đời phát triển phần mềm?
A. Giai đoạn phân tích yêu cầu.
B. Giai đoạn thiết kế.
C. Giai đoạn lập trình.
D. Giai đoạn kiểm thử hệ thống.
13. Trong Agile testing, kiểm thử thường được thực hiện như thế nào?
A. Theo mô hình thác nước, kiểm thử sau khi phát triển.
B. Liên tục và song song với quá trình phát triển trong mỗi sprint.
C. Chỉ thực hiện kiểm thử chấp nhận ở cuối mỗi iteration.
D. Giao khoán kiểm thử cho một nhóm độc lập hoàn toàn.
14. Loại kiểm thử nào được thực hiện bởi người dùng cuối hoặc khách hàng để xác nhận phần mềm đáp ứng nhu cầu kinh doanh của họ?
A. Kiểm thử hệ thống.
B. Kiểm thử tích hợp.
C. Kiểm thử chấp nhận.
D. Kiểm thử hiệu năng.
15. Kỹ thuật kiểm thử nào chia miền đầu vào thành các phân vùng có giá trị tương đương để giảm số lượng trường hợp kiểm thử?
A. Phân tích giá trị biên.
B. Phân vùng tương đương.
C. Kiểm thử bảng quyết định.
D. Kiểm thử đường dẫn cơ bản.
16. Kiểm thử hồi quy (Regression testing) được thực hiện khi nào?
A. Khi bắt đầu dự án.
B. Sau khi sửa lỗi hoặc thêm chức năng mới.
C. Trước khi kiểm thử hệ thống.
D. Chỉ khi có yêu cầu của khách hàng.
17. Loại kiểm thử nào tập trung vào việc xác minh giao tiếp giữa các module phần mềm?
A. Kiểm thử đơn vị.
B. Kiểm thử tích hợp.
C. Kiểm thử hệ thống.
D. Kiểm thử chấp nhận.
18. Lỗi (defect), sai sót (fault), và hỏng hóc (failure) trong phần mềm có mối quan hệ như thế nào?
A. Chúng là các thuật ngữ đồng nghĩa và có thể sử dụng thay thế lẫn nhau.
B. Sai sót gây ra lỗi, và lỗi có thể dẫn đến hỏng hóc.
C. Hỏng hóc gây ra lỗi, và lỗi gây ra sai sót.
D. Lỗi là nguyên nhân của cả sai sót và hỏng hóc.
19. Trong ngữ cảnh kiểm thử phần mềm, `test case` là gì?
A. Một loại lỗi phần mềm.
B. Một điều kiện cụ thể để kiểm thử.
C. Một báo cáo kết quả kiểm thử.
D. Một công cụ tự động hóa kiểm thử.
20. Công cụ quản lý kiểm thử (Test management tool) thường KHÔNG cung cấp chức năng nào sau đây?
A. Quản lý yêu cầu kiểm thử.
B. Thiết kế và quản lý trường hợp kiểm thử.
C. Tự động hóa thực thi kiểm thử.
D. Theo dõi và báo cáo lỗi.
21. Đâu là lợi ích chính của việc tự động hóa kiểm thử (test automation)?
A. Loại bỏ hoàn toàn nhu cầu kiểm thử thủ công.
B. Giảm thời gian thực hiện kiểm thử hồi quy và tăng độ tin cậy.
C. Đảm bảo 100% độ bao phủ mã.
D. Giảm chi phí phát triển phần mềm tổng thể.
22. Kiểm thử chấp nhận Alpha và Beta khác nhau chủ yếu ở điểm nào?
A. Alpha testing tập trung vào chức năng, Beta testing tập trung vào hiệu năng.
B. Alpha testing được thực hiện bởi đội ngũ nội bộ, Beta testing được thực hiện bởi người dùng cuối bên ngoài.
C. Alpha testing là kiểm thử tự động, Beta testing là kiểm thử thủ công.
D. Alpha testing được thực hiện trước Beta testing về mặt thời gian.
23. Nguyên tắc `Early Testing` trong kiểm thử phần mềm nhấn mạnh điều gì?
A. Kiểm thử chỉ nên bắt đầu sau khi hoàn thành lập trình.
B. Kiểm thử nên được thực hiện càng sớm càng tốt trong vòng đời phát triển.
C. Kiểm thử chỉ cần thực hiện ở giai đoạn cuối trước khi phát hành.
D. Kiểm thử nên được thực hiện độc lập với quá trình phát triển.
24. Đâu KHÔNG phải là một vai trò phổ biến trong đội kiểm thử phần mềm?
A. Test Manager.
B. Test Analyst.
C. Database Administrator.
D. Test Automation Engineer.
25. Trong kiểm thử bảo mật (Security testing), `penetration testing` là gì?
A. Kiểm tra hiệu năng của hệ thống bảo mật.
B. Mô phỏng một cuộc tấn công mạng để tìm ra lỗ hổng bảo mật.
C. Đánh giá các chính sách bảo mật của tổ chức.
D. Kiểm tra mã nguồn để tìm lỗi bảo mật.
26. Đâu KHÔNG phải là một loại kiểm thử phi chức năng?
A. Kiểm thử hiệu năng.
B. Kiểm thử bảo mật.
C. Kiểm thử khả năng sử dụng.
D. Kiểm thử chức năng.
27. Kiểm thử hộp đen (Black box testing) còn được gọi là gì?
A. Kiểm thử cấu trúc.
B. Kiểm thử chức năng.
C. Kiểm thử đường dẫn.
D. Kiểm thử hiệu năng.
28. Phương pháp kiểm thử nào sử dụng dữ liệu biên (boundary values) để thiết kế trường hợp kiểm thử?
A. Phân vùng tương đương.
B. Phân tích giá trị biên.
C. Kiểm thử bảng quyết định.
D. Đoán lỗi.
29. Khái niệm `V-model` trong kiểm thử phần mềm thể hiện điều gì?
A. Một mô hình kiểm thử nhanh nhẹn.
B. Mối quan hệ giữa các giai đoạn phát triển và kiểm thử.
C. Một loại kiểm thử tự động.
D. Một công cụ quản lý kiểm thử.
30. Trong kiểm thử hộp trắng (White box testing), người kiểm thử cần có kiến thức về điều gì?
A. Yêu cầu của người dùng.
B. Thiết kế giao diện người dùng.
C. Cấu trúc và mã nguồn của phần mềm.
D. Quy trình kinh doanh.