Đề 13 – Bài tập, đề thi trắc nghiệm online Công nghệ phần mềm

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Công nghệ phần mềm

Đề 13 - Bài tập, đề thi trắc nghiệm online Công nghệ phần mềm

1. Phương pháp 'pair programming' (lập trình cặp đôi) mang lại lợi ích gì?

A. Giảm chi phí nhân công
B. Tăng tốc độ viết code
C. Cải thiện chất lượng code và chia sẻ kiến thức
D. Giảm sự phụ thuộc vào một developer duy nhất

2. 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 thường xuyên?

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

3. Khi nào thì mô hình phát triển phần mềm 'Spiral' (xoắn ốc) được ưu tiên sử dụng?

A. Khi yêu cầu rất rõ ràng và ổn định
B. Khi dự án có rủi ro cao và yêu cầu quản lý rủi ro chặt chẽ
C. Khi thời gian phát triển là yếu tố quan trọng nhất
D. Khi đội phát triển có kinh nghiệm hạn chế

4. Mục tiêu của việc 'code review' (đánh giá code) là gì?

A. Đánh giá hiệu năng của code
B. Tìm lỗi và cải thiện chất lượng code
C. Đánh giá tốc độ lập trình của developer
D. Xác định người viết code

5. Trong ngữ cảnh kiểm thử hiệu năng, 'load testing' (kiểm thử tải) nhằm mục đích gì?

A. Đánh giá khả năng chịu tải tối đa của hệ thống
B. Mô phỏng tải trọng người dùng dự kiến để kiểm tra hiệu năng
C. Tìm ra điểm yếu hiệu năng của hệ thống khi chịu tải lớn
D. Kiểm tra bảo mật khi hệ thống chịu tải

6. 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. Sau khi phát hiện lỗi và sửa lỗi
B. Trước khi phát hành phần mềm
C. Trong giai đoạn phân tích yêu cầu
D. Khi thiết kế giao diện người dùng

7. Phương pháp thiết kế hướng đối tượng (Object-Oriented Design) tập trung vào việc tổ chức code dựa trên yếu tố nào?

A. Chức năng của chương trình
B. Cấu trúc dữ liệu
C. Đối tượng và tương tác giữa các đối tượng
D. Luồng điều khiển của chương trình

8. Công cụ SonarQube thường được sử dụng cho mục đích gì trong phát triển phần mềm?

A. Quản lý cơ sở dữ liệu
B. Phân tích chất lượng code và phát hiện lỗi
C. Kiểm thử giao diện người dùng
D. Triển khai ứng dụng web

9. Đâu là một yếu tố quan trọng để đảm bảo tính bảo trì của phần mềm?

A. Sử dụng công nghệ mới nhất
B. Viết code phức tạp và tối ưu hiệu năng
C. Code rõ ràng, dễ đọc và có cấu trúc tốt
D. Phát triển phần mềm nhanh chóng để kịp tiến độ

10. Trong quy trình CI/CD, 'Continuous Integration' (Tích hợp liên tục) tập trung vào giai đoạn nào?

A. Triển khai phần mềm lên môi trường production
B. Tự động hóa quá trình build và kiểm thử code
C. Giám sát hiệu năng phần mềm sau triển khai
D. Thu thập phản hồi từ người dùng cuối

11. Kiểm thử hộp đen (Black-box testing) dựa trên yếu tố nào để thiết kế test case?

A. Cấu trúc code bên trong của phần mềm
B. Yêu cầu và đặc tả chức năng của phần mềm
C. Hiệu năng của phần mềm trên các môi trường khác nhau
D. Ý kiến chủ quan của người kiểm thử

12. Đâu là giai đoạn đầu tiên trong quy trình phát triển phần mềm theo mô hình thác nước?

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

13. Phương pháp luận Agile tập trung vào điều gì?

A. Lập kế hoạch chi tiết và tuân thủ nghiêm ngặt kế hoạch
B. Linh hoạt, thích ứng và phản hồi nhanh với thay đổi
C. Tài liệu hóa đầy đủ mọi khía cạnh của dự án
D. Phân chia công việc rõ ràng và ít tương tác giữa các thành viên

