Chuyển đến nội dung

Trắc nghiệm Công nghệ phần mềm online có đáp án

Trắc Nghiệm Kỹ Thuật & Công Nghệ

Trắc nghiệm Công nghệ phần mềm online có đáp án

Ngày cập nhật: Tháng 2 6, 2026

Lưu ý và Miễn trừ trách nhiệm:Toàn bộ nội dung câu hỏi, đáp án và thông tin được cung cấp trên website này được xây dựng nhằm mục đích tham khảo, hỗ trợ ôn tập và củng cố kiến thức. Chúng tôi không cam kết về tính chính xác tuyệt đối, tính cập nhật hay độ tin cậy hoàn toàn của các dữ liệu này. Nội dung tại đây KHÔNG PHẢI LÀ ĐỀ THI CHÍNH THỨC của bất kỳ tổ chức giáo dục, trường đại học hay cơ quan cấp chứng chỉ nào. Người sử dụng tự chịu trách nhiệm khi sử dụng các thông tin này vào mục đích học tập, nghiên cứu hoặc áp dụng vào thực tiễn. Chúng tôi không chịu trách nhiệm pháp lý đối với bất kỳ sai sót, thiệt hại hoặc hậu quả nào phát sinh từ việc sử dụng thông tin trên website này.

Chào mừng bạn đến với bộ Trắc nghiệm Công nghệ phần mềm online có đáp án. Bộ trắc nghiệm này giúp bạn hệ thống lại kiến thức một cách logic và dễ hiểu. Hãy chọn một bộ câu hỏi phía dưới để bắt đầu. Chúc bạn làm bài thuận lợi và thu được nhiều kiến thức mới

★★★★★
★★★★★
4.6/5 (192 đánh giá)

1. Trong kiểm thử phần mềm, ‘unit testing’ (kiểm thử đơn vị) là gì?

A. Kiểm thử toàn bộ hệ thống.
B. Kiểm thử các thành phần riêng lẻ của phần mềm.
C. Kiểm thử giao diện người dùng.
D. Kiểm thử hiệu năng của phần mềm.

2. Trong kiểm thử phần mềm, ‘regression testing’ (kiểm thử hồi quy) được thực hiện khi nào?

A. Chỉ khi phát hiện lỗi nghiêm trọng.
B. Sau khi sửa lỗi hoặc thêm chức năng mới để đảm bảo không gây ra lỗi mới.
C. Trước khi bắt đầu phát triển phần mềm.
D. Chỉ khi có yêu cầu từ khách hàng.

3. Đâu là một trong những lợi ích chính của việc sử dụng kiến trúc hướng dịch vụ (Service-Oriented Architecture – SOA)?

A. Tăng tốc độ phát triển phần mềm.
B. Cho phép các ứng dụng khác nhau giao tiếp và chia sẻ dữ liệu một cách dễ dàng.
C. Giảm chi phí phần cứng.
D. Tự động tạo tài liệu kỹ thuật.

4. Trong kiến trúc microservices, mỗi microservice nên đại diện cho điều gì?

A. Một phần của giao diện người dùng.
B. Một chức năng nghiệp vụ cụ thể.
C. Một tầng dữ liệu.
D. Toàn bộ ứng dụng.

5. Đâu là một trong những nguyên tắc chính của phương pháp luận Agile?

A. Ưu tiên tài liệu đầy đủ và chi tiết.
B. Phản hồi nhanh chóng với sự thay đổi và ưu tiên sự hài lòng của khách hàng.
C. Tuân thủ nghiêm ngặt kế hoạch ban đầu.
D. Tập trung vào việc giảm thiểu chi phí phát triển.

6. Trong phát triển phần mềm hướng đối tượng, ‘inheritance’ (kế thừa) có ý nghĩa gì?

A. Khả năng một đối tượng có nhiều thuộc tính.
B. Khả năng một lớp (class) có thể kế thừa các thuộc tính và phương thức từ một lớp khác.
C. Khả năng một phương thức có thể được gọi từ nhiều lớp khác nhau.
D. Khả năng một đối tượng có thể thay đổi trạng thái của nó.

7. Đâu là một trong những lợi ích chính của việc sử dụng Containerization (ví dụ: Docker)?

A. Tăng tốc độ phát triển phần mềm.
B. Đóng gói ứng dụng và các phụ thuộc của nó vào một đơn vị duy nhất, giúp triển khai dễ dàng và nhất quán trên các môi trường khác nhau.
C. Giảm chi phí phần cứng.
D. Tự động tạo tài liệu kỹ thuật.

8. Đâu là mục tiêu chính của việc tái cấu trúc mã nguồn (Code Refactoring)?

A. Thêm chức năng mới vào phần mềm.
B. Sửa lỗi trong mã nguồn.
C. Cải thiện cấu trúc và khả năng đọc hiểu của mã nguồn mà không thay đổi chức năng.
D. Tăng tốc độ thực thi của phần mềm.

9. Đâu là trách nhiệm chính của một Product Owner trong Scrum?

A. Quản lý và điều phối nhóm phát triển.
B. Viết mã nguồn và kiểm thử phần mềm.
C. Xác định và ưu tiên các yêu cầu của sản phẩm (Product Backlog).
D. Đảm bảo chất lượng mã nguồn.

10. Đâu là trách nhiệm chính của Scrum Master?

A. Quản lý Product Backlog.
B. Viết mã nguồn và kiểm thử phần mềm.
C. Loại bỏ các trở ngại và giúp nhóm Scrum làm việc hiệu quả.
D. Đảm bảo chất lượng mã nguồn.

11. Trong kiểm thử phần mềm, ‘load testing’ (kiểm thử tải) được sử dụng để làm gì?

A. Kiểm tra chức năng của phần mềm.
B. Đánh giá hiệu năng của phần mềm dưới một tải trọng dự kiến.
C. Kiểm tra tính bảo mật của phần mềm.
D. Kiểm tra khả năng sử dụng của phần mềm.

12. Phương pháp luận Scrum thuộc loại nào trong các phương pháp phát triển phần mềm Agile?

A. Một framework.
B. Một ngôn ngữ lập trình.
C. Một công cụ kiểm thử.
D. Một cơ sở dữ liệu.

13. Đâu là mục tiêu chính của việc sử dụng Dependency Injection (DI) trong phát triển phần mềm?

A. Tăng tốc độ viết mã.
B. Giảm sự phụ thuộc giữa các thành phần của phần mềm.
C. Giảm kích thước của mã nguồn.
D. Tự động tạo tài liệu kỹ thuật.

14. Đâu là một trong những lợi ích chính của việc sử dụng kiến trúc RESTful?

A. Tăng tốc độ phát triển phần mềm.
B. Đơn giản, dễ hiểu và dễ tích hợp với các hệ thống khác.
C. Giảm chi phí phần cứng.
D. Tự động tạo tài liệu kỹ thuật.

15. Đâu là mục tiêu chính của việc sử dụng Inversion of Control (IoC) trong phát triển phần mềm?

A. Tăng tốc độ viết mã.
B. Chuyển giao quyền kiểm soát luồng thực thi từ ứng dụng sang framework hoặc container.
C. Giảm kích thước của mã nguồn.
D. Tự động tạo tài liệu kỹ thuật.

16. Mô hình thác nước (Waterfall) trong quy trình phát triển phần mềm phù hợp nhất với dự án nào?

