1. Trong mô hình chữ V (V-model), giai đoạn kiểm thử `System Testing` (Kiểm thử hệ thống) tương ứng với giai đoạn phát triển nào?
A. Giai đoạn Yêu cầu (Requirements)
B. Giai đoạn Thiết kế tổng thể (High-level design)
C. Giai đoạn Thiết kế chi tiết (Low-level design)
D. Giai đoạn Thực thi (Coding)
2. Điều gì KHÔNG phải là lợi ích của việc tự động hóa kiểm thử (Test Automation)?
A. Giảm chi phí kiểm thử dài hạn
B. Tăng tốc độ thực hiện kiểm thử
C. Loại bỏ hoàn toàn nhu cầu kiểm thử thủ công
D. Cải thiện độ tin cậy và nhất quán của kiểm thử
3. Khái niệm `Test Stub` và `Test Driver` được sử dụng trong loại kiểm thử nào?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm thử tích hợp (Integration testing)
C. Kiểm thử hệ thống (System testing)
D. Kiểm thử chấp nhận (Acceptance testing)
4. Phương pháp kiểm thử `Pairwise Testing` (Kiểm thử cặp đôi) giúp làm gì?
A. Kiểm tra tất cả các kết hợp đầu vào có thể
B. Kiểm tra tất cả các cặp kết hợp đầu vào quan trọng
C. Tăng tốc độ kiểm thử hồi quy
D. Phân tích giá trị biên hiệu quả hơn
5. Điều gì KHÔNG phải là một loại kiểm thử hộp đen?
A. Boundary Value Analysis (Phân tích giá trị biên)
B. Equivalence Partitioning (Phân vùng tương đương)
C. Statement Coverage (Bao phủ lệnh)
D. Decision Table Testing (Kiểm thử bảng quyết định)
6. Mục tiêu chính của kiểm thử chấp nhận (Acceptance testing) là gì?
A. Đảm bảo mã nguồn được viết hiệu quả
B. Xác minh phần mềm đáp ứng yêu cầu của người dùng/khách hàng
C. Kiểm tra tất cả các đường dẫn mã có thể
D. Tìm ra lỗi logic trong thuật toán
7. Kỹ thuật `Equivalence Partitioning` (Phân vùng tương đương) giúp ích gì trong thiết kế test case?
A. Tăng độ bao phủ mã
B. Giảm số lượng test case cần thiết mà vẫn đảm bảo độ bao phủ kiểm thử
C. Tự động hóa quá trình sinh test case
D. Tìm ra lỗi hiệu năng
8. Trong kiểm thử phần mềm Agile, kiểm thử thường được thực hiện như thế nào?
A. Chỉ thực hiện vào cuối mỗi sprint
B. Liên tục và lặp đi lặp lại trong suốt sprint
C. Chỉ thực hiện bởi đội ngũ kiểm thử chuyên biệt
D. Không quan trọng bằng phát triển nhanh
9. Mục tiêu của `Exploratory Testing` (Kiểm thử khám phá) là gì?
A. Tự động hóa toàn bộ quá trình kiểm thử
B. Tìm ra lỗi nhanh chóng và hiệu quả trong các khu vực chưa được kiểm thử kỹ
C. Thực hiện kiểm thử theo kế hoạch và kịch bản đã định trước
D. Đảm bảo độ bao phủ mã tối đa
10. Công cụ `SonarQube` thường được sử dụng cho mục đích gì trong kiểm thử phần mềm?
A. Quản lý test case
B. Phân tích mã tĩnh (Static code analysis)
C. Tự động hóa kiểm thử giao diện người dùng
D. Kiểm thử hiệu năng web
11. Trong kiểm thử API (Application Programming Interface), chúng ta kiểm tra điều gì?
A. Giao diện người dùng đồ họa (GUI)
B. Giao tiếp giữa các thành phần phần mềm
C. Hiệu suất của cơ sở dữ liệu
D. Khả năng bảo mật của máy chủ
12. Trong báo cáo lỗi (bug report), thông tin nào sau đây là QUAN TRỌNG NHẤT để giúp nhà phát triển sửa lỗi?
A. Ý kiến cá nhân của kiểm thử viên về lỗi
B. Môi trường kiểm thử chi tiết (hệ điều hành, trình duyệt, phiên bản)
C. Các bước tái hiện lỗi (steps to reproduce)
D. Mức độ ưu tiên (priority) của lỗi
13. Kỹ thuật kiểm thử `State Transition Testing` (Kiểm thử chuyển trạng thái) thường được áp dụng cho loại hệ thống nào?
A. Hệ thống tính toán hiệu năng cao
B. Hệ thống giao diện người dùng phức tạp
C. Hệ thống có hành vi dựa trên trạng thái (state-based behavior)
D. Hệ thống cơ sở dữ liệu lớn
14. Loại kiểm thử nào thường được thực hiện SAU kiểm thử hệ thống và TRƯỚC khi phát hành phần mềm?
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ử hiệu năng (Performance testing)
15. Loại lỗi nào sau đây KHÔNG phải là mục tiêu chính của kiểm thử hiệu năng (Performance testing)?
A. Lỗi tràn bộ nhớ (Memory leak)
B. Lỗi chức năng (Functional defect)
C. Thời gian phản hồi chậm (Slow response time)
D. Khả năng chịu tải kém (Poor scalability)
16. Công cụ nào sau đây KHÔNG được sử dụng phổ biến trong kiểm thử hiệu năng?
A. JMeter
B. Selenium
C. LoadRunner
D. Gatling
17. Kiểm thử hộp đen (Black-box testing) tập trung chủ yếu vào khía cạnh nào của phần mềm?
A. Cấu trúc code bên trong
B. Giao diện người dùng và chức năng
C. Hiệu suất và khả năng mở rộng
D. Tính bảo mật của hệ thống
18. Điểm khác biệt chính giữa `Verification` (Kiểm chứng) và `Validation` (Xác nhận) trong kiểm thử phần mềm là gì?
A. Verification tập trung vào quy trình, Validation tập trung vào sản phẩm
B. Verification do lập trình viên thực hiện, Validation do kiểm thử viên thực hiện
C. Verification kiểm tra chức năng, Validation kiểm tra hiệu năng
D. Verification thực hiện trước, Validation thực hiện sau
19. Điều gì KHÔNG phải là một loại kiểm thử bảo mật (Security testing)?
A. Penetration testing (Kiểm thử xâm nhập)
B. Vulnerability scanning (Quét lỗ hổng bảo mật)
C. Load testing (Kiểm thử tải)
D. Security auditing (Kiểm tra an ninh)
20. Khi nào thì nên dừng kiểm thử phần mềm?
A. Khi tất cả các test case đã được thực hiện
B. Khi không còn lỗi nào được tìm thấy
C. Khi đạt được tiêu chí dừng kiểm thử đã xác định trước (exit criteria)
D. Khi hết thời gian và ngân sách
21. Trong kiểm thử phần mềm, `độ bao phủ mã` (code coverage) đo lường điều gì?
A. Số lượng lỗi được tìm thấy trong mã
B. Phần trăm mã nguồn đã được thực thi bởi các trường hợp kiểm thử
C. Mức độ phức tạp của mã nguồn
D. Thời gian cần thiết để kiểm thử toàn bộ mã
22. Phương pháp kiểm thử nào thường được thực hiện ĐẦU TIÊN trong quy trình phát triển phần mềm?
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ử chấp nhận (Acceptance testing)
23. Loại kiểm thử nào sau đây thường được thực hiện BỞI NGƯỜI DÙNG CUỐI hoặc KHÁCH HÀNG?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm thử tích hợp (Integration testing)
C. Kiểm thử hệ thống (System testing)
D. Kiểm thử chấp nhận (Acceptance testing)
24. Trong kiểm thử hiệu năng, `Stress Testing` (Kiểm thử chịu tải) khác với `Load Testing` (Kiểm thử tải) như thế nào?
A. Stress testing tập trung vào chức năng, Load testing tập trung vào hiệu năng
B. Stress testing kiểm tra hệ thống dưới tải bình thường, Load testing kiểm tra dưới tải cao
C. Stress testing kiểm tra hệ thống vượt quá giới hạn chịu tải, Load testing kiểm tra dưới tải dự kiến
D. Stress testing thực hiện trước Load testing
25. Khái niệm `Defect Density` (Mật độ lỗi) thường được sử dụng để đo lường điều gì?
A. Số lượng kiểm thử viên trên một dự án
B. Số lượng lỗi trung bình trên một đơn vị kích thước mã (ví dụ: số lỗi trên 1000 dòng code)
C. Thời gian trung bình để sửa một lỗi
D. Mức độ nghiêm trọng trung bình của các lỗi
26. Phương pháp kiểm thử `Mutation Testing` (Kiểm thử đột biến) đánh giá điều gì?
A. Hiệu suất của hệ thống dưới tải trọng
B. Tính hiệu quả của bộ test case hiện có
C. Khả năng bảo mật của mã nguồn
D. Độ phức tạp của mã nguồn
27. Loại kiểm thử nào tập trung vào việc đánh giá trải nghiệm người dùng (User Experience - UX) của phần mềm?
A. Kiểm thử bảo mật (Security testing)
B. Kiểm thử hiệu năng (Performance testing)
C. Kiểm thử khả năng sử dụng (Usability testing)
D. Kiểm thử chức năng (Functional testing)
28. 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 mỗi thay đổi mã nguồn hoặc môi trường
C. Trước khi phát hành phần mềm lần đầu tiên
D. Chỉ trong giai đoạn kiểm thử chấp nhận
29. Kỹ thuật kiểm thử `Boundary Value Analysis` (Phân tích giá trị biên) thuộc loại kiểm thử nào?
A. Kiểm thử hộp trắng (White-box testing)
B. Kiểm thử hộp đen (Black-box testing)
C. Kiểm thử tích hợp (Integration testing)
D. Kiểm thử hiệu năng (Performance testing)
30. Mục đích chính của việc `Quản lý Test Case` (Test Case Management) là gì?
A. Tự động hóa việc thực thi test case
B. Tổ chức, theo dõi, và báo cáo về các test case
C. Phân tích độ bao phủ mã
D. Quản lý lỗi và vòng đời lỗi