Đề 8 – 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

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

1. Trong Scrum, vai trò 'Product Owner' chịu trách nhiệm chính về điều gì?

A. Quản lý nhóm phát triển và đảm bảo tiến độ dự án.
B. Đảm bảo chất lượng kỹ thuật của sản phẩm.
C. Xác định và quản lý Product Backlog, tối đa hóa giá trị sản phẩm.
D. Giải quyết các vấn đề kỹ thuật và hỗ trợ nhóm phát triển.

2. Yêu cầu phi chức năng (non-functional requirements) trong đặc tả yêu cầu phần mềm thường mô tả điều gì?

A. Các chức năng cụ thể mà phần mềm phải thực hiện.
B. Cách thức phần mềm hoạt động và tương tác với người dùng.
C. Các ràng buộc và thuộc tính chất lượng của phần mềm như hiệu suất, bảo mật, khả năng sử dụng.
D. Dữ liệu đầu vào và đầu ra của các chức năng phần mềm.

3. Phương pháp kiểm thử 'smoke testing' (kiểm thử khói) thường được thực hiện khi nào và nhằm mục đích gì?

A. Trước khi phát hành sản phẩm cuối cùng, để đảm bảo chất lượng tổng thể.
B. Sau mỗi lần tích hợp mã nguồn mới, để kiểm tra nhanh các chức năng chính và tính ổn định cơ bản.
C. Trong giai đoạn lập kế hoạch dự án, để xác định phạm vi kiểm thử.
D. Chỉ khi có lỗi nghiêm trọng được báo cáo từ người dùng cuối.

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

A. Kiểm tra chức năng của phần mềm dưới điều kiện tải trọng bình thường.
B. Đánh giá khả năng đáp ứng và độ ổn định của hệ thống khi chịu tải trọng tăng dần.
C. Tìm ra giới hạn chịu tải tối đa của hệ thống trước khi xảy ra sự cố.
D. Kiểm tra bảo mật của hệ thống trước các cuộc tấn công từ chối dịch vụ.