A. Dự án có yêu cầu thay đổi liên tục và không rõ ràng.
B. Dự án có rủi ro cao và cần phản hồi nhanh chóng từ người dùng.
C. Dự án có yêu cầu rõ ràng, ổn định và ít thay đổi.
D. Dự án cần triển khai nhanh chóng và chấp nhận một số lỗi.

17. Trong kiểm thử phần mềm, ‘acceptance testing’ (kiểm thử chấp nhận) được thực hiện bởi ai?

A. Lập trình viên.
B. Nhóm kiểm thử.
C. Khách hàng hoặc người dùng cuối.
D. Quản lý dự án.

18. Trong ngữ cảnh của Agile, ‘velocity’ là gì?

A. Số lượng dòng code được viết trong một sprint.
B. Thời gian cần thiết để hoàn thành một sprint.
C. Ước lượng về lượng công việc mà một nhóm có thể hoàn thành trong một sprint.
D. Số lượng lỗi được phát hiện trong một sprint.

19. Trong mô hình xoắn ốc (Spiral), yếu tố nào được lặp lại trong mỗi vòng lặp?

A. Thiết kế chi tiết.
B. Xây dựng nguyên mẫu.
C. Đánh giá rủi ro.
D. Kiểm thử hiệu năng.

20. Đâu là sự khác biệt chính giữa kiểm thử Alpha và kiểm thử Beta?

A. Kiểm thử Alpha do lập trình viên thực hiện, còn kiểm thử Beta do người dùng thực hiện.
B. Kiểm thử Alpha được thực hiện tại môi trường của nhà phát triển, còn kiểm thử Beta được thực hiện tại môi trường của người dùng.
C. Kiểm thử Alpha tập trung vào hiệu suất, còn kiểm thử Beta tập trung vào chức năng.
D. Kiểm thử Alpha chỉ được thực hiện trên các thiết bị di động, còn kiểm thử Beta trên máy tính để bàn.

21. Trong kiểm thử phần mềm, ‘security testing’ (kiểm thử bảo mật) được sử dụng để làm gì?

A. Kiểm tra chức năng của phần mềm.
B. Đánh giá hiệu năng của phần mềm dưới một tải trọng dự kiến.
C. Xác định các lỗ hổng bảo mật và đảm bảo rằng phần mềm được bảo vệ khỏi các cuộc tấn công.
D. Kiểm tra khả năng sử dụng của phần mềm.

22. Trong kiểm thử phần mềm, kiểm thử hộp đen (Black-box testing) tập trung vào điều gì?

A. Cấu trúc bên trong và logic của mã nguồn.
B. Đường dẫn thực thi của mã nguồn.
C. Yêu cầu chức năng và đầu vào/đầu ra của phần mềm.
D. Hiệu suất và khả năng mở rộng của phần mềm.

23. Trong Scrum, ‘Sprint Review’ là gì?

A. Một cuộc họp để lên kế hoạch cho sprint tiếp theo.
B. Một cuộc họp để trình bày sản phẩm đã hoàn thành cho khách hàng và thu thập phản hồi.
C. Một cuộc họp để nhóm xem xét và cải thiện quy trình làm việc.
D. Một cuộc họp để báo cáo tiến độ cho quản lý.

24. Đâu là mục tiêu chính của việc sử dụng Design Patterns (mẫu thiết kế) trong phát triển phần mềm?

A. Tăng tốc độ viết mã.
B. Cung cấp các giải pháp đã được kiểm chứng cho các vấn đề thiết kế phổ biến.
C. Giảm kích thước của mã nguồn.
D. Tự động tạo tài liệu kỹ thuật.

25. Đâu là ưu điểm chính của việc sử dụng hệ thống kiểm soát phiên bản (Version Control System) như Git?

A. Tăng tốc độ biên dịch mã nguồn.
B. Giảm dung lượng lưu trữ của dự án.
C. Cho phép nhiều người cùng làm việc trên một dự án mà không lo xung đột.
D. Tự động tạo tài liệu kỹ thuật cho dự án.

26. Đâu là lợi ích chính của việc sử dụng Continuous Integration (CI) trong quy trình phát triển phần mềm?

A. Tự động triển khai phần mềm lên môi trường production.
B. Tự động tạo tài liệu kỹ thuật cho dự án.
C. Phát hiện sớm các lỗi tích hợp và giảm thiểu xung đột mã nguồn.
D. Tăng tốc độ viết mã của lập trình viên.

27. Trong Scrum, ‘Sprint Retrospective’ là gì?

A. Một cuộc họp để lên kế hoạch cho sprint tiếp theo.
B. Một cuộc họp để đánh giá sản phẩm đã hoàn thành.
C. Một cuộc họp để nhóm xem xét và cải thiện quy trình làm việc.
D. Một cuộc họp để báo cáo tiến độ cho khách hàng.

28. Mục đích chính của việc sử dụng UML (Unified Modeling Language) trong phát triển phần mềm là gì?

A. Tự động sinh mã nguồn từ mô hình.
B. Cung cấp một ngôn ngữ trực quan để mô tả, trực quan hóa, xây dựng và ghi lại các thành phần của hệ thống phần mềm.
C. Tối ưu hóa hiệu suất của phần mềm.
D. Quản lý cấu hình phần cứng của hệ thống.

29. Trong Scrum, ‘Daily Scrum’ (hay ‘Daily Stand-up’) là gì?

A. Một cuộc họp để lên kế hoạch cho sprint tiếp theo.
B. Một cuộc họp ngắn hàng ngày để nhóm chia sẻ tiến độ và kế hoạch cho ngày hôm đó.
C. Một cuộc họp để đánh giá sản phẩm đã hoàn thành.
D. Một cuộc họp để báo cáo tiến độ cho khách hàng.

30. Trong Continuous Delivery (CD), bước nào sau đây thường được tự động hóa?

A. Lập kế hoạch dự án.
B. Viết mã nguồn.
C. Kiểm thử và triển khai phần mềm lên môi trường staging hoặc production.
D. Thu thập yêu cầu từ khách hàng.

31. Đâu là mục tiêu của việc thiết kế giao diện người dùng (UI) tốt?

A. Làm cho giao diện đẹp mắt
B. Tối ưu hóa hiệu năng của hệ thống
C. Tạo ra giao diện dễ sử dụng, hiệu quả và đáp ứng nhu cầu của người dùng
D. Giảm chi phí phát triển

32. Đâu là một lợi ích của việc sử dụng Continuous Integration (CI) trong phát triển phần mềm?

A. Giảm thời gian kiểm thử
B. Phát hiện lỗi sớm và thường xuyên hơn
C. Tăng tốc độ viết mã nguồn
D. Giảm chi phí phần cứng

33. Đâu là lợi ích của việc sử dụng hệ thống quản lý phiên bản (version control system) như Git?

A. Tăng tốc độ biên dịch mã nguồn
B. Cho phép nhiều người cùng làm việc trên một dự án một cách hiệu quả và theo dõi thay đổi
C. Tự động sửa lỗi trong mã nguồn
D. Giảm kích thước của file thực thi

34. Đâu là một mục tiêu của việc kiểm tra hồi quy (regression testing)?

A. Tìm lỗi mới trong phần mềm
B. Đảm bảo rằng các thay đổi mới không gây ra lỗi cho các chức năng đã hoạt động trước đó
C. Tăng tốc độ phát triển
D. Giảm chi phí kiểm thử

35. Đâu là một phương pháp để cải thiện hiệu năng của ứng dụng web?