14. Trong kiểm thử bảo mật, 'penetration testing' (kiểm thử xâm nhập) nhằm mục đích gì?

A. Kiểm tra hiệu năng của hệ thống bảo mật
B. Đánh giá lỗ hổng bảo mật bằng cách mô phỏng tấn công
C. Xác minh tính tuân thủ các tiêu chuẩn bảo mật
D. Kiểm tra khả năng phục hồi sau sự cố bảo mật

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

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

16. Mục tiêu của giai đoạn 'requirements elicitation' (thu thập yêu cầu) trong quy trình phát triển phần mềm là gì?

A. Thiết kế giao diện người dùng
B. Xác định và ghi lại yêu cầu của người dùng và các bên liên quan
C. Lập kế hoạch kiểm thử
D. Viết code ban đầu của phần mềm

17. Đâu là một ví dụ về 'code smell' (mùi code) trong lập trình?

A. Code có comment rõ ràng
B. Hàm quá dài và phức tạp
C. Code được kiểm thử đầy đủ
D. Code tuân thủ coding standards

18. Nguyên tắc 'DRY' (Don't Repeat Yourself) trong lập trình khuyến khích điều gì?

A. Viết code chi tiết và tường minh
B. Tái sử dụng code và tránh lặp lại code
C. Tập trung vào tốc độ phát triển
D. Viết code ngắn gọn và khó hiểu

19. Đâu không phải là một loại kiểm thử phi chức năng?

A. Kiểm thử hiệu năng (Performance testing)
B. Kiểm thử bảo mật (Security testing)
C. Kiểm thử tích hợp (Integration testing)
D. Kiểm thử khả năng sử dụng (Usability testing)

20. Khái niệm 'design pattern' (mẫu thiết kế) trong công nghệ phần mềm là gì?

A. Một loại ngôn ngữ lập trình mới
B. Một framework để phát triển web
C. Giải pháp thiết kế đã được kiểm chứng cho các vấn đề thường gặp
D. Một công cụ quản lý dự án

21. 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. Kiểm thử viên
C. Khách hàng hoặc người dùng cuối
D. Quản lý dự án

22. Đâu là lợi ích chính của việc sử dụng kiến trúc microservices?

A. Giảm chi phí phát triển ban đầu
B. Tăng tính ổn định và khả năng mở rộng của ứng dụng
C. Đơn giản hóa việc triển khai và bảo trì
D. Giảm sự phức tạp của code

23. 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 Word
B. Microsoft Project
C. Jira
D. Microsoft Excel

24. Trong mô hình chữ V, giai đoạn 'Unit Testing' (kiểm thử đơn vị) tương ứng với giai đoạn nào trong pha yêu cầu?

A. Phân tích hệ thống
B. Thiết kế kiến trúc
C. Thiết kế module
D. Thu thập yêu cầu

25. Đâu là một thách thức chính khi phát triển phần mềm nhúng (embedded software)?

A. Thiếu công cụ phát triển
B. Giới hạn về tài nguyên phần cứng (bộ nhớ, CPU)
C. Khó khăn trong việc kiểm thử
D. Ít ngôn ngữ lập trình hỗ trợ

26. Công cụ quản lý phiên bản Git được sử dụng để làm gì?

A. Viết code phần mềm
B. Kiểm thử phần mềm
C. Theo dõi và quản lý các thay đổi của code
D. Triển khai phần mềm lên server

27. Trong kiến trúc phần mềm, 'layering' (phân lớp) giúp đạt được mục tiêu nào?

A. Tăng hiệu năng xử lý
B. Giảm độ phức tạp và tăng tính module hóa
C. Đơn giản hóa việc triển khai
D. Giảm chi phí phát triển

28. Nguyên tắc SOLID nào khuyến khích việc một class chỉ nên có một và chỉ một lý do để thay đổi?

A. Single Responsibility Principle (SRP)
B. Open/Closed Principle (OCP)
C. Liskov Substitution Principle (LSP)
D. Interface Segregation Principle (ISP)

29. Khái niệm 'technical debt' (nợ kỹ thuật) trong công nghệ phần mềm đề cập đến điều gì?

A. Số tiền nợ ngân hàng để phát triển phần mềm
B. Chi phí bảo trì phần mềm sau khi phát hành
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. Thời gian cần thiết để học các công nghệ mới

30. Trong kiểm thử phần mềm, 'boundary value analysis' (phân tích giá trị biên) là kỹ thuật thuộc loại kiểm thử nào?

A. Kiểm thử hộp trắng
B. Kiểm thử hộp đen
C. Kiểm thử hiệu năng
D. Kiểm thử bảo mật

1 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

1. Phương pháp `pair programming` (lập trình cặp đôi) mang lại lợi ích gì?

2 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

2. 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 thường xuyên?

3 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

3. Khi nào thì mô hình phát triển phần mềm `Spiral` (xoắn ốc) được ưu tiên sử dụng?

4 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

4. Mục tiêu của việc `code review` (đánh giá code) là gì?

5 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

5. Trong ngữ cảnh kiểm thử hiệu năng, `load testing` (kiểm thử tải) nhằm mục đích gì?

6 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

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

7 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

7. Phương pháp thiết kế hướng đối tượng (Object-Oriented Design) tập trung vào việc tổ chức code dựa trên yếu tố nào?

8 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

8. Công cụ SonarQube thường được sử dụng cho mục đích gì trong phát triển phần mềm?

9 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

9. Đâu là một yếu tố quan trọng để đảm bảo tính bảo trì của phần mềm?

10 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

10. Trong quy trình CI/CD, `Continuous Integration` (Tích hợp liên tục) tập trung vào giai đoạn nào?

11 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

11. Kiểm thử hộp đen (Black-box testing) dựa trên yếu tố nào để thiết kế test case?

12 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

12. Đâu là giai đoạn đầu tiên trong quy trình phát triển phần mềm theo mô hình thác nước?

13 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

13. Phương pháp luận Agile tập trung vào điều gì?

14 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

14. Trong kiểm thử bảo mật, `penetration testing` (kiểm thử xâm nhập) nhằm mục đích gì?

15 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

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

16 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

16. Mục tiêu của giai đoạn `requirements elicitation` (thu thập yêu cầu) trong quy trình phát triển phần mềm là gì?

17 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

17. Đâu là một ví dụ về `code smell` (mùi code) trong lập trình?

18 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

18. Nguyên tắc `DRY` (Don`t Repeat Yourself) trong lập trình khuyến khích điều gì?

19 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

19. Đâu không phải là một loại kiểm thử phi chức năng?

20 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

20. Khái niệm `design pattern` (mẫu thiết kế) trong công nghệ phần mềm là gì?

21 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

21. 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?

22 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

22. Đâu là lợi ích chính của việc sử dụng kiến trúc microservices?

23 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

23. 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?

24 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

24. Trong mô hình chữ V, giai đoạn `Unit Testing` (kiểm thử đơn vị) tương ứng với giai đoạn nào trong pha yêu cầu?

25 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

25. Đâu là một thách thức chính khi phát triển phần mềm nhúng (embedded software)?

26 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

26. Công cụ quản lý phiên bản Git được sử dụng để làm gì?

27 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

27. Trong kiến trúc phần mềm, `layering` (phân lớp) giúp đạt được mục tiêu nào?

28 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

28. Nguyên tắc SOLID nào khuyến khích việc một class chỉ nên có một và chỉ một lý do để thay đổi?

29 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

29. Khái niệm `technical debt` (nợ kỹ thuật) trong công nghệ phần mềm đề cập đến điều gì?

30 / 30

Category: Công nghệ phần mềm

Tags: Bộ đề 13

30. Trong kiểm thử phần mềm, `boundary value analysis` (phân tích giá trị biên) là kỹ thuật thuộc loại kiểm thử nào?