1. Trong mô hình Scrum, "Sprint" là gì?
A. Một cuộc họp đánh giá hiệu suất của từng lập trình viên.
B. Một khoảng thời gian cố định (thường là 1-4 tuần) mà đội phát triển hoàn thành một tập hợp các công việc đã được chọn.
C. Tài liệu mô tả toàn bộ yêu cầu của dự án.
D. Một công cụ để quản lý mã nguồn.
2. Tại sao việc kiểm tra tương thích trên nhiều trình duyệt và thiết bị khác nhau là quan trọng trong phát triển web?
A. Để đảm bảo trang web tải nhanh hơn.
B. Để người dùng có trải nghiệm xem và tương tác nhất quán bất kể họ sử dụng thiết bị hoặc trình duyệt nào.
C. Để làm cho trang web trông khác biệt trên mỗi nền tảng.
D. Để chỉ hỗ trợ các trình duyệt mới nhất.
3. Ngôn ngữ lập trình nào thường được sử dụng cho phát triển web front-end, chịu trách nhiệm về giao diện người dùng và tương tác trên trình duyệt?
A. Python
B. Java
C. JavaScript
D. C++
4. Ngôn ngữ đánh dấu siêu văn bản nào được sử dụng để cấu trúc nội dung của một trang web?
A. CSS
B. JavaScript
C. HTML
D. PHP
5. Trong lĩnh vực phát triển phần mềm, quy trình Agile nhấn mạnh điều gì là quan trọng nhất?
A. Hoàn thành tài liệu chi tiết trước khi bắt đầu phát triển.
B. Phản hồi từ khách hàng và khả năng thích ứng với thay đổi.
C. Tuân thủ kế hoạch ban đầu một cách cứng nhắc.
D. Chỉ tập trung vào việc viết mã nguồn sạch sẽ.
6. Tại sao việc viết "unit tests" (kiểm thử đơn vị) lại quan trọng trong quy trình phát triển phần mềm?
A. Để tăng tốc độ tải trang web.
B. Để đảm bảo các thành phần nhỏ nhất (đơn vị) của mã nguồn hoạt động đúng độc lập.
C. Để tạo báo cáo tổng hợp về hiệu suất toàn bộ hệ thống.
D. Để tự động hóa quá trình thiết kế giao diện.
7. Trong phát triển phần mềm, "Agile Manifesto" nhấn mạnh giá trị nào hơn là quy trình và công cụ?
A. Tài liệu toàn diện
B. Hợp đồng cứng nhắc
C. Cá nhân tương tác và hành động
D. Kế hoạch chi tiết ban đầu
8. Ngôn ngữ lập trình nào thường được sử dụng cho phát triển ứng dụng di động trên nền tảng Android?
A. Swift
B. Objective-C
C. Kotlin hoặc Java
D. C#
9. Ngôn ngữ nào thường được sử dụng để truy vấn và quản lý dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ?
A. Python
B. Java
C. SQL
D. C#
10. Ai là người chịu trách nhiệm chính trong việc đưa ra quyết định về các tính năng sẽ được phát triển trong một Sprint của Scrum?
A. Scrum Master
B. Development Team
C. Product Owner
D. Stakeholder (Các bên liên quan)
11. Khái niệm "Responsive Web Design" (Thiết kế web đáp ứng) nhằm mục đích gì?
A. Tạo ra các trang web chỉ hiển thị tốt trên máy tính để bàn.
B. Thiết kế giao diện người dùng sao cho nó tự động điều chỉnh để hiển thị tốt trên nhiều kích thước màn hình khác nhau, từ điện thoại di động đến máy tính bảng và máy tính để bàn.
C. Chỉ sử dụng JavaScript để tạo hiệu ứng động.
D. Tăng cường bảo mật cho trang web.
12. Yếu tố nào sau đây KHÔNG phải là một giai đoạn chính trong vòng đời phát triển phần mềm (SDLC) truyền thống (Waterfall)?
A. Phân tích yêu cầu
B. Thiết kế
C. Triển khai và Bảo trì
D. Phát triển theo phương pháp Agile
13. Lý do chính để sử dụng hệ thống quản lý phiên bản (Version Control System - VCS) như Git trong phát triển phần mềm là gì?
A. Để tăng tốc độ biên dịch mã nguồn.
B. Để theo dõi lịch sử thay đổi của mã nguồn, cộng tác hiệu quả và khôi phục các phiên bản cũ.
C. Để tự động hóa quá trình triển khai lên máy chủ.
D. Để bảo mật tuyệt đối mã nguồn khỏi truy cập trái phép.
14. Trong phát triển phần mềm, "DevOps" là gì?
A. Một ngôn ngữ lập trình mới.
B. Một phương pháp kết hợp giữa Phát triển (Development) và Vận hành (Operations) để rút ngắn vòng đời phát triển hệ thống và cung cấp khả năng triển khai liên tục với chất lượng cao.
C. Một công cụ để quản lý dự án.
D. Một loại cơ sở dữ liệu.
15. Khái niệm "Debug" trong phát triển phần mềm đề cập đến hành động nào?
A. Viết tài liệu hướng dẫn sử dụng phần mềm.
B. Thiết kế giao diện người dùng.
C. Tìm kiếm và sửa lỗi trong mã nguồn.
D. Tối ưu hóa hiệu suất phần mềm.
16. Nguyên tắc "DRY" (Don"t Repeat Yourself) trong lập trình khuyến khích điều gì?
A. Viết nhiều mã nguồn khác nhau cho cùng một chức năng.
B. Tránh lặp lại mã nguồn; mỗi phần logic chỉ nên có một biểu diễn duy nhất.
C. Tập trung vào việc tạo ra các bản sao của mã nguồn.
D. Sử dụng nhiều biến cục bộ cho mỗi tác vụ.
17. Trong phát triển phần mềm, "refactoring" (tái cấu trúc mã nguồn) là gì?
A. Thêm các tính năng mới vào phần mềm.
B. Thay đổi cấu trúc nội bộ của mã nguồn mà không làm thay đổi chức năng bên ngoài của nó.
C. Sửa lỗi nghiêm trọng trong sản phẩm đã phát hành.
D. Tạo giao diện người dùng mới.
18. Ngôn ngữ định kiểu (stylesheet language) nào được sử dụng để định dạng giao diện và bố cục của trang web?
A. HTML
B. JavaScript
C. Python
D. CSS
19. Trong phát triển phần mềm, "Continuous Integration" (CI) thường liên quan đến việc gì?
A. Tự động hóa quá trình triển khai phần mềm lên môi trường sản xuất.
B. Tự động hóa việc xây dựng (build) và kiểm thử mã nguồn mỗi khi có thay đổi mới được đưa vào kho.
C. Quản lý cơ sở dữ liệu và các truy vấn SQL.
D. Thiết kế giao diện người dùng.
20. Trong kiểm thử phần mềm, "User Acceptance Testing" (UAT) là giai đoạn mà:
A. Các lập trình viên kiểm tra các đơn vị mã của họ.
B. Người dùng cuối hoặc đại diện của họ kiểm tra phần mềm để đảm bảo nó đáp ứng các yêu cầu kinh doanh.
C. Các chuyên gia bảo mật tìm kiếm lỗ hổng.
D. Các kỹ sư kiểm thử thực hiện kiểm thử hiệu năng.
21. Ngôn ngữ lập trình nào thường được sử dụng cho phát triển web back-end, xử lý logic phía máy chủ và tương tác với cơ sở dữ liệu?
A. HTML
B. CSS
C. Python (với các framework như Django, Flask)
D. SQL (chỉ dùng cho cơ sở dữ liệu)
22. Mục đích của "Code Review" (xem xét mã nguồn) trong nhóm phát triển phần mềm là gì?
A. Để người quản lý đánh giá hiệu suất của từng lập trình viên.
B. Để tìm kiếm các lỗi, cải thiện chất lượng mã nguồn và chia sẻ kiến thức trong nhóm.
C. Để tăng số lượng dòng mã trong dự án.
D. Để tự động hóa quá trình biên dịch mã nguồn.
23. Khi làm việc trong một dự án phát triển phần mềm, vai trò của "Product Owner" thường bao gồm việc gì?
A. Viết mã nguồn và kiểm thử.
B. Quản lý đội ngũ kỹ thuật và phân công công việc.
C. Đại diện cho lợi ích của khách hàng và xác định các yêu cầu của sản phẩm.
D. Thiết lập hạ tầng máy chủ và mạng.
24. Một "API" (Application Programming Interface) trong phát triển phần mềm đóng vai trò gì?
A. Là một công cụ để thiết kế cơ sở dữ liệu.
B. Là một tập hợp các quy tắc và định nghĩa cho phép các ứng dụng khác nhau giao tiếp với nhau.
C. Là một phương pháp để kiểm tra bảo mật phần mềm.
D. Là một môi trường phát triển tích hợp (IDE) cho một ngôn ngữ lập trình cụ thể.
25. Vai trò của "Scrum Master" trong một nhóm Scrum là gì?
A. Là người đưa ra quyết định về các tính năng của sản phẩm.
B. Là người hướng dẫn và hỗ trợ nhóm Scrum hiểu và thực hành Scrum, loại bỏ các trở ngại.
C. Là người viết mã nguồn và thực hiện kiểm thử.
D. Là người chịu trách nhiệm về chất lượng cuối cùng của sản phẩm.