A. Viết tài liệu chi tiết
B. Sử dụng bộ nhớ cache để lưu trữ dữ liệu thường xuyên được truy cập
C. Tăng độ phức tạp của mã nguồn
D. Giảm số lượng kiểm thử

36. Đâu là một kỹ thuật để xác định yêu cầu phần mềm?

A. Viết mã nguồn
B. Phỏng vấn người dùng và các bên liên quan
C. Kiểm thử phần mềm
D. Quản lý dự án

37. Đâu là một phương pháp để giảm thiểu rủi ro trong dự án phần mềm?

A. Bỏ qua các vấn đề nhỏ
B. Lập kế hoạch dự phòng và theo dõi rủi ro thường xuyên
C. Giao tất cả trách nhiệm cho một người
D. Không thay đổi kế hoạch ban đầu

38. Đâu là một thách thức chính khi phát triển phần mềm phân tán?

A. Đảm bảo tính nhất quán dữ liệu giữa các thành phần
B. Viết mã nguồn
C. Kiểm thử đơn vị
D. Quản lý yêu cầu

39. Kiểm thử chấp nhận (Acceptance testing) được thực hiện bởi ai?

A. Lập trình viên
B. Kiểm thử viên
C. Khách hàng hoặc người dùng cuối
D. Quản lý dự án

40. Đâu là một đặc điểm của kiến trúc hướng dịch vụ (SOA)?

A. Các thành phần được liên kết chặt chẽ
B. Các dịch vụ độc lập giao tiếp với nhau thông qua các giao diện chuẩn
C. Tất cả các dịch vụ phải được viết bằng cùng một ngôn ngữ lập trình
D. Các dịch vụ phải được triển khai trên cùng một máy chủ

41. Trong ngữ cảnh phát triển phần mềm, SOLID là viết tắt của những nguyên tắc thiết kế hướng đối tượng nào?

A. Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion
B. Simple, Organized, Layered, Intuitive, Detailed
C. Structured, Object-oriented, Linear, Iterative, Dynamic
D. Scalable, Optimized, Lightweight, Integrated, Distributed

42. Đâu là một ưu điểm của việc sử dụng kiến trúc microservices?

A. Dễ dàng triển khai và mở rộng các thành phần riêng lẻ
B. Giảm độ phức tạp của hệ thống
C. Đảm bảo tính nhất quán dữ liệu tuyệt đối
D. Giảm chi phí phát triển

43. Phương pháp Agile nhấn mạnh điều gì trong phát triển phần mềm?

A. Tuân thủ nghiêm ngặt kế hoạch ban đầu
B. Ưu tiên tài liệu đầy đủ và chi tiết
C. Phản hồi nhanh chóng với thay đổi và sự hợp tác chặt chẽ với khách hàng
D. Giảm thiểu giao tiếp trực tiếp giữa các thành viên

44. Đâu là một lợi ích của việc sử dụng các mẫu thiết kế (design patterns)?

A. Giảm thời gian viết mã
B. Cung cấp các giải pháp đã được chứng minh cho các vấn đề thiết kế phổ biến
C. Tăng độ phức tạp của mã nguồn
D. Loại bỏ nhu cầu kiểm thử

45. Đâu là mục tiêu chính của việc tái cấu trúc (refactoring) mã nguồn?

A. Thêm chức năng mới cho phần mềm
B. Sửa lỗi trong phần mềm
C. Cải thiện cấu trúc và khả năng bảo trì của mã nguồn mà không thay đổi chức năng
D. Tăng hiệu suất của phần cứng

46. Đâu là một kỹ thuật để đảm bảo an toàn thông tin trong ứng dụng web?

A. Viết mã nguồn nhanh chóng
B. Sử dụng mã hóa để bảo vệ dữ liệu nhạy cảm
C. Giảm số lượng kiểm thử
D. Bỏ qua các cảnh báo bảo mật

47. Đâu là mục tiêu chính của việc lập kế hoạch dự án phần mềm?

A. Viết mã nguồn nhanh nhất có thể
B. Xác định phạm vi, thời gian, nguồn lực và rủi ro để đạt được mục tiêu dự án
C. Tìm kiếm khách hàng mới
D. Đào tạo nhân viên mới

48. Đâu là một thách thức khi làm việc trong một nhóm phát triển phần mềm lớn?

A. Giao tiếp và phối hợp hiệu quả giữa các thành viên
B. Viết mã nguồn
C. Kiểm thử đơn vị
D. Quản lý yêu cầu

49. Đâu là mục tiêu chính của việc ước lượng chi phí dự án phần mềm?

A. Giảm chi phí dự án xuống mức thấp nhất có thể
B. Dự đoán chi phí thực tế của dự án một cách chính xác nhất
C. Tăng lợi nhuận cho công ty
D. Thu hút nhà đầu tư

50. Đâu là mục tiêu của việc quản lý cấu hình phần mềm (software configuration management)?

A. Quản lý phần cứng máy chủ
B. Quản lý tất cả các thay đổi đối với sản phẩm phần mềm trong suốt vòng đời của nó
C. Quản lý tài chính của dự án
D. Quản lý quan hệ với khách hàng

51. Đâu là một mục tiêu của việc bảo trì phần mềm?

A. Thêm chức năng mới cho phần mềm
B. Sửa lỗi, cải thiện hiệu năng và thích ứng với các thay đổi môi trường
C. Giảm chi phí phát triển
D. Loại bỏ tài liệu

52. Đâu là một đặc điểm của kiểm thử đơn vị (unit testing)?

A. Kiểm thử toàn bộ hệ thống
B. Kiểm thử các thành phần riêng lẻ của phần mềm
C. Kiểm thử giao diện người dùng
D. Kiểm thử hiệu năng của hệ thống

53. Đâu là định nghĩa chính xác nhất về kiểm thử hộp đen (black-box testing)?

A. Kiểm thử dựa trên kiến trúc bên trong của phần mềm
B. Kiểm thử dựa trên mã nguồn của phần mềm
C. Kiểm thử dựa trên yêu cầu và chức năng của phần mềm mà không cần biết cấu trúc bên trong
D. Kiểm thử để tìm lỗi cú pháp trong mã nguồn

54. Đâu là một trong những trách nhiệm chính của một kiến trúc sư phần mềm?

A. Viết mã nguồn cho tất cả các module
B. Thiết kế cấu trúc tổng thể của hệ thống và đảm bảo tính tương thích giữa các thành phần
C. Kiểm tra lỗi trong mã nguồn
D. Quản lý dự án và phân công công việc

55. Đâu là lợi ích chính của việc sử dụng kiểm thử tự động trong phát triển phần mềm?

A. Giảm chi phí phần cứng
B. Tăng tốc độ phát triển và cải thiện độ tin cậy của phần mềm
C. Đảm bảo 100% không có lỗi
D. Loại bỏ nhu cầu về kiểm thử thủ công

56. Công cụ nào sau đây thường được sử dụng để quản lý dự án phần mềm theo phương pháp Agile?

A. Microsoft Project
B. Jira
C. Primavera P6
D. SAP Project System

57. Đâu là một phương pháp để đánh giá chất lượng mã nguồn?

A. Viết tài liệu
B. Đánh giá mã (code review) bởi các lập trình viên khác
C. Kiểm thử hiệu năng
D. Quản lý cấu hình

58. Đâu là một lợi ích của việc sử dụng mô hình Scrum trong phát triển phần mềm?

