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

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

1. Trong lập trình hướng đối tượng, 'inheritance' (tính kế thừa) cho phép lớp con làm gì?

A. Tăng tốc độ thực thi của chương trình.
B. Kế thừa các thuộc tính và phương thức từ lớp cha, tái sử dụng mã nguồn và xây dựng hệ thống phân cấp lớp.
C. Ẩn giấu thông tin và hành vi bên trong đối tượng.
D. Thay đổi hành vi của đối tượng trong thời gian chạy.

2. 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 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.

3. Trong mô hình 'V-model' (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 'Requirements' (Yêu cầu)?

A. System Design (Thiết kế hệ thống).
B. Acceptance Testing (Kiểm thử chấp nhận).
C. Component Design (Thiết kế thành phần).
D. Requirements Analysis (Phân tích yêu cầu).

4. Đâu là nhược điểm chính của mô hình phát triển phần mềm 'Spiral' (Xoắn ốc)?

A. Dễ dàng quản lý và theo dõi tiến độ dự án.
B. Thích hợp cho dự án có yêu cầu không rõ ràng và rủi ro cao.
C. Có thể trở nên phức tạp và tốn kém nếu không được quản lý chặt chẽ.
D. Giảm thiểu rủi ro do kiểm thử được thực hiện ở mỗi vòng lặp.

5. Trong kiểm thử phần mềm, 'Black box testing' (Kiểm thử hộp đen) tập trung vào khía cạnh nào?

A. Cấu trúc mã nguồn bên trong của phần mềm.
B. Hành vi và chức năng của phần mềm từ góc độ người dùng.
C. Hiệu suất và khả năng chịu tải của phần mềm.
D. Tính bảo mật của phần mềm trước các tấn công mạng.

6. Phương pháp phát triển phần mềm nào ưu tiên sự linh hoạt, khả năng thích ứng với thay đổi và làm việc nhóm chặt chẽ?

A. Waterfall
B. Agile
C. V-Model
D. Spiral

7. Khái niệm 'Continuous Integration' (Tích hợp liên tục) trong DevOps là gì?

A. Quá trình triển khai phần mềm lên môi trường production một cách liên tục.
B. Thực hành tích hợp mã nguồn từ các thành viên trong nhóm phát triển thường xuyên và tự động.
C. Liên tục thu thập và phân tích yêu cầu từ người dùng.
D. Kiểm thử phần mềm liên tục trong suốt vòng đời phát triển.

8. Công cụ nào sau đây thường được sử dụng để tự động hóa quá trình 'build' (xây dựng), 'test' (kiểm thử) và 'deploy' (triển khai) phần mềm?

A. Microsoft Word
B. Jenkins
C. Adobe Photoshop
D. MySQL

9. Trong kiến trúc phần mềm, 'Layered architecture' (Kiến trúc phân lớp) có ưu điểm chính nào?

A. Tăng tốc độ phát triển và triển khai phần mềm.
B. Đơn giản hóa việc phát triển, bảo trì và mở rộng hệ thống bằng cách chia thành các lớp chức năng rõ ràng.
C. Đảm bảo hiệu suất tối ưu cho các ứng dụng phức tạp.
D. Cho phép các thành phần của hệ thống giao tiếp trực tiếp với nhau mà không cần trung gian.

10. Mục tiêu chính của 'Performance testing' (Kiểm thử hiệu suất) là gì?

A. Tìm ra lỗi chức năng trong phần mềm.
B. Đảm bảo phần mềm đáp ứng các yêu cầu về tốc độ, khả năng chịu tải, và độ ổn định trong các điều kiện khác nhau.
C. Kiểm tra tính bảo mật của phần mềm trước các tấn công.
D. Đánh giá giao diện người dùng và trải nghiệm người dùng.

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

A. Quản lý cơ sở dữ liệu NoSQL.
B. Quản lý phiên bản mã nguồn (version control).
C. Kiểm thử tự động giao diện người dùng.
D. Triển khai ứng dụng lên đám mây.

12. 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. Microsoft Excel
D. PowerPoint

13. Trong ngữ cảnh 'Database' (Cơ sở dữ liệu), ACID properties (Thuộc tính ACID) là viết tắt của các đặc tính nào?

A. Atomicity, Consistency, Isolation, Durability
B. Accuracy, Completeness, Integrity, Dependability
C. Availability, Capacity, Integrity, Durability
D. Authorization, Confidentiality, Integrity, Availability

14. Đâu là mục tiêu chính của giai đoạn 'Thu thập yêu cầu' trong quy trình phát triển phần mềm?

A. Viết mã nguồn ban đầu cho ứng dụng.
B. Xác định và ghi lại chi tiết những gì người dùng và các bên liên quan mong đợi từ phần mềm.
C. Kiểm thử phần mềm để tìm lỗi trước khi triển khai.
D. Triển khai phần mềm đã hoàn thiện cho người dùng cuối.

15. Trong kiểm thử phần mềm, 'Unit testing' (Kiểm thử đơn vị) nhằm mục đích kiểm tra điều gì?

A. Toàn bộ hệ thống phần mềm sau khi tích hợp tất cả các thành phần.
B. Từng đơn vị mã nguồn nhỏ nhất, độc lập (ví dụ: hàm, phương thức, lớp).
C. Giao diện người dùng và trải nghiệm người dùng.
D. Khả năng tương tác giữa các hệ thống phần mềm khác nhau.

16. Trong kiến trúc 'Microservices', mỗi 'microservice' thường được thiết kế để thực hiện chức năng gì?

A. Thực hiện tất cả các chức năng của ứng dụng.
B. Thực hiện một chức năng nghiệp vụ cụ thể và độc lập.
C. Quản lý toàn bộ cơ sở dữ liệu của ứng dụng.
D. Xử lý tất cả các yêu cầu từ người dùng cuối.

17. Đâu là một ví dụ về 'Non-functional requirement' (Yêu cầu phi chức năng) của phần mềm?

A. Người dùng có thể đăng nhập vào hệ thống bằng tên người dùng và mật khẩu.
B. Hệ thống phải phản hồi yêu cầu của người dùng trong vòng 2 giây.
C. Hệ thống phải cho phép người dùng tạo, sửa, xóa dữ liệu.
D. Hệ thống phải tính toán và hiển thị báo cáo doanh thu.

18. Trong 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 đề nào sau đây?

A. Tối ưu hóa hiệu suất của phần mềm sau khi triển khai.
B. Quản lý và theo dõi các thay đổi trong mã nguồn và các tài liệu liên quan theo thời gian.
C. Đảm bảo phần mềm tương thích với nhiều hệ điều hành khác nhau.
D. Tự động hóa quy trình kiểm thử phần mềm.

19. 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 gì?

A. Tự động sinh mã nguồn từ yêu cầu của người dùng.
B. Phát hiện lỗi và cải thiện chất lượng mã nguồn thông qua việc kiểm tra bởi đồng nghiệp.
C. Tối ưu hóa hiệu suất của phần mềm trước khi triển khai.
D. Quản lý và theo dõi tiến độ phát triển dự án.

20. 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. Chi phí để duy trì cơ sở hạ tầng kỹ thuật cho phần mềm.
B. Hậu quả của việc đưa ra các quyết định thiết kế hoặc phát triển phần mềm không tối ưu trong ngắn hạn.
C. Số tiền nợ nhà cung cấp dịch vụ và công cụ phần mềm.
D. Thời gian cần thiết để sửa lỗi và vá lỗ hổng bảo mật trong phần mềm.

21. Khái niệm 'Containerization' (Công nghệ container) mang lại lợi ích chính nào trong triển khai ứng dụng?

A. Tăng tốc độ truy cập cơ sở dữ liệu.
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 và đơn giản hóa quá trình triển khai.
C. Tối ưu hóa hiệu suất của ứng dụng trên thiết bị di động.
D. Cải thiện giao diện người dùng và trải nghiệm người dùng.

22. Trong lập trình hướng đối tượng (OOP), 'encapsulation' (tính đóng gói) mang lại lợi ích chính nào?

A. Tăng tốc độ thực thi của chương trình.
B. Giảm sự phức tạp và tăng tính bảo trì bằng cách ẩn giấu thông tin và hành vi bên trong đối tượng.
C. Cho phép kế thừa thuộc tính và phương thức giữa các lớp.
D. Cải thiện khả năng tái sử dụng mã nguồn thông qua đa hình.

23. Công cụ 'Docker' được sử dụng chủ yếu cho mục đích nào trong phát triển và triển khai phần mềm?

A. Quản lý cơ sở dữ liệu quan hệ.
B. Đóng gói và phân phối ứng dụng cùng với các phụ thuộc của nó trong các container.
C. Phân tích và kiểm thử hiệu suất của ứng dụng.
D. Thiết kế giao diện người dùng (UI) cho ứng dụng web.

24. SOLID là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ 'L' trong SOLID đại diện cho nguyên tắc nào?

A. Liskov Substitution Principle
B. Law of Demeter
C. Least Knowledge Principle
D. Loose Coupling Principle

25. Mô hình 'Waterfall' (Thác nước) trong phát triển phần mềm thường 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 và không rõ ràng.
B. Dự án có quy mô nhỏ và thời gian phát triển ngắn.
C. Dự án có yêu cầu rõ ràng, ổn định và ít thay đổi trong suốt quá trình phát triển.
D. Dự án cần sự tương tác liên tục với khách hàng để điều chỉnh yêu cầu.

26. Nguyên tắc 'YAGNI' (You Aren't Gonna Need It) trong phát triển phần mềm khuyến khích điều gì?

A. Viết mã nguồn càng phức tạp càng tốt để dự phòng cho tương lai.
B. Chỉ triển khai các chức năng và tính năng thực sự cần thiết ở thời điểm hiện tại, tránh thêm những thứ có thể không bao giờ dùng đến.
C. Tối ưu hóa hiệu suất của phần mềm trước khi triển khai.
D. Tập trung vào việc viết tài liệu chi tiết cho tất cả các chức năng của phần mềm.

27. Phương pháp thiết kế phần mềm 'Design Patterns' (Mẫu thiết kế) mang lại lợi ích gì?

A. Tăng tốc độ phát triển phần mềm bằng cách tự động sinh mã nguồn.
B. Cung cấp các giải pháp đã được kiểm chứng cho các vấn đề thiết kế phần mềm thường gặp.
C. Đảm bảo phần mềm có giao diện người dùng thân thiện và dễ sử dụng.
D. Tối ưu hóa hiệu suất của phần mềm trên các thiết bị di động.

28. Đâu là mục tiêu chính của kiểm thử 'regression testing' (kiểm thử hồi quy)?

A. Tìm ra các lỗi mới trong các chức năng chưa được kiểm thử trước đó.
B. Đảm bảo rằng các thay đổi mã nguồn mới không gây ra lỗi hoặc ảnh hưởng tiêu cực đến các chức năng đã hoạt động ổn định.
C. Đánh giá hiệu suất và khả năng chịu tải của phần mềm.
D. Kiểm tra tính bảo mật của phần mềm trước các mối đe dọa.

29. Kỹ thuật 'Refactoring' (Tái cấu trúc mã) trong lập trình là quá trình làm gì?

A. Sửa lỗi và vá lỗ hổng bảo mật trong mã nguồn.
B. Thay đổi cấu trúc bên trong của mã nguồn mà không làm thay đổi hành vi bên ngoài của nó.
C. Thêm các tính năng mới vào phần mềm đã có.
D. Tối ưu hóa hiệu suất của phần mềm để chạy nhanh hơn.

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

A. Viết mã nguồn càng chi tiết và rõ ràng càng tốt.
B. Tránh lặp lại mã nguồn, tối ưu hóa việc tái sử dụng mã và giảm sự dư thừa.
C. Tập trung vào việc kiểm thử mã nguồn một cách kỹ lưỡng.
D. Viết tài liệu chi tiết cho tất cả các thành phần của phần mềm.

1 / 30

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

Tags: Bộ đề 9

1. Trong lập trình hướng đối tượng, `inheritance` (tính kế thừa) cho phép lớp con làm gì?

2 / 30

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

Tags: Bộ đề 9

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

3 / 30

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

Tags: Bộ đề 9

3. Trong mô hình `V-model` (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 `Requirements` (Yêu cầu)?

4 / 30

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

Tags: Bộ đề 9

4. Đâu là nhược điểm chính của mô hình phát triển phần mềm `Spiral` (Xoắn ốc)?

5 / 30

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

Tags: Bộ đề 9

5. Trong kiểm thử phần mềm, `Black box testing` (Kiểm thử hộp đen) tập trung vào khía cạnh nào?

6 / 30

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

Tags: Bộ đề 9

6. Phương pháp phát triển phần mềm nào ưu tiên sự linh hoạt, khả năng thích ứng với thay đổi và làm việc nhóm chặt chẽ?

7 / 30

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

Tags: Bộ đề 9

7. Khái niệm `Continuous Integration` (Tích hợp liên tục) trong DevOps là gì?

8 / 30

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

Tags: Bộ đề 9

8. Công cụ nào sau đây thường được sử dụng để tự động hóa quá trình `build` (xây dựng), `test` (kiểm thử) và `deploy` (triển khai) phần mềm?

9 / 30

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

Tags: Bộ đề 9

9. Trong kiến trúc phần mềm, `Layered architecture` (Kiến trúc phân lớp) có ưu điểm chính nào?

10 / 30

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

Tags: Bộ đề 9

10. Mục tiêu chính của `Performance testing` (Kiểm thử hiệu suất) là gì?

11 / 30

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

Tags: Bộ đề 9

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

12 / 30

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

Tags: Bộ đề 9

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

13 / 30

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

Tags: Bộ đề 9

13. Trong ngữ cảnh `Database` (Cơ sở dữ liệu), ACID properties (Thuộc tính ACID) là viết tắt của các đặc tính nào?

14 / 30

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

Tags: Bộ đề 9

14. Đâu là mục tiêu chính của giai đoạn `Thu thập yêu cầu` trong quy trình phát triển phần mềm?

15 / 30

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

Tags: Bộ đề 9

15. Trong kiểm thử phần mềm, `Unit testing` (Kiểm thử đơn vị) nhằm mục đích kiểm tra điều gì?

16 / 30

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

Tags: Bộ đề 9

16. Trong kiến trúc `Microservices`, mỗi `microservice` thường được thiết kế để thực hiện chức năng gì?

17 / 30

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

Tags: Bộ đề 9

17. Đâu là một ví dụ về `Non-functional requirement` (Yêu cầu phi chức năng) của phần mềm?

18 / 30

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

Tags: Bộ đề 9

18. Trong 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 đề nào sau đây?

19 / 30

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

Tags: Bộ đề 9

19. 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 gì?

20 / 30

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

Tags: Bộ đề 9

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

21 / 30

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

Tags: Bộ đề 9

21. Khái niệm `Containerization` (Công nghệ container) mang lại lợi ích chính nào trong triển khai ứng dụng?

22 / 30

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

Tags: Bộ đề 9

22. Trong lập trình hướng đối tượng (OOP), `encapsulation` (tính đóng gói) mang lại lợi ích chính nào?

23 / 30

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

Tags: Bộ đề 9

23. Công cụ `Docker` được sử dụng chủ yếu cho mục đích nào trong phát triển và triển khai phần mềm?

24 / 30

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

Tags: Bộ đề 9

24. SOLID là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ `L` trong SOLID đại diện cho nguyên tắc nào?

25 / 30

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

Tags: Bộ đề 9

25. Mô hình `Waterfall` (Thác nước) trong phát triển phần mềm thường phù hợp nhất với loại dự án nào?

26 / 30

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

Tags: Bộ đề 9

26. Nguyên tắc `YAGNI` (You Aren`t Gonna Need It) trong phát triển phần mềm khuyến khích điều gì?

27 / 30

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

Tags: Bộ đề 9

27. Phương pháp thiết kế phần mềm `Design Patterns` (Mẫu thiết kế) mang lại lợi ích gì?

28 / 30

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

Tags: Bộ đề 9

28. Đâu là mục tiêu chính của kiểm thử `regression testing` (kiểm thử hồi quy)?

29 / 30

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

Tags: Bộ đề 9

29. Kỹ thuật `Refactoring` (Tái cấu trúc mã) trong lập trình là quá trình làm gì?

30 / 30

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

Tags: Bộ đề 9

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