1. Trong kiểm thử bảo mật (Security testing), `Penetration testing` (Kiểm thử xâm nhập) là gì?
A. Kiểm tra mã nguồn để tìm lỗ hổng bảo mật
B. Mô phỏng các cuộc tấn công thực tế để đánh giá khả năng phòng thủ của hệ thống
C. Kiểm tra cấu hình hệ thống bảo mật
D. Đánh giá chính sách bảo mật của tổ chức
2. Đâu là mục đích chính của việc xây dựng `Ma trận truy vết yêu cầu` (Requirements Traceability Matrix - RTM)?
A. Tự động hóa quá trình kiểm thử
B. Đảm bảo rằng tất cả các yêu cầu đều được kiểm thử đầy đủ
C. Quản lý lỗi và theo dõi trạng thái lỗi
D. Đo lường độ bao phủ mã
3. Loại kiểm thử nào xác minh rằng một thay đổi mã mới không gây ra lỗi ở các khu vực khác của ứng dụng đã hoạt động ổn định trước đó?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm thử tích hợp (Integration testing)
C. Kiểm thử hồi quy (Regression testing)
D. Kiểm thử hệ thống (System testing)
4. 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 mã nguồn bên trong
B. Giao diện người dùng và chức năng bên ngoài
C. Hiệu suất và khả năng mở rộng
D. Độ bảo mật của hệ thống
5. Đâu là một thách thức phổ biến khi thực hiện kiểm thử trong môi trường Agile?
A. Thời gian kiểm thử dài hơn so với mô hình Waterfall
B. Yêu cầu kiểm thử chi tiết và cố định
C. Chu kỳ phát triển ngắn và thay đổi yêu cầu thường xuyên
D. Thiếu sự tham gia của khách hàng vào quá trình kiểm thử
6. Trong kiểm thử phần mềm, `Test case` (ca kiểm thử) là gì?
A. Một công cụ tự động để thực hiện kiểm thử
B. Một tài liệu mô tả các bước thực hiện để kiểm tra một tính năng cụ thể
C. Một báo cáo tổng kết kết quả kiểm thử
D. Một môi trường giả lập để kiểm thử phần mềm
7. Loại tài liệu nào mô tả kế hoạch tổng thể cho hoạt động kiểm thử phần mềm, bao gồm phạm vi, mục tiêu, nguồn lực và lịch trình?
A. Báo cáo kiểm thử (Test report)
B. Kế hoạch kiểm thử (Test plan)
C. Ca kiểm thử (Test case)
D. Ma trận truy vết yêu cầu (Requirements traceability matrix)
8. Phương pháp kiểm thử `Boundary Value Analysis` (Phân tích giá trị biên) tập trung vào việc chọn giá trị kiểm thử ở đâu?
A. Các giá trị ngẫu nhiên trong phạm vi đầu vào
B. Các giá trị thông thường và phổ biến nhất
C. Các giá trị biên của phạm vi đầu vào (giá trị nhỏ nhất, lớn nhất, và xung quanh)
D. Các giá trị được chọn bởi người phát triển
9. Đâ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. Tăng tốc độ kiểm thử, giảm chi phí và cải thiện độ tin cậy
C. Đảm bảo 100% không có lỗi trong phần mềm
D. Thay thế hoàn toàn vai trò của người kiểm thử
10. Trong kiểm thử hộp trắng (White-box testing), kỹ thuật `Statement coverage` (Độ bao phủ câu lệnh) đảm bảo điều gì?
A. Tất cả các nhánh điều kiện trong mã đều được thực thi
B. Tất cả các câu lệnh trong mã đều được thực thi ít nhất một lần
C. Tất cả các đường dẫn có thể qua mã đều được thực thi
D. Tất cả các hàm và thủ tục đều được gọi
11. Kiểm thử `Alpha testing` và `Beta testing` khác nhau chủ yếu ở điểm nào?
A. Alpha testing là kiểm thử hộp trắng, Beta testing là kiểm thử hộp đen
B. Alpha testing được thực hiện tại môi trường của nhà phát triển, Beta testing được thực hiện bởi người dùng cuối trong môi trường thực tế
C. Alpha testing tập trung vào chức năng, Beta testing tập trung vào hiệu năng
D. Alpha testing là kiểm thử tự động, Beta testing là kiểm thử thủ công
12. Khi nào thì kiểm thử thủ công (Manual testing) thường được ưu tiên hơn so với kiểm thử tự động (Automated testing)?
A. Khi kiểm thử hồi quy cho các tính năng ổn định
B. Khi thực hiện kiểm thử hiệu năng với số lượng lớn người dùng ảo
C. Khi khám phá các lỗi liên quan đến giao diện người dùng và trải nghiệm người dùng
D. Khi thực hiện kiểm thử lặp đi lặp lại các ca kiểm thử giống nhau
13. Trong quy trình quản lý lỗi (Defect management), trạng thái `Resolved` (Đã giải quyết) của một lỗi có nghĩa là gì?
A. Lỗi đã được xác định và ghi nhận
B. Lỗi đã được giao cho nhà phát triển để sửa
C. Nhà phát triển tin rằng lỗi đã được sửa và đã submit bản sửa
D. Lỗi đã được kiểm tra lại và xác nhận là đã được sửa hoàn toàn
14. Điều gì KHÔNG phải là mục tiêu chính của kiểm thử phần mềm?
A. Phát hiện lỗi trong phần mềm
B. Chứng minh rằng phần mềm không có lỗi
C. Đảm bảo chất lượng phần mềm
D. Cung cấp thông tin về rủi ro và mức độ tin cậy của phần mềm
15. Sự khác biệt chính giữa `Verification` (Xác minh) và `Validation` (Thẩm định) trong kiểm thử phần mềm là gì?
A. Verification kiểm tra `chúng ta có xây dựng sản phẩm đúng không?`, Validation kiểm tra `chúng ta có xây dựng đúng sản phẩm không?`
B. Verification tập trung vào kiểm thử tĩnh, Validation tập trung vào kiểm thử động
C. Verification được thực hiện bởi người kiểm thử, Validation được thực hiện bởi nhà phát triển
D. Verification kiểm tra yêu cầu chức năng, Validation kiểm tra yêu cầu phi chức năng
16. Phương pháp kiểm thử `Equivalence Partitioning` (Phân vùng tương đương) hoạt động dựa trên nguyên tắc nào?
A. Kiểm thử tất cả các giá trị đầu vào có thể
B. Chia miền giá trị đầu vào thành các phân vùng có giá trị tương đương và chọn giá trị đại diện từ mỗi phân vùng
C. Kiểm thử các giá trị ngẫu nhiên
D. Kiểm thử dựa trên kinh nghiệm của người kiểm thử
17. Trong quy trình kiểm thử, `Test closure` (Kết thúc kiểm thử) là giai đoạn nào?
A. Giai đoạn lập kế hoạch kiểm thử
B. Giai đoạn thực hiện kiểm thử
C. Giai đoạn sau khi tất cả các hoạt động kiểm thử đã hoàn thành
D. Giai đoạn phân tích yêu cầu
18. Phương pháp kiểm thử `Decision Table Testing` (Kiểm thử bảng quyết định) đặc biệt hữu ích khi nào?
A. Khi kiểm thử giao diện người dùng
B. Khi kiểm thử các chức năng có logic phức tạp và nhiều điều kiện kết hợp
C. Khi kiểm thử hiệu năng của hệ thống
D. Khi kiểm thử bảo mật
19. Loại kiểm thử nào tập trung vào việc đánh giá khả năng sử dụng và trải nghiệm người dùng của phần mềm?
A. Kiểm thử chức năng (Functional 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ử khả năng sử dụng (Usability testing)
20. Khái niệm `Độ bao phủ mã` (Code coverage) trong kiểm thử phần mềm dùng để đo lường điều gì?
A. Số lượng lỗi được phát hiện trên tổng số lỗi
B. Phần trăm mã nguồn đã được thực thi bởi các ca kiểm thử
C. Thời gian cần thiết để thực hiện kiểm thử
D. Số lượng người kiểm thử tham gia dự án
21. Loại lỗi nào thường khó phát hiện nhất trong kiểm thử phần mềm?
A. Lỗi cú pháp (Syntax errors)
B. Lỗi logic (Logic errors)
C. Lỗi giao diện (Interface errors)
D. Lỗi hiệu suất (Performance errors)
22. Trong kiểm thử hiệu năng, `Response time` (Thời gian phản hồi) là gì?
A. Thời gian hệ thống cần để xử lý một yêu cầu và trả về kết quả
B. Thời gian cần thiết để thực hiện một ca kiểm thử
C. Thời gian tải trang web
D. Tổng thời gian kiểm thử hiệu năng
23. Kiểm thử `Non-functional testing` (Kiểm thử phi chức năng) tập trung vào các khía cạnh nào của phần mềm?
A. Các chức năng và tính năng của phần mềm
B. Hiệu suất, bảo mật, khả năng sử dụng, độ tin cậy và khả năng mở rộng
C. Cấu trúc mã nguồn và logic bên trong
D. Quy trình phát triển và tài liệu
24. Khi báo cáo lỗi (Defect reporting), thông tin nào là quan trọng nhất cần cung cấp để giúp nhà phát triển sửa lỗi hiệu quả?
A. Ý kiến cá nhân về chất lượng phần mềm
B. Các bước tái hiện lỗi một cách chi tiết và rõ ràng
C. Mô tả chung chung về lỗi
D. Số lượng lỗi đã tìm thấy
25. Trong kiểm thử hiệu năng, `Throughput` (Thông lượng) đo lường điều gì?
A. Thời gian phản hồi của hệ thống
B. Số lượng giao dịch hoặc yêu cầu mà hệ thống có thể xử lý trong một đơn vị thời gian
C. Mức sử dụng tài nguyên hệ thống (CPU, bộ nhớ)
D. Số lượng người dùng đồng thời hệ thống có thể hỗ trợ
26. Mục tiêu chính của `Kiểm thử chấp nhận người dùng` (User Acceptance Testing - UAT) là gì?
A. Đảm bảo mã nguồn được viết đúng chuẩn
B. Xác minh rằng phần mềm đáp ứng yêu cầu nghiệp vụ và nhu cầu của người dùng cuối
C. Kiểm tra hiệu suất và khả năng chịu tải của hệ thống
D. Phát hiện lỗi cú pháp trong mã
27. Kiểm thử `Integration testing` (Kiểm thử tích hợp) nhằm mục đích chính là gì?
A. Kiểm tra các module riêng lẻ của phần mềm
B. Kiểm tra sự tương tác và giao tiếp giữa các module khác nhau của phần mềm
C. Kiểm tra toàn bộ hệ thống phần mềm như một thể thống nhất
D. Kiểm tra yêu cầu nghiệp vụ của phần mềm
28. Kiểm thử `Smoke testing` (Kiểm thử khói) thường được thực hiện khi nào trong vòng đời phát triển phần mềm?
A. Trước khi bàn giao sản phẩm cho khách hàng
B. Sau mỗi thay đổi mã nguồn hoặc build mới
C. Chỉ khi có lỗi nghiêm trọng được báo cáo
D. Trong giai đoạn kiểm thử hệ thống cuối cùng
29. Trong kiểm thử hiệu năng (Performance testing), loại kiểm thử nào đo lường khả năng của hệ thống khi chịu tải cao hơn mức bình thường?
A. Kiểm thử tải (Load testing)
B. Kiểm thử ứng suất (Stress testing)
C. Kiểm thử độ bền (Endurance testing)
D. Kiểm thử dung lượng (Volume testing)
30. Đâu là một ví dụ về kiểm thử `Static testing` (Kiểm thử tĩnh)?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm tra mã nguồn (Code review)
C. Kiểm thử hệ thống (System testing)
D. Kiểm thử hiệu năng (Performance testing)