A. Cho phép thay đổi yêu cầu một cách linh hoạt trong suốt quá trình phát triển
B. Giảm thiểu giao tiếp giữa các thành viên
C. Yêu cầu tài liệu đầy đủ và chi tiết trước khi bắt đầu
D. Loại bỏ nhu cầu kiểm thử

59. Mô hình thác nước (Waterfall) phù hợp nhất với loại dự án nào?

A. Dự án có yêu cầu thay đổi liên tục
B. Dự án có yêu cầu không rõ ràng
C. Dự án có yêu cầu ổn định và được hiểu rõ từ đầu
D. Dự án cần triển khai nhanh chóng

60. Use case diagram được sử dụng để làm gì trong phân tích yêu cầu?

A. Mô tả cấu trúc dữ liệu của hệ thống
B. Mô tả các tương tác giữa người dùng và hệ thống
C. Mô tả luồng điều khiển trong chương trình
D. Mô tả kiến trúc phần cứng của hệ thống

61. Trong mô hình thác nước, giai đoạn nào tập trung vào việc chuyển đổi các yêu cầu thành một thiết kế hệ thống hoàn chỉnh?

A. Kiểm thử
B. Triển khai
C. Phân tích yêu cầu
D. Thiết kế

62. Trong UML, loại biểu đồ nào được sử dụng để mô tả tương tác giữa các đối tượng theo thời gian?

A. Biểu đồ lớp (Class Diagram)
B. Biểu đồ tuần tự (Sequence Diagram)
C. Biểu đồ trạng thái (State Diagram)
D. Biểu đồ hoạt động (Activity Diagram)

63. Kiểu kiến trúc phần mềm nào tập trung vào việc chia ứng dụng thành các thành phần độc lập, có thể tái sử dụng và giao tiếp với nhau thông qua các dịch vụ?

A. Kiến trúc Monolithic
B. Kiến trúc Microservices
C. Kiến trúc Layered
D. Kiến trúc Client-Server

64. Trong mô hình xoắn ốc, rủi ro được đánh giá trong giai đoạn nào?

A. Lập kế hoạch
B. Phân tích rủi ro
C. Thiết kế
D. Đánh giá

65. Trong kiểm thử phần mềm, sự khác biệt giữa Verification và Validation là gì?

A. Verification kiểm tra xem sản phẩm có đáp ứng yêu cầu, Validation kiểm tra xem sản phẩm có đáp ứng nhu cầu của người dùng
B. Verification kiểm tra hiệu năng, Validation kiểm tra bảo mật
C. Verification kiểm tra mã nguồn, Validation kiểm tra giao diện người dùng
D. Verification kiểm tra tính đúng đắn, Validation kiểm tra tính đầy đủ

66. Đâu là một lợi ích chính của việc sử dụng kiến trúc hướng dịch vụ (SOA)?

A. Giảm chi phí phần cứng
B. Tăng khả năng tái sử dụng và tích hợp các dịch vụ
C. Đơn giản hóa thiết kế cơ sở dữ liệu
D. Tăng tốc độ kiểm thử

67. Phương pháp ước lượng dự án nào sử dụng ý kiến của các chuyên gia để đưa ra ước tính?

A. COCOMO
B. PERT
C. Delphi
D. Function Point Analysis

68. Trong quy trình Scrum, ai chịu trách nhiệm đảm bảo rằng nhóm Scrum tuân thủ các giá trị và thực hành của Scrum?

A. Product Owner
B. Scrum Master
C. Development Team
D. Stakeholder

69. Đâu là một thách thức chính trong việc quản lý các dự án phần mềm lớn?

A. Dễ dàng ước tính thời gian và chi phí
B. Quản lý sự phức tạp và phối hợp giữa nhiều thành viên
C. Dễ dàng kiểm soát thay đổi yêu cầu
D. Dễ dàng giao tiếp với khách hàng

70. Mục tiêu chính của việc tái cấu trúc mã (refactoring) là gì?

A. Thêm chức năng mới
B. Cải thiện khả năng đọc và bảo trì mã mà không thay đổi chức năng
C. Sửa lỗi
D. Tối ưu hóa hiệu suất phần cứng

71. Loại mô hình phát triển phần mềm nào phù hợp nhất cho các dự án có yêu cầu không rõ ràng và có khả năng thay đổi?

A. Mô hình thác nước
B. Mô hình Agile
C. Mô hình chữ V
D. Mô hình xoắn ốc

72. Đâu là một lợi ích của việc sử dụng Continuous Delivery?

A. Giảm chi phí phát triển
B. Phần mềm luôn ở trạng thái sẵn sàng để triển khai
C. Loại bỏ nhu cầu kiểm thử
D. Giảm sự tham gia của khách hàng

73. Loại biểu đồ nào được sử dụng để theo dõi tiến độ công việc còn lại trong một Sprint?

A. Biểu đồ Gantt
B. Biểu đồ Burndown
C. Biểu đồ Kanban
D. Biểu đồ Pareto

74. Đâu là một mục tiêu của việc sử dụng Microservices?

A. Tăng sự gắn kết giữa các module
B. Cho phép các nhóm phát triển triển khai độc lập
C. Giảm khả năng mở rộng của ứng dụng
D. Làm phức tạp quá trình phát triển

75. Đâu là một thách thức trong việc sử dụng kiến trúc Microservices?

A. Khả năng mở rộng dễ dàng
B. Giao tiếp phức tạp giữa các dịch vụ
C. Độc lập trong triển khai
D. Quản lý dữ liệu dễ dàng

76. Công cụ nào thường được sử dụng để quản lý phiên bản mã nguồn?

A. Jira
B. Slack
C. Git
D. Trello

77. Đâu là một lợi ích chính của việc sử dụng kiểm thử tự động?

A. Giảm chi phí phần cứng
B. Tăng tốc độ phát triển và giảm thiểu lỗi
C. Cải thiện giao tiếp nhóm
D. Đơn giản hóa thiết kế cơ sở dữ liệu

78. Đâu là một mục tiêu của việc sử dụng Agile?

A. Cung cấp phần mềm một cách nhanh chóng và liên tục
B. Giảm sự thay đổi yêu cầu
C. Tăng chi phí phát triển
D. Giảm sự tương tác với khách hàng

79. Phương pháp kiểm thử nào kiểm tra các đường dẫn thực thi của mã nguồn?

A. Kiểm thử hộp đen
B. Kiểm thử hộp trắng
C. Kiểm thử tích hợp
D. Kiểm thử hệ thống

80. Trong UML, mối quan hệ Association thể hiện điều gì?

A. Một lớp kế thừa từ lớp khác
B. Một lớp sử dụng các chức năng của lớp khác
C. Một lớp chứa các đối tượng của lớp khác
D. Một lớp liên kết với các lớp khác

81. Nguyên tắc SOLID nào phát biểu rằng một lớp chỉ nên có một lý do để thay đổi?

A. Nguyên tắc thay thế Liskov (Liskov Substitution Principle)
B. Nguyên tắc duy nhất (Single Responsibility Principle)
C. Nguyên tắc đảo ngược phụ thuộc (Dependency Inversion Principle)
D. Nguyên tắc mở/đóng (Open/Closed Principle)

82. Trong kiểm thử phần mềm, Acceptance Testing được thực hiện bởi ai?

A. Nhà phát triển
B. Người kiểm thử
C. Khách hàng hoặc người dùng cuối
D. Quản lý dự án