5. Nguyên tắc 'DRY' (Don't Repeat Yourself) trong lập trình có nghĩa là gì?

A. Viết mã nguồn rõ ràng và dễ đọc.
B. Tránh lặp lại mã nguồn, tối ưu hóa việc tái sử dụng mã.
C. Kiểm thử mã nguồn kỹ lưỡng trước khi phát hành.
D. Giao tiếp rõ ràng và hiệu quả trong nhóm phát triển.

6. Phương pháp ước lượng 'Planning Poker' thường được sử dụng trong Agile để làm gì?

A. Xác định phạm vi dự án ban đầu.
B. Ước lượng nỗ lực hoặc thời gian cần thiết để hoàn thành các công việc trong Sprint Backlog.
C. Lập kế hoạch kiểm thử cho Sprint.
D. Đánh giá hiệu suất của các thành viên trong nhóm.

7. 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ử độc lập.
C. Khách hàng hoặc người dùng cuối.
D. Quản lý dự án.

8. Phương pháp 'pair programming' (lập trình cặp đôi) trong Agile mang lại lợi ích chính nào?

A. Giảm tổng thời gian phát triển dự án.
B. Nâng cao chất lượng mã nguồn thông qua việc xem xét mã liên tục và chia sẻ kiến thức.
C. Giảm chi phí nhân công.
D. Tăng cường tính bảo mật của hệ thống.

9. 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. Trước khi phát hành phiên bản phần mềm mới lần đầu.
B. Sau khi thực hiện các thay đổi hoặc sửa lỗi trong mã nguồn.
C. Trong giai đoạn lập kế hoạch và thiết kế phần mềm.
D. Chỉ khi phát hiện lỗi nghiêm trọng trong quá trình sử dụng.

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

A. Chi phí đầu tư ban đầu cho hạ tầng kỹ thuật.
B. Lượng thời gian và công sức cần thiết để sửa lỗi phần mềm.
C. 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.
D. Các khoản nợ tài chính phát sinh trong quá trình phát triển dự án.

11. Trong quy trình phát triển phần mềm, 'code review' (đánh giá mã nguồn) mang lại lợi ích nào?

A. Tăng tốc độ viết mã.
B. Giảm số lượng lỗi và cải thiện chất lượng mã nguồn.
C. Giảm chi phí phát triển dự án.
D. Thay thế kiểm thử phần mềm.

12. Loại biểu đồ UML nào thường được sử dụng để mô hình hóa các ca sử dụng (use cases) và tương tác giữa người dùng và hệ thống?

A. Biểu đồ lớp (Class Diagram).
B. Biểu đồ tuần tự (Sequence Diagram).
C. Biểu đồ ca sử dụng (Use Case Diagram).
D. Biểu đồ hoạt động (Activity Diagram).

13. Biểu đồ tuần tự (Sequence Diagram) trong UML thường được sử dụng để mô hình hóa khía cạnh nào của hệ thống?

A. Cấu trúc tĩnh của các lớp và mối quan hệ giữa chúng.
B. Luồng điều khiển và trình tự các hoạt động trong một quy trình.
C. Sự tương tác theo thời gian giữa các đối tượng hoặc thành phần trong hệ thống.
D. Các thành phần vật lý và cấu trúc triển khai của hệ thống.

14. Khái niệm 'coupling' (kết nối) và 'cohesion' (liên kết nội tại) trong thiết kế phần mềm liên quan đến điều gì?

A. Hiệu suất và khả năng mở rộng của hệ thống.
B. Mức độ bảo mật và an toàn của dữ liệu.
C. Mức độ độc lập và sự liên quan của các module hoặc thành phần trong hệ thống.
D. Giao diện người dùng và trải nghiệm người dùng.

15. Phương pháp kiểm thử 'white-box testing' (kiểm thử hộp trắng) khác biệt với 'black-box testing' (kiểm thử hộp đen) ở điểm nào?

A. White-box testing chỉ kiểm tra giao diện người dùng, còn black-box testing kiểm tra chức năng bên trong.
B. White-box testing dựa trên kiến thức về cấu trúc bên trong mã nguồn, còn black-box testing chỉ dựa trên yêu cầu và chức năng bên ngoài.
C. White-box testing chỉ được thực hiện bởi lập trình viên, còn black-box testing được thực hiện bởi kiểm thử viên.
D. White-box testing tập trung vào hiệu suất, còn black-box testing tập trung vào chức năng.

16. Công cụ quản lý dự án phần mềm Jira thường được sử dụng để làm gì?

A. Viết mã nguồn và biên dịch chương trình.
B. Thiết kế giao diện người dùng.
C. Theo dõi lỗi, quản lý công việc và quy trình làm việc dự án.
D. Kiểm thử hiệu suất và khả năng chịu tải của hệ thống.

17. Công cụ Git được sử dụng chủ yếu cho mục đích gì trong phát triển phần mềm?

A. Quản lý cơ sở dữ liệu.
B. Kiểm soát phiên bản mã nguồn.
C. Thiết kế giao diện người dùng.
D. Kiểm thử tự động.

18. Loại tấn công bảo mật nào thường lợi dụng các lỗ hổng trong mã nguồn web để chèn mã độc hại vào trang web, ảnh hưởng đến người dùng khác?

A. Tấn công từ chối dịch vụ (Denial of Service - DoS).
B. Tấn công SQL Injection.
C. Tấn công Cross-Site Scripting (XSS).
D. Tấn công Man-in-the-Middle (MITM).

19. Phương pháp phát triển phần mềm 'DevOps' nhấn mạnh vào điều gì?

A. Tách biệt hoàn toàn giữa bộ phận phát triển (Development) và vận hành (Operations).
B. Tự động hóa quy trình phát triển và triển khai phần mềm, tăng cường sự hợp tác giữa phát triển và vận hành.
C. Tập trung vào việc lập kế hoạch chi tiết và tài liệu hóa đầy đủ trước khi bắt đầu phát triển.
D. Ưu tiên kiểm thử thủ công và giảm thiểu sử dụng công cụ tự động hóa.

20. Phương pháp kiểm thử hộp đen (Black-box testing) tập trung chủ yếu vào việc kiểm tra khía cạnh nào của phần mềm?

A. Cấu trúc bên trong và logic của mã nguồn.
B. Giao diện người dùng và chức năng bên ngoài.
C. Hiệu suất và khả năng mở rộng của hệ thống.
D. Mức độ bảo mật và an toàn của dữ liệu.

21. Trong quy trình quản lý cấu hình phần mềm, 'version control' (kiểm soát phiên bản) giúp giải quyết vấn đề chính nào?

A. Quản lý tài chính và ngân sách dự án.
B. Theo dõi và quản lý sự thay đổi của mã nguồn và tài liệu.
C. Phân công công việc và giao tiếp giữa các thành viên nhóm.
D. Đảm bảo chất lượng và hiệu suất của phần mềm.

22. Mô hình thác nước (Waterfall) trong quy trình phát triển phần mềm thường được áp dụng tốt nhất khi nào?

A. Khi yêu cầu dự án không rõ ràng và có thể thay đổi thường xuyên.
B. Khi dự án có quy mô lớn và phức tạp với nhiều thành viên tham gia.
C. Khi yêu cầu dự án được hiểu rõ và ổn định ngay từ đầu.
D. Khi thời gian hoàn thành dự án là yếu tố linh hoạt nhất.

23. Nguyên tắc 'SOLID' trong thiết kế hướng đối tượng bao gồm chữ 'L' đại diện cho nguyên tắc nào?

A. Liskov Substitution Principle (Nguyên tắc thay thế Liskov)
B. Law of Demeter (Luật Demeter)
C. Loose Coupling (Liên kết lỏng lẻo)
D. Least Knowledge Principle (Nguyên tắc ít kiến thức nhất)

24. Nguyên tắc 'KISS' (Keep It Simple, Stupid) trong thiết kế phần mềm khuyến khích điều gì?

A. Sử dụng các công nghệ phức tạp và tiên tiến nhất.
B. Thiết kế hệ thống càng phức tạp càng tốt để đáp ứng mọi yêu cầu.
C. Thiết kế đơn giản, dễ hiểu và dễ bảo trì.
D. Tập trung vào hiệu suất tối ưu ngay cả khi làm tăng độ phức tạp.

25. Kỹ thuật 'refactoring' (tái cấu trúc mã) trong phát triển phần mềm nhằm mục đích chính là gì?

A. Thêm chức năng mới vào phần mềm.
B. Sửa lỗi và cải thiện hiệu suất của phần mềm.
C. Cải thiện cấu trúc mã nguồn mà không thay đổi chức năng bên ngoài.
D. Tối ưu hóa giao diện người dùng của phần mềm.

26. Trong mô hình Agile, 'Sprint' là gì?

A. Một cuộc họp hàng ngày để theo dõi tiến độ dự án.
B. Một giai đoạn phát triển ngắn, lặp đi lặp lại, thường kéo dài từ 2 đến 4 tuần.
C. Một tài liệu mô tả chi tiết các yêu cầu của dự án.
D. Một công cụ để quản lý công việc và theo dõi lỗi.

27. Kiến trúc microservices có ưu điểm nổi bật nào so với kiến trúc monolithic (nguyên khối)?

A. Đơn giản trong triển khai và quản lý.
B. Dễ dàng mở rộng và nâng cấp độc lập từng thành phần.
C. Hiệu suất tổng thể hệ thống cao hơn.
D. Chi phí phát triển ban đầu thấp hơn.

28. Trong mô hình Spiral, yếu tố 'risk analysis' (phân tích rủi ro) được nhấn mạnh ở mỗi vòng lặp (phase) để làm gì?

A. Đảm bảo tiến độ dự án theo kế hoạch.
B. Xác định và giảm thiểu các rủi ro tiềm ẩn có thể ảnh hưởng đến dự án.
C. Tối ưu hóa chi phí phát triển phần mềm.
D. Nâng cao chất lượng mã nguồn.

29. Trong mô hình Kanban, 'Work in Progress (WIP) limits' (giới hạn công việc đang thực hiện) có vai trò gì?

A. Tăng số lượng công việc mà nhóm có thể hoàn thành trong một khoảng thời gian.
B. Giảm thời gian chờ đợi giữa các giai đoạn phát triển.
C. Tập trung vào việc hoàn thành công việc hiện tại, tránh bắt đầu quá nhiều công việc cùng lúc, cải thiện luồng công việc.
D. Đảm bảo mỗi thành viên trong nhóm có đủ công việc để làm.

30. Mục tiêu chính của việc kiểm thử tích hợp (integration testing) là gì?

A. Kiểm tra từng đơn vị (module) mã nguồn riêng lẻ.
B. Kiểm tra sự tương tác và giao tiếp giữa các module hoặc thành phần khác nhau của hệ thống.
C. Kiểm tra toàn bộ hệ thống để đảm bảo đáp ứng yêu cầu người dùng.
D. Kiểm tra giao diện người dùng và trải nghiệm người dùng.

1 / 30

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

Tags: Bộ đề 6

1. Trong Scrum, vai trò `Product Owner` chịu trách nhiệm chính về điều gì?

2 / 30

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

Tags: Bộ đề 6

2. Yêu cầu phi chức năng (non-functional requirements) trong đặc tả yêu cầu phần mềm thường mô tả điều gì?

3 / 30

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

Tags: Bộ đề 6

3. Phương pháp kiểm thử `smoke testing` (kiểm thử khói) thường được thực hiện khi nào và nhằm mục đích gì?

4 / 30

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

Tags: Bộ đề 6

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

5 / 30

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

Tags: Bộ đề 6

5. Nguyên tắc `DRY` (Don`t Repeat Yourself) trong lập trình có nghĩa là gì?

6 / 30

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

Tags: Bộ đề 6

6. Phương pháp ước lượng `Planning Poker` thường được sử dụng trong Agile để làm gì?

7 / 30

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

Tags: Bộ đề 6

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

8 / 30

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

Tags: Bộ đề 6

8. Phương pháp `pair programming` (lập trình cặp đôi) trong Agile mang lại lợi ích chính nào?

9 / 30

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

Tags: Bộ đề 6

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

10 / 30

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

Tags: Bộ đề 6

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

11 / 30

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

Tags: Bộ đề 6

11. Trong quy trình phát triển phần mềm, `code review` (đánh giá mã nguồn) mang lại lợi ích nào?

12 / 30

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

Tags: Bộ đề 6

12. Loại biểu đồ UML nào thường được sử dụng để mô hình hóa các ca sử dụng (use cases) và tương tác giữa người dùng và hệ thống?

13 / 30

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

Tags: Bộ đề 6

13. Biểu đồ tuần tự (Sequence Diagram) trong UML thường được sử dụng để mô hình hóa khía cạnh nào của hệ thống?

14 / 30

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

Tags: Bộ đề 6

14. Khái niệm `coupling` (kết nối) và `cohesion` (liên kết nội tại) trong thiết kế phần mềm liên quan đến điều gì?

15 / 30

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

Tags: Bộ đề 6

15. Phương pháp kiểm thử `white-box testing` (kiểm thử hộp trắng) khác biệt với `black-box testing` (kiểm thử hộp đen) ở điểm nào?

16 / 30

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

Tags: Bộ đề 6

16. Công cụ quản lý dự án phần mềm Jira thường được sử dụng để làm gì?

17 / 30

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

Tags: Bộ đề 6

17. Công cụ Git được sử dụng chủ yếu cho mục đích gì trong phát triển phần mềm?

18 / 30

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

Tags: Bộ đề 6

18. Loại tấn công bảo mật nào thường lợi dụng các lỗ hổng trong mã nguồn web để chèn mã độc hại vào trang web, ảnh hưởng đến người dùng khác?

19 / 30

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

Tags: Bộ đề 6

19. Phương pháp phát triển phần mềm `DevOps` nhấn mạnh vào điều gì?

20 / 30

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

Tags: Bộ đề 6

20. Phương pháp kiểm thử hộp đen (Black-box testing) tập trung chủ yếu vào việc kiểm tra khía cạnh nào của phần mềm?

21 / 30

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

Tags: Bộ đề 6

21. Trong quy trình quản lý cấu hình phần mềm, `version control` (kiểm soát phiên bản) giúp giải quyết vấn đề chính nào?

22 / 30

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

Tags: Bộ đề 6

22. Mô hình thác nước (Waterfall) trong quy trình phát triển phần mềm thường được áp dụng tốt nhất khi nào?

23 / 30

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

Tags: Bộ đề 6

23. Nguyên tắc `SOLID` trong thiết kế hướng đối tượng bao gồm chữ `L` đại diện cho nguyên tắc nào?

24 / 30

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

Tags: Bộ đề 6

24. Nguyên tắc `KISS` (Keep It Simple, Stupid) trong thiết kế phần mềm khuyến khích điều gì?

25 / 30

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

Tags: Bộ đề 6

25. Kỹ thuật `refactoring` (tái cấu trúc mã) trong phát triển phần mềm nhằm mục đích chính là gì?

26 / 30

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

Tags: Bộ đề 6

26. Trong mô hình Agile, `Sprint` là gì?

27 / 30

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

Tags: Bộ đề 6

27. Kiến trúc microservices có ưu điểm nổi bật nào so với kiến trúc monolithic (nguyên khối)?

28 / 30

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

Tags: Bộ đề 6

28. Trong mô hình Spiral, yếu tố `risk analysis` (phân tích rủi ro) được nhấn mạnh ở mỗi vòng lặp (phase) để làm gì?

29 / 30

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

Tags: Bộ đề 6

29. Trong mô hình Kanban, `Work in Progress (WIP) limits` (giới hạn công việc đang thực hiện) có vai trò gì?

30 / 30

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

Tags: Bộ đề 6

30. Mục tiêu chính của việc kiểm thử tích hợp (integration testing) là gì?