Trắc nghiệm Công nghệ Phần mềm Bài: TÍCH HỢP là một trong những đề thi thuộc Chương 2: CÁC PHA PHÁT TRIỂN PHẦN MỀM trong học phần Công nghệ Phần mềm chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần kiến thức then chốt, mô tả quá trình tập hợp các thành phần phần mềm riêng lẻ lại với nhau để tạo thành một hệ thống hoạt động hoàn chỉnh, là bước chuyển tiếp quan trọng từ các module độc lập sang một sản phẩm phần mềm thống nhất.
Trong bài học này, người học cần nắm vững các nội dung cốt lõi như: định nghĩa và mục đích của pha tích hợp, các chiến lược tích hợp phần mềm phổ biến (Big Bang, tích hợp tăng dần: top-down, bottom-up, sandwich), vai trò của kiểm thử tích hợp (Integration Testing), những thách thức thường gặp khi tích hợp các module, và lợi ích của việc tích hợp thường xuyên và tự động. Việc hiểu rõ pha tích hợp sẽ giúp sinh viên xây dựng các hệ thống phức tạp một cách có phương pháp, đảm bảo tính tương thích và giảm thiểu lỗi phát sinh từ sự tương tác giữa các thành phần.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Công nghệ Phần mềm Bài: TÍCH HỢP
Câu 1.Mục đích chính của Pha Tích hợp (Integration Phase) trong phát triển phần mềm là gì?
A. Thu thập yêu cầu từ người dùng cuối.
B. Viết mã nguồn cho từng module.
C. Triển khai phần mềm đến người dùng.
D. Kết hợp các module phần mềm riêng lẻ thành một hệ thống hoạt động thống nhất.
Câu 2.Chiến lược tích hợp nào bao gồm việc kết hợp tất cả các module cùng một lúc và kiểm thử toàn bộ hệ thống?
A. Tích hợp từ trên xuống (Top-down).
B. Tích hợp từ dưới lên (Bottom-up).
C. Tích hợp liên tục (Continuous Integration).
D. Tích hợp “Big Bang”.
Câu 3.Nhược điểm chính của chiến lược tích hợp “Big Bang” là gì?
A. Quá trình tích hợp diễn ra quá nhanh.
B. Yêu cầu ít tài nguyên.
C. Dễ dàng xác định vị trí lỗi.
D. Khó xác định nguyên nhân và vị trí lỗi khi xảy ra vấn đề do số lượng lỗi lớn và phức tạp.
Câu 4.Trong chiến lược tích hợp tăng dần (Incremental Integration), “Stub” (phần mềm giả lập) được sử dụng để làm gì?
A. Để kiểm thử các module cấp thấp.
B. Để triển khai phần mềm.
C. Để gỡ lỗi mã nguồn.
D. Giả lập chức năng của module cấp thấp hơn chưa được phát triển.
Câu 5.Trong chiến lược tích hợp tăng dần (Incremental Integration), “Driver” (trình điều khiển) được sử dụng để làm gì?
A. Giả lập chức năng của module cấp cao hơn chưa được phát triển.
B. Để kiểm thử các module cấp cao.
C. Để kết nối với cơ sở dữ liệu.
D. Giả lập chức năng của module cấp cao hơn để gọi và kiểm thử module cấp thấp.
Câu 6.Chiến lược tích hợp nào bắt đầu bằng cách tích hợp các module cấp cao nhất trước, sau đó dần dần bổ sung các module cấp thấp hơn?
A. Tích hợp Big Bang.
B. Tích hợp từ dưới lên (Bottom-up).
C. Tích hợp Sandwich (Hybrid).
D. Tích hợp từ trên xuống (Top-down).
Câu 7.Chiến lược tích hợp nào bắt đầu bằng cách tích hợp các module cấp thấp nhất trước, sau đó dần dần xây dựng lên các module cấp cao hơn?
A. Tích hợp Big Bang.
B. Tích hợp từ trên xuống (Top-down).
C. Tích hợp Sandwich (Hybrid).
D. Tích hợp từ dưới lên (Bottom-up).
Câu 8.Kiểm thử tích hợp (Integration Testing) có mục đích chính là gì?
A. Kiểm tra chức năng của từng module riêng lẻ.
B. Kiểm tra toàn bộ hệ thống đã hoàn thiện.
C. Kiểm tra hiệu suất của phần mềm.
D. Phát hiện lỗi phát sinh từ sự tương tác (interface) giữa các module đã tích hợp.
Câu 9.Một lợi ích chính của việc áp dụng “Tích hợp liên tục” (Continuous Integration – CI) là gì?
A. Giảm chi phí phát triển phần mềm.
B. Chỉ áp dụng cho các dự án nhỏ.
C. Không yêu cầu kiểm thử tự động.
D. Phát hiện sớm các xung đột tích hợp và lỗi giao diện, giảm thiểu rủi ro và chi phí sửa lỗi lớn sau này.
Câu 10.Thách thức lớn nhất trong Pha Tích hợp thường là gì?
A. Thiếu ngôn ngữ lập trình.
B. Không đủ không gian lưu trữ.
C. Khách hàng thay đổi yêu cầu liên tục.
D. Giải quyết các vấn đề tương thích, xung đột giao diện và phụ thuộc giữa các module.
Câu 11.Khi nào thì hoạt động tích hợp thường bắt đầu trong vòng đời phát triển phần mềm?
A. Chỉ sau khi toàn bộ mã nguồn đã được viết xong.
B. Chỉ sau khi phần mềm đã được triển khai.
C. Ngay từ giai đoạn phân tích.
D. Ngay sau khi một nhóm các module liên quan đã hoàn thành kiểm thử đơn vị.
Câu 12.Phát biểu nào sau đây **không đúng** về Pha Tích hợp?
A. Pha Tích hợp là một giai đoạn quan trọng để xây dựng hệ thống hoàn chỉnh.
B. Kiểm thử tích hợp là một phần không thể thiếu của pha này.
C. Tích hợp thường được thực hiện bởi đội ngũ phát triển.
D. Pha Tích hợp chỉ đơn giản là ghép nối các đoạn mã lại với nhau mà không cần kế hoạch.
Câu 13.Một “Môi trường Tích hợp Liên tục” (CI Environment) thường bao gồm những công cụ nào?
A. Chỉ trình soạn thảo văn bản.
B. Chỉ phần mềm bảng tính.
C. Chỉ hệ điều hành.
D. Hệ thống kiểm soát phiên bản (VCS), máy chủ CI (Jenkins, GitLab CI), công cụ xây dựng tự động.
Câu 14.Khi một lập trình viên cố gắng tích hợp hai module nhưng dữ liệu truyền qua giao diện của chúng không khớp, đây là loại lỗi gì?
A. Lỗi logic trong một module.
B. Lỗi cú pháp.
C. Lỗi hiệu suất.
D. Lỗi giao diện (Interface Error).
Câu 15.Lợi ích của việc tạo ra các “API” (Application Programming Interface) rõ ràng và ổn định là gì đối với Pha Tích hợp?
A. Làm cho việc tích hợp phức tạp hơn.
B. Giới hạn số lượng module có thể tích hợp.
C. Chỉ có lợi cho tốc độ phát triển.
D. Đơn giản hóa việc kết nối và giao tiếp giữa các module, giảm thiểu lỗi tích hợp.
Câu 16.Nếu một nhóm phát triển sử dụng phương pháp tích hợp từ trên xuống, họ sẽ cần gì để kiểm thử các module cấp cao nhất mà chưa có module cấp thấp tương ứng?
A. Driver (trình điều khiển).
B. Mã nguồn hoàn chỉnh.
C. Bản báo cáo lỗi.
D. Stub (phần mềm giả lập).
Câu 17.Trong một quy trình tích hợp liên tục, “Build Automation Tool” (Công cụ xây dựng tự động) như Maven hoặc Gradle có vai trò gì?
A. Viết mã nguồn cho dự án.
B. Triển khai phần mềm lên các server.
C. Chỉ quản lý các file tài liệu.
D. Tự động hóa quá trình biên dịch mã nguồn, chạy kiểm thử và đóng gói sản phẩm.
Câu 18.Sự khác biệt chính giữa kiểm thử đơn vị và kiểm thử tích hợp là gì?
A. Kiểm thử đơn vị tập trung vào giao diện, kiểm thử tích hợp tập trung vào từng module.
B. Kiểm thử đơn vị chỉ dùng cho dự án nhỏ, kiểm thử tích hợp cho dự án lớn.
C. Kiểm thử đơn vị là thủ công, kiểm thử tích hợp là tự động.
D. Kiểm thử đơn vị xác minh chức năng của từng module riêng lẻ; kiểm thử tích hợp xác minh sự tương tác giữa các module.
Câu 19.Chiến lược tích hợp nào được coi là linh hoạt và ít rủi ro nhất cho các dự án lớn và phức tạp?
A. Big Bang.
B. Từ trên xuống.
C. Từ dưới lên.
D. Tích hợp liên tục (Continuous Integration) kết hợp với tích hợp tăng dần.
Câu 20.Khi một hệ thống gồm nhiều module được phát triển bởi các đội khác nhau, Pha Tích hợp sẽ cần đặc biệt chú ý đến điều gì?
A. Phong cách viết code của mỗi đội.
B. Ngôn ngữ lập trình được sử dụng.
C. Màu sắc của giao diện người dùng.
D. Sự thống nhất và tương thích của các giao diện (interfaces) giữa các module.
Câu 21.Trong Pha Tích hợp, điều gì có thể xảy ra nếu các module không được thiết kế với tính phụ thuộc thấp (low coupling)?
A. Việc tích hợp sẽ rất nhanh.
B. Các module sẽ hoạt động độc lập.
C. Không có bất kỳ lỗi nào.
D. Thay đổi ở một module có thể gây ra lỗi hoặc yêu cầu sửa đổi ở nhiều module khác, làm tăng độ phức tạp của tích hợp.
Câu 22.Lợi ích kinh tế của việc phát hiện lỗi tích hợp sớm trong Pha Tích hợp là gì?
A. Tăng chi phí dự án.
B. Kéo dài thời gian phát triển.
C. Làm giảm chất lượng phần mềm.
D. Giảm đáng kể chi phí và công sức cần thiết để khắc phục lỗi so với việc phát hiện chúng ở các giai đoạn sau.
Câu 23.Một “Integration Test Case” (Trường hợp kiểm thử tích hợp) điển hình sẽ tập trung vào điều gì?
A. Chỉ kiểm tra các phép tính trong một hàm.
B. Chỉ kiểm tra giao diện người dùng.
C. Chỉ kiểm tra tốc độ phản hồi.
D. Kiểm tra luồng dữ liệu và sự tương tác giữa hai hoặc nhiều module đã được tích hợp.
Câu 24.Sự khác biệt giữa kiểm thử tích hợp và kiểm thử hệ thống là gì?
A. Kiểm thử tích hợp tập trung vào các module riêng lẻ, kiểm thử hệ thống tập trung vào giao diện.
B. Kiểm thử tích hợp chỉ dành cho lập trình viên, kiểm thử hệ thống cho người dùng.
C. Kiểm thử tích hợp thực hiện thủ công, kiểm thử hệ thống tự động.
D. Kiểm thử tích hợp tập trung vào sự tương tác giữa các module; kiểm thử hệ thống xác minh toàn bộ hệ thống hoạt động theo yêu cầu chức năng và phi chức năng.
Câu 25.Khi một hệ thống phức tạp được tích hợp, vai trò của “Quản lý Cấu hình Phần mềm” (Software Configuration Management – SCM) là gì?
A. Để viết mã nguồn mới.
B. Để kiểm thử tự động.
C. Để triển khai phần mềm.
D. Để quản lý các phiên bản của các module và đảm bảo rằng các phiên bản tương thích được tích hợp với nhau.