83. Đâu là một lợi ích của việc sử dụng Design Patterns?

A. Giảm chi phí phần cứng
B. Cung cấp các giải pháp đã được chứng minh cho các vấn đề thiết kế phổ biến
C. Tăng tốc độ kiểm thử
D. Đơn giản hóa việc quản lý dự án

84. Trong kiểm thử phần mềm, Unit Testing được sử dụng để làm gì?

A. Kiểm tra toàn bộ hệ thống
B. Kiểm tra các thành phần riêng lẻ của mã
C. Kiểm tra giao diện người dùng
D. Kiểm tra hiệu năng của hệ thống

85. Đâu là một mục tiêu chính của việc quản lý cấu hình phần mềm?

A. Quản lý tài chính dự án
B. Theo dõi và kiểm soát các thay đổi đối với các thành phần phần mềm
C. Quản lý nhân sự dự án
D. Quản lý rủi ro dự án

86. Đâu là một thách thức chính khi sử dụng kiến trúc Microservices?

A. Dễ dàng triển khai
B. Quản lý phức tạp do số lượng lớn các dịch vụ
C. Giảm độ phức tạp của hệ thống
D. Dễ dàng mở rộng quy mô

87. Đâu là một đặc điểm quan trọng của một use case tốt?

A. Quá trình kỹ thuật phức tạp
B. Mô tả chi tiết về thiết kế cơ sở dữ liệu
C. Mô tả một mục tiêu hoàn chỉnh từ góc độ của người dùng
D. Sử dụng ngôn ngữ kỹ thuật chuyên ngành

88. Trong Scrum, Sprint Review được sử dụng để làm gì?

A. Lập kế hoạch cho Sprint tiếp theo
B. Đánh giá công việc đã hoàn thành trong Sprint và thu thập phản hồi từ các bên liên quan
C. Giải quyết các vấn đề kỹ thuật
D. Tái cấu trúc mã

89. Mục tiêu của Continuous Integration (CI) là gì?

A. Tự động hóa việc triển khai phần mềm
B. Tích hợp mã thường xuyên và tự động kiểm thử
C. Quản lý yêu cầu
D. Theo dõi lỗi

90. Trong ngữ cảnh của kiểm thử phần mềm, Regression testing là gì?

A. Kiểm thử các tính năng mới
B. Kiểm thử để đảm bảo rằng các thay đổi mới không gây ra lỗi cho các tính năng hiện có
C. Kiểm thử hiệu năng của hệ thống
D. Kiểm thử bảo mật của hệ thống

91. Đâu là mục tiêu chính của việc tái cấu trúc mã (code refactoring)?

A. Cải thiện 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.
B. Thêm chức năng mới vào phần mềm.
C. Sửa lỗi trong mã nguồn.
D. Tối ưu hóa hiệu suất của phần mềm.

92. Trong ngữ cảnh của kiểm thử phần mềm, ‘mutation testing’ (kiểm thử đột biến) là gì?

A. Kỹ thuật kiểm thử bằng cách tạo ra các phiên bản lỗi của mã nguồn và kiểm tra xem các trường hợp kiểm thử có thể phát hiện ra các lỗi này hay không.
B. Kỹ thuật kiểm thử bằng cách tạo ra các trường hợp kiểm thử ngẫu nhiên.
C. Kỹ thuật kiểm thử bằng cách kiểm tra hiệu suất của phần mềm dưới tải cao.
D. Kỹ thuật kiểm thử bằng cách kiểm tra tính bảo mật của phần mềm.

93. Phương pháp nào sau đây giúp quản lý sự thay đổi trong một dự án phần mềm một cách hiệu quả?

A. Sử dụng quy trình quản lý thay đổi chính thức (formal change management process).
B. Bỏ qua các yêu cầu thay đổi từ khách hàng.
C. Thực hiện tất cả các thay đổi mà không cần đánh giá tác động.
D. Không ghi lại các thay đổi đã thực hiện.

94. Trong phát triển phần mềm Agile, ‘velocity’ (vận tốc) là gì?

A. Số lượng công việc mà một nhóm có thể hoàn thành trong một sprint.
B. Tốc độ phản hồi của ứng dụng.
C. Số lượng lỗi được phát hiện trong một sprint.
D. Thời gian cần thiết để hoàn thành một nhiệm vụ.

95. Trong ngữ cảnh của DevOps, ‘Continuous Delivery’ (CD) là gì?

A. Khả năng phát hành phần mềm vào sản xuất bất kỳ lúc nào một cách nhanh chóng và an toàn.
B. Quá trình liên tục tích hợp mã nguồn từ nhiều nhà phát triển.
C. Việc tự động kiểm tra mã nguồn để tìm các lỗi tiềm ẩn.
D. Việc tự động tạo tài liệu kỹ thuật cho dự án.

96. Mục tiêu chính của việc sử dụng Design Patterns (mẫu thiết kế) trong phát triển phần mềm là gì?

A. Cung cấp các giải pháp đã được chứng minh cho các vấn đề thiết kế thường gặp.
B. Tăng tốc quá trình viết mã bằng cách tự động tạo mã nguồn.
C. Giảm số lượng dòng mã trong dự án.
D. Cải thiện hiệu suất của ứng dụng.

97. Đâu là lợi ích chính của việc sử dụng Continuous Integration (CI) trong phát triển phần mềm?

A. Phát hiện lỗi sớm và thường xuyên hơn, giảm thiểu rủi ro tích hợp.
B. Tăng tốc quá trình phát triển bằng cách loại bỏ các giai đoạn kiểm thử.
C. Tự động tạo tài liệu kỹ thuật cho dự án.
D. Giảm chi phí phát triển bằng cách sử dụng các công cụ tự động hóa.

98. Đâu là lợi ích chính của việc sử dụng hệ thống kiểm soát phiên bản (version control system) trong phát triển phần mềm?

A. Cho phép nhiều nhà phát triển làm việc đồng thời trên cùng một dự án mà không gây ra xung đột.
B. Tự động tạo tài liệu kỹ thuật cho dự án.
C. Tăng tốc quá trình biên dịch mã nguồn.
D. Tự động phát hiện và sửa lỗi trong mã nguồn.

99. Trong phát triển phần mềm, thuật ngữ ‘technical debt’ (nợ kỹ thuật) đề cập đến điều gì?

A. 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 mục tiêu nhanh hơn.
B. Chi phí bảo trì phần mềm sau khi triển khai.
C. Số tiền mà công ty nợ các nhà phát triển phần mềm.
D. Thời gian cần thiết để sửa lỗi trong phần mềm.

100. Phương pháp nào sau đây là phù hợp nhất để thu thập yêu cầu từ khách hàng cho một dự án phần mềm?

A. Phỏng vấn, khảo sát, hội thảo và phân tích tài liệu.
B. Chỉ dựa vào tài liệu hiện có của khách hàng.
C. Chỉ phỏng vấn một số ít người đại diện của khách hàng.
D. Chỉ sử dụng các công cụ tự động để thu thập yêu cầu.

101. Đâu là mục tiêu chính của việc sử dụng containerization (ví dụ: Docker) trong phát triển phần mềm?

A. Đóng gói ứng dụng và các phụ thuộc của nó vào một đơn vị duy nhất, giúp dễ dàng triển khai và chạy trên nhiều môi trường khác nhau.
B. Tăng tốc quá trình phát triển bằng cách tự động tạo mã nguồn.
C. Giảm số lượng dòng mã trong dự án.
D. Cải thiện hiệu suất của ứng dụng.

