1. Trong kiểm thử phần mềm, `độ bao phủ mã` (code coverage) là gì?
A. Tỷ lệ phần trăm mã nguồn đã được kiểm thử bởi bộ kiểm thử
B. Số lượng lỗi được tìm thấy trong quá trình kiểm thử
C. Thời gian cần thiết để thực hiện kiểm thử
D. Số lượng test case đã được thực hiện
2. Trong kiểm thử hiệu năng (performance testing), `kiểm thử tải′ (load testing) nhằm mục đích gì?
A. Đánh giá khả năng chịu tải của hệ thống khi có số lượng lớn người dùng đồng thời hoặc khối lượng giao dịch lớn
B. Xác định thời gian phản hồi của hệ thống cho các thao tác khác nhau
C. Kiểm tra khả năng phục hồi của hệ thống sau khi gặp sự cố
D. Đảm bảo hệ thống hoạt động đúng chức năng dưới điều kiện bình thường
3. Phương pháp ước tính chi phí và thời gian phát triển phần mềm nào dựa trên việc so sánh dự án hiện tại với các dự án tương tự đã hoàn thành trước đó?
A. Ước tính dựa trên kinh nghiệm (Expert Judgment)
B. Ước tính tương tự (Analogous Estimating)
C. Ước tính tham số (Parametric Estimating)
D. Ước tính từ dưới lên (Bottom-up Estimating)
4. Khái niệm `nợ kỹ thuật′ (technical debt) trong công nghệ phần mềm đề cập đến điều gì?
A. Chi phí để mua các công cụ và phần mềm hỗ trợ phát triển
B. Hậu quả của việc đưa ra các quyết định thiết kế hoặc mã hóa không tối ưu trong ngắn hạn để đạt được tiến độ nhanh hơn
C. Số lượng lỗi còn tồn tại trong phần mềm sau khi phát hành
D. Thời gian cần thiết để đào tạo nhân viên mới về công nghệ phần mềm
5. Đâu là mục tiêu chính của giai đoạn `phân tích yêu cầu′ trong quy trình phát triển phần mềm?
A. Viết mã nguồn cho phần mềm
B. Xác định và làm rõ các yêu cầu của người dùng và hệ thống
C. Kiểm thử phần mềm để tìm lỗi
D. Triển khai phần mềm cho người dùng cuối
6. Trong kiểm thử phần mềm, kiểm thử hộp đen (black-box testing) tập trung vào khía cạnh nào?
A. Cấu trúc bên trong và mã nguồn của phần mềm
B. Yêu cầu chức năng và đầu vào∕đầu ra của phần mềm
C. Hiệu suất và khả năng mở rộng của phần mềm
D. Tính bảo mật và an toàn của phần mềm
7. Trong UML (Unified Modeling Language), loại biểu đồ nào được sử dụng để mô hình hóa cấu trúc tĩnh của hệ thống, bao gồm các lớp, thuộc tính và mối quan hệ giữa chúng?
A. Biểu đồ tuần tự (Sequence diagram)
B. Biểu đồ lớp (Class diagram)
C. Biểu đồ hoạt động (Activity diagram)
D. Biểu đồ trạng thái (State diagram)
8. Công cụ nào sau đây thường được sử dụng để tự động hóa quy trình `Triển khai liên tục′ (Continuous Deployment - CD)?
A. Jira
B. Jenkins
C. Slack
D. Microsoft Teams
9. Trong kiểm thử phần mềm, `Test Driven Development′ (TDD) là gì?
A. Một phương pháp kiểm thử tự động
B. Một quy trình phát triển phần mềm trong đó test case được viết trước khi viết mã nguồn
C. Một loại kiểm thử hiệu năng
D. Một công cụ quản lý test case
10. Phương pháp nào sau đây tập trung vào việc phát triển phần mềm lặp đi lặp lại và tăng dần, với sự tham gia liên tục của khách hàng?
A. Mô hình Waterfall
B. Mô hình V-model
C. Mô hình Agile
D. Mô hình Big Bang
11. Trong ngữ cảnh bảo mật phần mềm, `SQL Injection′ là loại tấn công nào?
A. Tấn công từ chối dịch vụ (Denial of Service - DoS)
B. Tấn công chèn mã SQL độc hại vào truy vấn cơ sở dữ liệu
C. Tấn công giả mạo danh tính (Phishing)
D. Tấn công leo thang đặc quyền (Privilege Escalation)
12. Đâu là ưu điểm chính của việc sử dụng kiến trúc microservices?
A. Giảm độ phức tạp trong triển khai và quản lý
B. Tăng cường khả năng mở rộng, linh hoạt và độc lập trong phát triển các thành phần
C. Đơn giản hóa việc kiểm thử và gỡ lỗi
D. Giảm chi phí phát triển ban đầu
13. Khái niệm `Technical Specification′ (đặc tả kỹ thuật) trong phát triển phần mềm mô tả điều gì?
A. Kế hoạch kiểm thử phần mềm
B. Mô tả chi tiết về cách phần mềm sẽ được thiết kế và xây dựng để đáp ứng yêu cầu
C. Tài liệu hướng dẫn sử dụng phần mềm cho người dùng cuối
D. Báo cáo đánh giá hiệu suất phần mềm
14. Công cụ quản lý phiên bản (version control) nào phổ biến nhất hiện nay trong phát triển phần mềm?
A. Subversion (SVN)
B. CVS
C. Git
D. Mercurial
15. Trong kiến trúc phần mềm, `Design Pattern′ (mẫu thiết kế) là gì?
A. Một ngôn ngữ mô tả kiến trúc hệ thống
B. Một giải pháp thiết kế đã được kiểm chứng cho các vấn đề thiết kế thường gặp
C. Một công cụ để tạo ra giao diện người dùng đẹp mắt
D. Một phương pháp kiểm thử phần mềm
16. Nguyên tắc `DRY′ (Don′t Repeat Yourself) trong lập trình phần mềm khuyến khích điều gì?
A. Viết mã nguồn ngắn gọn và khó hiểu
B. Tránh lặp lại mã nguồn bằng cách tái sử dụng mã và trừu tượng hóa
C. Tối ưu hóa hiệu suất mã nguồn bằng cách viết mã phức tạp
D. Viết tài liệu chi tiết cho mọi đoạn mã
17. Đâu là nhược điểm chính của mô hình Waterfall?
A. Khó thích ứng với thay đổi yêu cầu sau khi giai đoạn phân tích đã hoàn thành
B. Thời gian phát triển nhanh
C. Dễ dàng quản lý các dự án lớn và phức tạp
D. Yêu cầu sự tham gia liên tục của khách hàng
18. Khái niệm `Containerization′ (ví dụ Docker) trong công nghệ phần mềm giúp giải quyết vấn đề gì?
A. Tăng tốc độ phát triển phần mềm
B. Đảm bảo tính nhất quán của môi trường chạy ứng dụng trên các nền tảng khác nhau
C. Giảm chi phí lưu trữ dữ liệu
D. Cải thiện hiệu suất cơ sở dữ liệu
19. Trong mô hình xoắn ốc (Spiral model), rủi ro được xử lý như thế nào?
A. Rủi ro được bỏ qua để tập trung vào tiến độ phát triển
B. Rủi ro được xác định, phân tích và giảm thiểu ở mỗi vòng lặp của xoắn ốc
C. Rủi ro chỉ được xem xét ở giai đoạn cuối của dự án
D. Rủi ro được chuyển giao hoàn toàn cho khách hàng
20. Phương pháp đo lường kích thước phần mềm nào dựa trên việc đếm số lượng điểm chức năng (function points) mà phần mềm cung cấp?
A. Số dòng mã (Lines of Code - LOC)
B. Phân tích điểm chức năng (Function Point Analysis - FPA)
C. Cyclomatic Complexity
D. Thời gian phát triển (Development Time)
21. Đâu là mô hình phát triển phần mềm mà các giai đoạn được thực hiện tuần tự và kết quả của giai đoạn trước là đầu vào cho giai đoạn sau?
A. Mô hình Agile
B. Mô hình Waterfall
C. Mô hình xoắn ốc
D. Mô hình nguyên mẫu
22. Trong quản lý dự án phần mềm, `biểu đồ Gantt′ được sử dụng để làm gì?
A. Theo dõi ngân sách dự án
B. Quản lý rủi ro dự án
C. Lập kế hoạch và theo dõi tiến độ các công việc trong dự án
D. Quản lý yêu cầu dự án
23. Nguyên tắc SOLID nào khuyến khích một lớp (class) chỉ nên có một lý do duy nhất để thay đổi?
A. Nguyên tắc Single Responsibility (SRP)
B. Nguyên tắc Open∕Closed (OCP)
C. Nguyên tắc Liskov Substitution (LSP)
D. Nguyên tắc Interface Segregation (ISP)
24. Kiểu kiểm thử phần mềm nào được thực hiện bởi người dùng cuối để xác nhận rằng phần mềm đáp ứng nhu cầu kinh doanh của họ?
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)
25. Trong mô hình Agile, `Sprint′ là gì?
A. Một cuộc họp hàng ngày để báo cáo tiến độ
B. Một khoảng thời gian cố định (thường từ 1-4 tuần) để hoàn thành một tập hợp các công việc cụ thể
C. Một tài liệu mô tả yêu cầu của khách hàng
D. Một phương pháp kiểm thử phần mềm tự động
26. Kỹ thuật `tái cấu trúc mã` (refactoring) trong phát triển phần mềm là gì?
A. Viết lại mã nguồn từ đầu bằng một ngôn ngữ lập trình khác
B. Thay đổi cấu trúc bên trong của mã nguồn mà không thay đổi chức năng bên ngoài của nó
C. Tối ưu hóa hiệu suất của mã nguồn bằng cách giảm số dòng mã
D. Thêm các tính năng mới vào phần mềm
27. Khái niệm `Tích hợp liên tục′ (Continuous Integration - CI) trong DevOps liên quan đến điều gì?
A. Triển khai phần mềm tự động lên môi trường sản xuất
B. Tích hợp mã nguồn thường xuyên từ các thành viên nhóm phát triển vào kho mã chung
C. Giám sát hiệu suất ứng dụng trong môi trường sản xuất
D. Quản lý cấu hình và cơ sở hạ tầng
28. Phương pháp phát triển phần mềm nào ưu tiên `cá nhân và tương tác′ hơn `quy trình và công cụ`?
A. Mô hình Waterfall
B. Mô hình V-model
C. Agile Manifesto
D. Mô hình xoắn ốc
29. Loại kiểm thử nào nhằm đảm bảo rằng sau khi sửa lỗi hoặc thêm tính năng mới, các chức năng hiện có của phần mềm vẫn hoạt động đúng?
A. Kiểm thử hồi quy (Regression testing)
B. Kiểm thử khói (Smoke testing)
C. Kiểm thử hiệu năng (Performance testing)
D. Kiểm thử bảo mật (Security testing)
30. Công cụ quản lý dự án phần mềm Jira chủ yếu được sử dụng cho mục đích gì?
A. Quản lý mã nguồn
B. Quản lý kiểm thử
C. Theo dõi lỗi, quản lý công việc và quy trình làm việc của dự án
D. Triển khai ứng dụng