1. Mục tiêu của kiểm thử hiệu năng (performance testing) là gì?
A. Đảm bảo tất cả các chức năng đều hoạt động đúng.
B. Kiểm tra tốc độ phản hồi, khả năng xử lý đồng thời, và tài nguyên hệ thống tiêu thụ dưới các tải khác nhau.
C. Tìm lỗi trong cấu trúc mã nguồn.
D. Đảm bảo giao diện người dùng dễ sử dụng.
2. Đâu là một phương pháp phổ biến để tạo ra các trường hợp kiểm thử từ đặc tả yêu cầu?
A. Viết mã nguồn cho chương trình.
B. Phân tích các tình huống sử dụng (Use Case) và các luồng sự kiện.
C. Tối ưu hóa thuật toán sắp xếp.
D. Thiết kế giao diện người dùng.
3. Khi kiểm thử một chức năng có nhiều điều kiện phụ thuộc lẫn nhau, kỹ thuật nào sau đây là phù hợp nhất?
A. Kiểm thử thăm dò (Exploratory Testing).
B. Kiểm thử dựa trên bảng quyết định (Decision Table Testing).
C. Kiểm thử giá trị biên (Boundary Value Analysis).
D. Kiểm thử trạng thái (State Transition Testing).
4. Trong kiểm thử hộp trắng, độ đo Branch Coverage yêu cầu tỷ lệ phần trăm nào của các nhánh quyết định (ví dụ: if-else, switch-case) phải được thực thi?
A. Ít nhất 50% các nhánh.
B. Ít nhất 75% các nhánh.
C. 100% các nhánh.
D. Tùy thuộc vào độ phức tạp của logic.
5. Trong kiểm thử hộp trắng, Path Coverage yêu cầu bao phủ bao nhiêu phần trăm các đường đi có thể có trong mã nguồn?
A. Ít nhất 70% các đường đi.
B. Ít nhất 85% các đường đi.
C. 100% các đường đi.
D. Tùy thuộc vào độ phức tạp của chương trình.
6. Mục tiêu của kiểm thử đơn vị (unit testing) là gì?
A. Kiểm tra toàn bộ hệ thống hoạt động cùng nhau.
B. Kiểm tra từng thành phần nhỏ nhất (đơn vị) của mã nguồn, thường là các hàm hoặc phương thức, để đảm bảo chúng hoạt động chính xác.
C. Đánh giá khả năng sử dụng của giao diện người dùng.
D. Kiểm tra bảo mật của hệ thống.
7. Kỹ thuật nào sử dụng các biểu đồ luồng điều khiển (control flow graphs) để thiết kế các trường hợp kiểm thử?
A. Kiểm thử hộp đen.
B. Kiểm thử hộp trắng.
C. Kiểm thử dựa trên rủi ro (Risk-Based Testing).
D. Kiểm thử thăm dò (Exploratory Testing).
8. Trong kiểm thử hộp trắng, độ đo Statement Coverage yêu cầu tỷ lệ phần trăm nào của các câu lệnh trong mã nguồn phải được thực thi?
A. Ít nhất 70% các câu lệnh.
B. Ít nhất 85% các câu lệnh.
C. 100% các câu lệnh.
D. Tùy thuộc vào mức độ ưu tiên của chức năng.
9. Kỹ thuật Phân vùng tương đương (Equivalence Partitioning) giúp giảm thiểu kiểm thử bằng cách nào?
A. Tăng cường số lượng trường hợp kiểm thử để bao phủ mọi tình huống.
B. Chia tập dữ liệu đầu vào thành các nhóm mà các phần tử trong mỗi nhóm được giả định là có cùng hành vi hoặc kết quả.
C. Tập trung kiểm thử chỉ ở các giá trị biên.
D. Kiểm tra ngẫu nhiên mà không cần phân tích dữ liệu.
10. Đâu là một ví dụ về kiểm thử bảo mật (security testing)?
A. Kiểm tra xem chương trình có chạy nhanh không.
B. Kiểm tra xem chương trình có ngăn chặn được các truy cập trái phép hoặc tấn công không.
C. Kiểm tra xem chương trình có dễ sử dụng không.
D. Kiểm tra xem chương trình có hiển thị đúng dữ liệu không.
11. Khi kiểm thử một chức năng yêu cầu người dùng nhập tuổi, với quy tắc tuổi phải từ 18 đến 65, kỹ thuật nào sau đây sẽ tạo ra các trường hợp kiểm thử hiệu quả nhất?
A. Kiểm thử thăm dò.
B. Phân vùng tương đương và phân tích giá trị biên.
C. Kiểm thử dựa trên bảng quyết định.
D. Kiểm thử hồi quy.
12. Đâu là một ví dụ về kiểm thử khả năng phục hồi (resilience testing) hoặc kiểm thử lỗi (fault tolerance testing)?
A. Kiểm tra chức năng đăng nhập.
B. Kiểm tra xem chương trình có hoạt động tiếp tục hoặc khôi phục lại trạng thái hợp lệ sau khi xảy ra lỗi (ví dụ: mất kết nối mạng).
C. Kiểm tra hiệu suất khi nhiều người dùng truy cập đồng thời.
D. Kiểm tra các lỗi chính tả trong giao diện người dùng.
13. Kiểm thử hộp đen (black-box testing) chủ yếu dựa trên yếu tố nào để thiết kế các trường hợp kiểm thử?
A. Cấu trúc mã nguồn và thuật toán bên trong.
B. Yêu cầu chức năng, đặc tả kỹ thuật và hành vi mong đợi của phần mềm.
C. Hiệu năng xử lý và tốc độ phản hồi của hệ thống.
D. Nguyên tắc thiết kế giao diện người dùng.
14. Trong kiểm thử phần mềm, bug (lỗi) được định nghĩa là gì?
A. Một chức năng mới được thêm vào chương trình.
B. Một sự khác biệt giữa kết quả mong đợi và kết quả thực tế khi chạy chương trình.
C. Một tính năng không có trong yêu cầu ban đầu.
D. Một vấn đề về hiệu năng không ảnh hưởng đến chức năng.
15. Kỹ thuật nào trong kiểm thử hộp đen giúp giảm số lượng trường hợp kiểm thử bằng cách nhóm các đầu vào có cùng một hành vi hoặc kết quả?
A. Phân tích giá trị biên (Boundary Value Analysis).
B. Phân vùng tương đương (Equivalence Partitioning).
C. Kiểm thử cây quyết định (Decision Tree Testing).
D. Kiểm thử dựa trên trường hợp sử dụng (Use Case Testing).
16. Khi tiến hành kiểm thử, test case (trường hợp kiểm thử) bao gồm những yếu tố chính nào?
A. Mã nguồn của chương trình.
B. Mô tả các bước thực hiện, dữ liệu đầu vào và kết quả mong đợi.
C. Tên của lập trình viên.
D. Biểu đồ UML của hệ thống.
17. Đâu là một loại kiểm thử phi chức năng (non-functional testing)?
A. Kiểm thử chức năng (Functional Testing).
B. Kiểm thử giao diện người dùng (UI Testing).
C. Kiểm thử khả năng sử dụng (Usability Testing).
D. Kiểm thử tích hợp (Integration Testing).
18. Trong quy trình phát triển phần mềm, kiểm thử chấp nhận (Acceptance Testing) thường được thực hiện bởi ai?
A. Nhóm phát triển phần mềm.
B. Nhóm kiểm thử viên chuyên nghiệp.
C. Người dùng cuối hoặc khách hàng.
D. Quản trị viên hệ thống.
19. Mục đích của việc đánh giá chương trình (program evaluation) sau khi hoàn thành kiểm thử là gì?
A. Để tìm thêm lỗi mới.
B. Để xem xét tổng thể chất lượng, hiệu quả và sự phù hợp của chương trình với mục tiêu ban đầu.
C. Để viết tài liệu hướng dẫn sử dụng.
D. Để sửa chữa các lỗi đã được tìm thấy trong quá trình kiểm thử.
20. Khi đánh giá một chương trình, độ tin cậy (reliability) có nghĩa là gì?
A. Khả năng chương trình chạy nhanh.
B. Khả năng chương trình hoạt động đúng như mong đợi trong một khoảng thời gian nhất định và trong các điều kiện xác định.
C. Khả năng dễ dàng thay đổi và cập nhật chương trình.
D. Khả năng chương trình có giao diện người dùng đẹp mắt.
21. Kỹ thuật kiểm thử nào tập trung vào việc kiểm tra tất cả các giá trị biên (boundary values) của các trường nhập liệu?
A. Kiểm thử dựa trên trạng thái (State Transition Testing).
B. Kiểm thử dựa trên bảng quyết định (Decision Table Testing).
C. Kiểm thử giá trị biên (Boundary Value Analysis).
D. Kiểm thử thăm dò (Exploratory Testing).
22. Kiểm thử hệ thống (System Testing) khác với kiểm thử tích hợp (Integration Testing) ở điểm nào?
A. Kiểm thử tích hợp tập trung vào từng module riêng lẻ, còn kiểm thử hệ thống kiểm tra sự tương tác giữa các module.
B. Kiểm thử hệ thống kiểm tra sự tương tác giữa các module đã được tích hợp và hoạt động như một thể thống nhất, còn kiểm thử tích hợp kiểm tra sự kết hợp của các module nhỏ hơn.
C. Kiểm thử tích hợp là bước cuối cùng trước khi phát hành, còn kiểm thử hệ thống là bước đầu tiên.
D. Kiểm thử hệ thống chỉ kiểm tra chức năng, còn kiểm thử tích hợp kiểm tra hiệu năng.
23. Mục đích của việc thực hiện kiểm thử hồi quy (regression testing) là gì?
A. Để đảm bảo các chức năng mới hoạt động đúng.
B. Để kiểm tra giao diện người dùng có thân thiện không.
C. Để xác nhận rằng những thay đổi hoặc sửa lỗi không gây ra lỗi mới ở các phần khác của chương trình.
D. Để đo lường hiệu suất của chương trình dưới tải cao.
24. Trong quá trình kiểm thử phần mềm, mục tiêu chính của việc kiểm thử hộp trắng (white-box testing) là gì?
A. Kiểm tra chức năng của phần mềm dựa trên yêu cầu người dùng mà không xem xét cấu trúc bên trong.
B. Kiểm tra cấu trúc mã nguồn, luồng logic và đường đi thực thi bên trong chương trình.
C. Kiểm tra giao diện người dùng và trải nghiệm người dùng.
D. Kiểm tra hiệu năng và khả năng chịu tải của hệ thống.
25. Kỹ thuật Phân tích giá trị biên (Boundary Value Analysis) hữu ích nhất trong trường hợp nào?
A. Khi cần kiểm tra tất cả các trạng thái có thể có của một hệ thống.
B. Khi kiểm tra các chức năng dựa trên logic phức tạp với nhiều điều kiện lồng nhau.
C. Khi các trường nhập liệu có giới hạn số học hoặc phạm vi giá trị xác định.
D. Khi cần kiểm tra các tương tác giữa nhiều module khác nhau.