102. Trong kiểm thử phần mềm, ‘regression testing’ (kiểm thử hồi quy) được sử dụng để làm gì?

A. Đảm bảo rằng các thay đổi mới không gây ra lỗi cho các chức năng hiện có.
B. Tìm các lỗi bảo mật trong phần mềm.
C. Kiểm tra hiệu suất của phần mềm dưới tải cao.
D. Xác minh rằng phần mềm đáp ứng các yêu cầu kinh doanh.

103. Phương pháp nào sau đây giúp cải thiện khả năng bảo trì và tái sử dụng của mã nguồn?

A. Áp dụng các nguyên tắc SOLID.
B. Viết mã càng ngắn gọn càng tốt.
C. Sử dụng nhiều biến toàn cục.
D. Không viết tài liệu cho mã nguồn.

104. Trong phát triển phần mềm, ‘code review’ (đánh giá mã) là gì?

A. Quá trình kiểm tra mã nguồn bởi các nhà phát triển khác để tìm lỗi và cải thiện chất lượng mã.
B. Quá trình tự động kiểm tra mã nguồn bằng các công cụ phân tích tĩnh.
C. Quá trình biên dịch mã nguồn thành mã máy.
D. Quá trình triển khai mã nguồn lên máy chủ sản xuất.

105. Trong ngữ cảnh của kiểm thử hiệu năng (performance testing), ‘load testing’ (kiểm thử tải) là gì?

A. Kiểm tra khả năng của hệ thống khi chịu tải dự kiến.
B. Kiểm tra khả năng của hệ thống khi chịu tải vượt quá dự kiến.
C. Kiểm tra khả năng của hệ thống khi có nhiều người dùng truy cập đồng thời.
D. Kiểm tra khả năng của hệ thống khi có lỗi xảy ra.

106. Trong quy trình Scrum, ‘Product Owner’ chịu trách nhiệm chính cho việc gì?

A. Quản lý Product Backlog và đảm bảo giá trị tối đa cho sản phẩm.
B. Điều phối các cuộc họp hàng ngày (Daily Scrum).
C. Viết mã và kiểm thử phần mềm.
D. Quản lý nhóm phát triển và giải quyết các xung đột.

107. Đâu là mục tiêu chính của việc sử dụng microservices architecture?

A. Tăng tính độc lập, khả năng mở rộng và khả năng triển khai của các thành phần phần mềm.
B. Giảm độ phức tạp của hệ thống bằng cách tích hợp tất cả các chức năng vào một ứng dụng duy nhất.
C. Tăng cường bảo mật bằng cách tập trung tất cả các chức năng bảo mật vào một dịch vụ duy nhất.
D. Giảm chi phí phát triển bằng cách sử dụng các công cụ và kỹ thuật tự động hóa.

108. Phương pháp nào sau đây là phù hợp nhất để quản lý rủi ro trong một dự án phát triển phần mềm?

A. Xác định, đánh giá, lập kế hoạch ứng phó, và theo dõi rủi ro.
B. Chỉ tập trung vào việc xác định các rủi ro tiềm ẩn và bỏ qua việc lập kế hoạch ứng phó.
C. Chỉ lập kế hoạch ứng phó cho các rủi ro đã xảy ra.
D. Chỉ theo dõi các rủi ro đã được xác định trong giai đoạn đầu của dự án.

109. Phương pháp nào sau đây giúp đảm bảo tính bảo mật của ứng dụng web?

A. Sử dụng các kỹ thuật phòng chống tấn công SQL injection và Cross-Site Scripting (XSS).
B. Không sử dụng mật khẩu để bảo vệ thông tin người dùng.
C. Lưu trữ mật khẩu người dùng dưới dạng văn bản thuần túy.
D. Không kiểm tra đầu vào từ người dùng.

110. Kỹ thuật nào sau đây giúp đảm bảo chất lượng mã nguồn bằng cách tự động kiểm tra mã theo các quy tắc và tiêu chuẩn được xác định trước?

A. Phân tích mã tĩnh (Static code analysis).
B. Kiểm thử đơn vị (Unit testing).
C. Kiểm thử tích hợp (Integration testing).
D. Kiểm thử chấp nhận (Acceptance testing).

111. Sự khác biệt chính giữa ‘verification’ (xác minh) và ‘validation’ (kiểm định) trong kiểm thử phần mềm là gì?

A. Verification là kiểm tra xem phần mềm có được xây dựng đúng cách hay không, trong khi validation là kiểm tra xem phần mềm có đáp ứng nhu cầu của người dùng hay không.
B. Verification được thực hiện bởi nhà phát triển, trong khi validation được thực hiện bởi người kiểm thử.
C. Verification là một quá trình tự động, trong khi validation là một quá trình thủ công.
D. Verification tập trung vào hiệu suất của phần mềm, trong khi validation tập trung vào chức năng của phần mềm.

112. Trong ngữ cảnh của kiến trúc hướng dịch vụ (SOA), ‘dịch vụ’ được định nghĩa tốt nhất là gì?

A. Một chức năng rời rạc, tự chứa, có thể truy cập thông qua một giao diện được xác định rõ ràng.
B. Một thành phần phần mềm lớn, phức tạp, bao gồm nhiều chức năng liên quan.
C. Một cơ sở dữ liệu chứa thông tin về người dùng và hệ thống.
D. Một giao diện người dùng cho phép người dùng tương tác với hệ thống.

113. Trong mô hình V (V-model), giai đoạn nào tương ứng với giai đoạn ‘Kiểm thử hệ thống’?

A. Thiết kế hệ thống.
B. Thiết kế kiến trúc.
C. Kiểm thử tích hợp.
D. Phân tích yêu cầu.

114. Trong phát triển phần mềm, ‘refactoring’ (tái cấu trúc) nên được thực hiện khi nào?

A. Khi mã nguồn trở nên khó hiểu hoặc khó bảo trì.
B. Khi dự án sắp hoàn thành.
C. Khi hiệu suất của ứng dụng bị chậm.
D. Khi có lỗi xảy ra trong mã nguồn.

115. Trong kiểm thử phần mềm, sự khác biệt chính giữa kiểm thử hộp trắng (white-box testing) và kiểm thử hộp đen (black-box testing) là gì?

A. Kiểm thử hộp trắng tập trung vào cấu trúc bên trong của phần mềm, trong khi kiểm thử hộp đen chỉ kiểm tra chức năng bên ngoài.
B. Kiểm thử hộp trắng chỉ được thực hiện bởi nhà phát triển, trong khi kiểm thử hộp đen chỉ được thực hiện bởi người kiểm thử.
C. Kiểm thử hộp trắng là một loại kiểm thử tĩnh, trong khi kiểm thử hộp đen là một loại kiểm thử động.
D. Kiểm thử hộp trắng sử dụng các trường hợp kiểm thử ngẫu nhiên, trong khi kiểm thử hộp đen sử dụng các trường hợp kiểm thử được thiết kế cẩn thận.

116. Trong kiểm thử phần mềm, ‘acceptance testing’ (kiểm thử chấp nhận) được thực hiện bởi ai?

A. Khách hàng hoặc người dùng cuối.
B. Nhà phát triển.
C. Người kiểm thử.
D. Quản lý dự án.

117. Đâu là lợi ích chính của việc sử dụng kiến trúc MVC (Model-View-Controller)?

A. Tách biệt logic nghiệp vụ, giao diện người dùng và dữ liệu, giúp dễ bảo trì và phát triển.
B. Tăng tốc quá trình phát triển bằng cách tự động tạo mã nguồn.
C. Giảm số lượng dòng mã trong dự án.
D. Cải thiện hiệu suất của ứng dụng.

118. Trong ngữ cảnh của cơ sở dữ liệu, ACID là viết tắt của những thuộc tính nào?

A. Atomicity, Consistency, Isolation, Durability.
B. Accuracy, Completeness, Integrity, Dependability.
C. Availability, Capacity, Interoperability, Security.
D. Authorization, Configuration, Identification, Deployment.

119. Mục tiêu chính của việc sử dụng mô hình xoắn ốc (spiral model) trong phát triển phần mềm là gì?

A. Giảm thiểu rủi ro thông qua việc lặp lại các giai đoạn phát triển.
B. Tăng tốc quá trình phát triển bằng cách loại bỏ các giai đoạn không cần thiết.
C. Đảm bảo rằng tất cả các yêu cầu của khách hàng đều được đáp ứng ngay từ đầu.
D. Giảm chi phí phát triển bằng cách sử dụng các công cụ và kỹ thuật tự động hóa.

120. Trong mô hình thác nước (waterfall model), giai đoạn nào sau đây diễn ra sau giai đoạn ‘Thiết kế’?

A. Triển khai (Implementation).
B. Yêu cầu (Requirements).
C. Kiểm thử (Testing).
D. Bảo trì (Maintenance).

121. Đâu là mục tiêu chính của việc sử dụng các design patterns (mẫu thiết kế) trong phát triển phần mềm?

A. Tăng tốc độ phát triển phần mềm.
B. Giải quyết các vấn đề thiết kế phổ biến một cách hiệu quả và tái sử dụng được.
C. Giảm thiểu số lượng code cần viết.
D. Tăng cường tính bảo mật của phần mềm.

122. Đâu là một thách thức khi chuyển đổi từ mô hình waterfall sang mô hình Agile?

A. Đòi hỏi sự thay đổi về văn hóa và quy trình làm việc trong tổ chức.
B. Dễ dàng hơn trong việc quản lý dự án.
C. Giảm chi phí phát triển.
D. Không cần sự tham gia của khách hàng.

123. Trong kiểm thử phần mềm, ‘acceptance testing’ (kiểm thử chấp nhận) được thực hiện bởi ai?

A. Các lập trình viên.
B. Các kiểm thử viên.
C. Khách hàng hoặc người dùng cuối.
D. Các nhà quản lý dự án.

124. Trong ngữ cảnh phát triển phần mềm, ‘design by contract’ là gì?

A. Một phương pháp để kiểm thử phần mềm.
B. Một phương pháp thiết kế phần mềm dựa trên các hợp đồng rõ ràng giữa các thành phần.
C. Một công cụ để quản lý dự án.
D. Một phương pháp để quản lý rủi ro.

125. Trong kiểm thử phần mềm, ‘stress testing’ (kiểm thử áp lực) được sử dụng để làm gì?

A. Kiểm tra chức năng của phần mềm.
B. Kiểm tra hiệu suất của phần mềm dưới tải nặng hoặc điều kiện bất thường.
C. Tìm kiếm các lỗ hổng bảo mật trong phần mềm.
D. Kiểm tra tính tương thích của phần mềm với các hệ điều hành khác nhau.

126. Đâu là một ưu điểm của việc sử dụng cloud computing trong phát triển và triển khai phần mềm?

A. Giảm chi phí đầu tư vào phần cứng và cơ sở hạ tầng.
B. Tăng tính bảo mật của dữ liệu.
C. Dễ dàng quản lý dự án.
D. Không cần kết nối internet.

127. Trong mô hình Scrum, ai chịu trách nhiệm đảm bảo rằng nhóm phát triển tuân thủ các giá trị và nguyên tắc của Scrum?

A. Product Owner.
B. Scrum Master.
C. Development Team.
D. Project Manager.

128. Trong ngữ cảnh phát triển phần mềm, DRY (Don’t Repeat Yourself) là gì?

A. Một phương pháp để kiểm thử phần mềm.
B. Một nguyên tắc thiết kế khuyến khích tránh lặp lại code và logic.
C. Một công cụ để quản lý dự án.
D. Một phương pháp để quản lý rủi ro.

129. Đâu là một ưu điểm của việc sử dụng kiến trúc hướng dịch vụ (SOA)?

A. Dễ dàng phát triển các ứng dụng monolithic.
B. Tăng tính tái sử dụng của các dịch vụ và khả năng tích hợp giữa các hệ thống khác nhau.
C. Giảm độ phức tạp của hệ thống.
D. Tăng tính bảo mật của hệ thống.

130. Đâu là lợi ích chính của việc sử dụng continuous integration (CI) trong phát triển phần mềm?

A. Tự động tạo tài liệu kỹ thuật cho dự án.
B. Tự động hóa quá trình tích hợp code, giúp phát hiện lỗi sớm và giảm thiểu xung đột.
C. Tối ưu hóa hiệu suất của phần mềm.
D. Tự động triển khai phần mềm lên môi trường production.

131. Trong mô hình Agile, ‘daily scrum’ (hoặc ‘daily stand-up’) là gì?

A. Một buổi họp để lập kế hoạch cho sprint tiếp theo.
B. Một buổi họp hàng ngày ngắn gọn để các thành viên trong nhóm cập nhật tiến độ và thảo luận về các trở ngại.
C. Một buổi đánh giá sprint sau khi sprint kết thúc.
D. Một buổi họp để trình bày demo sản phẩm cho khách hàng.

132. Đâu là lợi ích chính của việc sử dụng Infrastructure as Code (IaC)?

A. Tự động tạo code cho ứng dụng.
B. Quản lý và cung cấp cơ sở hạ tầng một cách tự động thông qua code, giúp tăng tốc độ triển khai và giảm thiểu lỗi.
C. Tối ưu hóa hiệu suất của phần mềm.
D. Tự động phát hiện và sửa lỗi trong code.

133. Đâu là mục tiêu chính của việc thực hiện code review (đánh giá code)?

A. Tìm và sửa lỗi trong code, cải thiện chất lượng code và chia sẻ kiến thức giữa các thành viên trong nhóm.
B. Đánh giá hiệu suất làm việc của các lập trình viên.
C. Đảm bảo tuân thủ các tiêu chuẩn code.
D. Tìm kiếm các lỗ hổng bảo mật trong code.

134. Đâu là một nhược điểm của việc sử dụng mô hình nguyên mẫu (prototype model) trong phát triển phần mềm?

A. Khó khăn trong việc thu thập yêu cầu từ khách hàng.
B. Có thể dẫn đến thiết kế kém và khó bảo trì nếu nguyên mẫu được phát triển nhanh chóng mà không chú trọng đến chất lượng.
C. Tốn nhiều thời gian và chi phí để phát triển.
D. Không phù hợp với các dự án lớn và phức tạp.

135. Trong ngữ cảnh phát triển phần mềm, SOLID là viết tắt của những nguyên tắc thiết kế hướng đối tượng nào?

A. Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
B. Simple, Organized, Logical, Intuitive, Detailed.
C. Scalable, Optimized, Lightweight, Integrated, Distributed.
D. Secure, Obfuscated, Licensed, Isolated, Dependable.

136. Phương pháp luận Scrum sử dụng khái niệm ‘sprint’ để chỉ điều gì?

A. Một cuộc họp hàng ngày của nhóm phát triển.
B. Một khoảng thời gian ngắn (thường từ 1 đến 4 tuần) trong đó nhóm phát triển hoàn thành một lượng công việc cụ thể.
C. Một công cụ để quản lý dự án.
D. Một phương pháp để kiểm thử phần mềm.

137. Trong ngữ cảnh phát triển phần mềm, ‘technical debt’ (nợ kỹ thuật) là gì?

A. Số tiền nợ nhà cung cấp phần mềm.
B. Chi phí bảo trì phần mềm.
C. Hậu quả của việc đưa ra các quyết định thiết kế hoặc code không tối ưu trong ngắn hạn, dẫn đến chi phí cao hơn trong tương lai.
D. Chi phí đào tạo nhân viên về công nghệ mới.

138. Trong kiểm thử phần mềm, ‘regression testing’ (kiểm thử hồi quy) được sử dụng để làm gì?

A. Kiểm tra hiệu suất của phần mềm dưới tải nặng.
B. Đảm bảo rằng các thay đổi code mới không gây ra lỗi cho các chức năng hiện có.
C. Tìm kiếm các lỗ hổng bảo mật trong phần mềm.
D. Kiểm tra tính tương thích của phần mềm với các hệ điều hành khác nhau.

139. Phương pháp luận Kanban tập trung chủ yếu vào điều gì trong quản lý dự án phần mềm?

A. Lập kế hoạch chi tiết cho từng giai đoạn của dự án.
B. Giảm thiểu công việc đang thực hiện (Work in Progress – WIP) và tối ưu hóa luồng công việc.
C. Tăng cường sự tương tác giữa các thành viên trong nhóm.
D. Đảm bảo tuân thủ nghiêm ngặt theo quy trình đã định.

140. Đâu là mục tiêu chính của việc sử dụng containerization (ví dụ: Docker) trong phát triển và triển khai phần mềm?

A. Tăng tốc độ phát triển phần mềm.
B. Đóng gói ứng dụng và các phụ thuộc của nó vào một đơn vị duy nhất, giúp triển khai dễ dàng và nhất quán trên các môi trường khác nhau.
C. Giảm thiểu số lượng code cần viết.
D. Tăng cường tính bảo mật của phần mềm.

141. Trong kiểm thử phần mềm, ‘mutation testing’ (kiểm thử đột biến) được sử dụng để làm gì?

A. Kiểm tra hiệu suất của phần mềm dưới tải nặng.
B. Đánh giá chất lượng của các test case bằng cách tạo ra các phiên bản đột biến của code và xem liệu các test case có thể phát hiện ra chúng hay không.
C. Tìm kiếm các lỗ hổng bảo mật trong phần mềm.
D. Kiểm tra tính tương thích của phần mềm với các hệ điều hành khác nhau.

142. Đâu là mục tiêu chính của việc tái cấu trúc (refactoring) code?

A. Thêm chức năng mới vào phần mềm.
B. Sửa tất cả các lỗi trong code.
C. Cải thiện cấu trúc và tính dễ đọc của code mà không thay đổi chức năng bên ngoài.
D. Tăng tốc độ thực thi của phần mềm.

143. Đâu là một thách thức lớn khi phát triển phần mềm theo mô hình waterfall?

A. Khó khăn trong việc thích ứng với các thay đổi yêu cầu sau khi giai đoạn đầu đã hoàn thành.
B. Đòi hỏi sự tham gia liên tục của khách hàng.
C. Khó khăn trong việc quản lý rủi ro.
D. Yêu cầu đội ngũ phát triển phải có kỹ năng cao.

144. Đâu là một ưu điểm của việc sử dụng kiến trúc microservices?

A. Dễ dàng quản lý và triển khai các thành phần độc lập.
B. Giảm độ phức tạp của hệ thống.
C. Tăng tính bảo mật của hệ thống.
D. Giảm chi phí phát triển.

145. Đâu là lợi ích chính của việc sử dụng hệ thống kiểm soát phiên bản (version control system) như Git?

A. Tự động tạo tài liệu kỹ thuật cho dự án.
B. Quản lý và theo dõi các thay đổi của code, cho phép làm việc nhóm hiệu quả và phục hồi các phiên bản trước.
C. Tối ưu hóa hiệu suất của phần mềm.
D. Tự động phát hiện và sửa lỗi trong code.

146. Mục tiêu chính của việc sử dụng mô hình xoắn ốc (spiral model) trong phát triển phần mềm là gì?

A. Giảm thiểu chi phí phát triển phần mềm.
B. Tăng cường sự tham gia của khách hàng trong suốt quá trình phát triển.
C. Quản lý rủi ro và thích ứng với các thay đổi yêu cầu.
D. Đảm bảo thời gian phát triển phần mềm ngắn nhất có thể.

147. Đâu là mục tiêu chính của việc sử dụng UML (Unified Modeling Language)?

A. Tự động tạo code từ các sơ đồ.
B. Cung cấp một ngôn ngữ trực quan để mô hình hóa các hệ thống phần mềm.
C. Tối ưu hóa hiệu suất của phần mềm.
D. Quản lý cấu hình phần mềm.

148. Trong kiểm thử phần mềm, ‘black box testing’ (kiểm thử hộp đen) tập trung vào điều gì?

A. Cấu trúc code bên trong của phần mềm.
B. Các đường dẫn thực thi trong code.
C. Yêu cầu chức năng và đầu vào/đầu ra của phần mềm.
D. Hiệu suất của phần mềm dưới tải nặng.

149. Trong kiểm thử phần mềm, ‘unit testing’ (kiểm thử đơn vị) tập trung vào việc kiểm tra cái gì?

A. Toàn bộ hệ thống phần mềm.
B. Các module riêng lẻ của phần mềm.
C. Các thành phần riêng lẻ (ví dụ: hàm, lớp) của phần mềm.
D. Giao diện người dùng của phần mềm.

150. Trong ngữ cảnh phát triển phần mềm, YAGNI (You Ain’t Gonna Need It) là gì?

A. Một phương pháp để kiểm thử phần mềm.
B. Một nguyên tắc thiết kế khuyến khích chỉ thêm các tính năng cần thiết và tránh thêm các tính năng có thể không cần đến trong tương lai.
C. Một công cụ để quản lý dự án.
D. Một phương pháp để quản lý rủi ro.

Số câu đã làm: 0/0
Thời gian còn lại: 00:00:00
  • Đã làm
  • Chưa làm
  • Cần kiểm tra lại
© 2026 Trending New 24h • Tạo ra với GeneratePress

Bạn ơi!!! Để xem được kết quả, bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

HƯỚNG DẪN TÌM MẬT KHẨU

Đang tải nhiệm vụ...

Bước 1: Mở tab mới và truy cập Google.com. Sau đó tìm kiếm chính xác từ khóa sau:

Bước 2: Tìm và click vào kết quả có trang web giống như hình ảnh dưới đây:

Hướng dẫn tìm kiếm

Bước 3: Kéo xuống cuối trang đó để tìm mật khẩu như hình ảnh hướng dẫn:

Hướng dẫn lấy mật khẩu

Nếu tìm không thấy mã bạn có thể Đổi nhiệm vụ để lấy mã khác nhé.