Trắc nghiệm Công nghệ Phần mềm Bài: CÁC PHƯƠNG PHÁP KIỂM CHỨNG là một trong những đề thi thuộc Chương 4: KIỂM THỬ 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 quan trọng, đi sâu vào các kỹ thuật và phương pháp cụ thể được sử dụng để đảm bảo rằng phần mềm đang được xây dựng “đúng cách” và tuân thủ các đặc tả đã đề ra.
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ư: phân loại các phương pháp kiểm chứng (tĩnh và động), các kỹ thuật kiểm chứng tĩnh phổ biến (đánh giá mã, đi bộ mã, kiểm tra, phân tích tĩnh), vai trò và lợi ích của từng phương pháp trong việc phát hiện lỗi sớm, tầm quan trọng của việc áp dụng đa dạng các kỹ thuật để nâng cao chất lượng phần mềm. Việc hiểu rõ các phương pháp kiểm chứng sẽ trang bị cho sinh viên khả năng lựa chọn và áp dụng công cụ phù hợp để tối ưu hóa quá trình phát triển và giảm thiểu rủi ro.
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: CÁC PHƯƠNG PHÁP KIỂM CHỨNG
Câu 1.Phương pháp kiểm chứng nào sau đây **không** yêu cầu thực thi mã nguồn để tìm lỗi?
A. Kiểm thử đơn vị (Unit Testing).
B. Kiểm thử tích hợp (Integration Testing).
C. Kiểm thử hệ thống (System Testing).
D. Phân tích tĩnh mã nguồn (Static Code Analysis).
Câu 2.Đâu là mục tiêu chính của các phương pháp kiểm chứng tĩnh (Static Verification Methods)?
A. Phát hiện lỗi khi phần mềm đang chạy.
B. Kiểm tra hiệu suất của hệ thống.
C. Đánh giá giao diện người dùng.
D. Phát hiện sớm các lỗi, sai sót và sự không tuân thủ tiêu chuẩn trong mã nguồn hoặc tài liệu mà không cần thực thi.
Câu 3.Trong phương pháp “Đánh giá mã” (Code Review), vai trò của người đánh giá (reviewer) là gì?
A. Chỉ để tìm lỗi cú pháp.
B. Chỉ để báo cáo lỗi mà không đưa ra giải pháp.
C. Chỉ để viết thêm mã.
D. Đọc và phân tích mã nguồn của người khác để tìm lỗi, đề xuất cải tiến và đảm bảo tuân thủ tiêu chuẩn.
Câu 4.Phương pháp nào sau đây là một hình thức đánh giá chính thức và có cấu trúc cao, thường được thực hiện bởi một nhóm với các vai trò cụ thể?
A. Đi bộ mã (Walkthrough).
B. Đánh giá đồng cấp (Peer Review).
C. Gỡ lỗi (Debugging).
D. Kiểm tra (Inspection).
Câu 5.Trong một buổi “Đi bộ mã” (Walkthrough), người phát triển phần mềm (author) có vai trò chính là gì?
A. Tìm lỗi trong mã của người khác.
B. Ghi lại tất cả các lỗi được tìm thấy.
C. Đưa ra quyết định cuối cùng về việc sửa lỗi.
D. Trình bày và giải thích mã nguồn hoặc thiết kế cho các thành viên khác trong nhóm.
Câu 6.Phương pháp “Phân tích tĩnh mã nguồn” (Static Code Analysis) được thực hiện như thế nào?
A. Bằng cách chạy phần mềm trên các bộ dữ liệu khác nhau.
B. Bằng cách phỏng vấn người dùng.
C. Bằng cách quan sát hành vi của hệ thống.
D. Bằng cách sử dụng các công cụ tự động để phân tích cấu trúc, cú pháp và các mẫu mã nguồn mà không cần thực thi.
Câu 7.Một trong những lợi ích lớn nhất của việc sử dụng các phương pháp kiểm chứng tĩnh là gì?
A. Giảm chi phí triển khai phần mềm.
B. Tăng tốc độ thực thi của phần mềm.
C. Loại bỏ hoàn toàn lỗi phần mềm.
D. Phát hiện lỗi sớm và giảm chi phí sửa lỗi, vì lỗi được tìm thấy trước khi chúng tích hợp sâu vào hệ thống.
Câu 8.Phương pháp “Kiểm tra” (Inspection) thường có ưu điểm gì so với “Đánh giá mã” thông thường?
A. Ít tốn thời gian hơn.
B. Không yêu cầu đào tạo đặc biệt.
C. Không cần tài liệu.
D. Cấu trúc chặt chẽ hơn, tỷ lệ phát hiện lỗi cao hơn và hiệu quả hơn trong việc phát hiện lỗi ở các giai đoạn sớm.
Câu 9.Khái niệm “Desk Checking” là một phương pháp kiểm chứng tĩnh. Nó được thực hiện như thế nào?
A. Bằng cách sử dụng một công cụ tự động.
B. Bằng cách chạy phần mềm trên máy tính.
C. Bằng cách thảo luận với đồng nghiệp.
D. Một lập trình viên tự đọc lại và phân tích mã nguồn của chính mình để tìm kiếm lỗi.
Câu 10.Phát biểu nào sau đây **không đúng** về “Các phương pháp hình thức” (Formal Methods) trong kiểm chứng?
A. Chúng sử dụng các ký hiệu toán học và logic.
B. Chúng giúp loại bỏ sự mơ hồ.
C. Chúng có thể được sử dụng để chứng minh tính đúng đắn.
D. Chúng dễ học và áp dụng cho mọi lập trình viên.
Câu 11.Mục tiêu của việc sử dụng một “Checklist” (Danh sách kiểm tra) trong đánh giá mã là gì?
A. Để làm cho mã nguồn dài hơn.
B. Để làm cho mã nguồn phức tạp hơn.
C. Để tự động sửa lỗi.
D. Hướng dẫn người đánh giá tập trung vào các khía cạnh quan trọng và đảm bảo tính nhất quán trong quá trình đánh giá.
Câu 12.Phương pháp kiểm chứng nào sau đây thường được sử dụng để tìm kiếm các lỗ hổng bảo mật phổ biến trong mã nguồn như SQL Injection hay Cross-Site Scripting (XSS)?
A. Kiểm thử hiệu suất.
B. Kiểm thử giao diện người dùng.
C. Kiểm thử chấp nhận.
D. Phân tích tĩnh mã nguồn.
Câu 13.Khi một nhà phân tích yêu cầu phải xem xét các yêu cầu chức năng để đảm bảo chúng có tính “có thể kiểm chứng” (verifiable), đây là một hoạt động của phương pháp kiểm chứng nào?
A. Kiểm thử chức năng.
B. Kiểm thử tích hợp.
C. Gỡ lỗi.
D. Đánh giá tài liệu yêu cầu (Requirements Review).
Câu 14.So với kiểm thử động, các phương pháp kiểm chứng tĩnh có hạn chế gì?
A. Không thể tìm thấy bất kỳ lỗi nào.
B. Chỉ tìm thấy lỗi hiệu suất.
C. Luôn tốn kém hơn.
D. Không thể phát hiện các lỗi liên quan đến hành vi thời gian chạy, môi trường thực thi, hoặc tương tác phức tạp.
Câu 15.Công cụ nào sau đây thường được sử dụng để hỗ trợ “Kiểm tra” (Inspection) và “Đánh giá mã” (Code Review) trong môi trường nhóm?
A. Trình duyệt web.
B. Phần mềm bảng tính.
C. Hệ điều hành.
D. Các công cụ đánh giá mã chuyên dụng (ví dụ: Crucible, Gerrit, GitLab/GitHub Code Review).
Câu 16.Phát biểu nào sau đây mô tả đúng nhất về “Phân tích tĩnh luồng dữ liệu” (Static Data Flow Analysis)?
A. Kiểm tra đường đi của dữ liệu khi chương trình đang chạy.
B. Thay đổi giá trị của các biến trong quá trình gỡ lỗi.
C. Đo lường kích thước của dữ liệu.
D. Phân tích cách dữ liệu được định nghĩa, sử dụng và biến đổi trong mã nguồn mà không cần thực thi.
Câu 17.Lợi ích chính của việc áp dụng các phương pháp kiểm chứng ngay từ giai đoạn đầu của dự án là gì?
A. Tăng thời gian phát triển.
B. Làm cho mã nguồn phức tạp hơn.
C. Giảm nhu cầu về tài liệu.
D. Giảm rủi ro về chi phí sửa lỗi, vì chi phí sửa lỗi tăng đáng kể theo thời gian.
Câu 18.Khi một nhóm phát triển thường xuyên tổ chức các buổi “Pair Programming” (Lập trình cặp), đây là một hình thức của phương pháp kiểm chứng nào?
A. Kiểm thử tự động.
B. Kiểm thử hiệu suất.
C. Kiểm thử chấp nhận.
D. Đánh giá đồng cấp (Peer Review) không chính thức.
Câu 19.Các phương pháp kiểm chứng có vai trò gì trong việc tuân thủ các tiêu chuẩn công nghiệp (ví dụ: ISO, MISRA C)?
A. Chúng làm tăng khả năng vi phạm tiêu chuẩn.
B. Chúng hoàn toàn không liên quan.
C. Chúng chỉ áp dụng cho các dự án quân sự.
D. Giúp kiểm tra và đảm bảo rằng mã nguồn và quy trình phát triển tuân thủ các tiêu chuẩn đã định.
Câu 20.Nếu một lập trình viên cố tình thêm một đoạn mã độc vào phần mềm, phương pháp kiểm chứng nào có khả năng phát hiện ra nó?
A. Kiểm thử chức năng (nếu có trường hợp kiểm thử cụ thể).
B. Kiểm thử hiệu suất.
C. Kiểm thử giao diện.
D. Đánh giá mã nguồn (Code Review) hoặc phân tích tĩnh mã nguồn.
Câu 21.Tại sao các phương pháp kiểm chứng tĩnh không thể thay thế hoàn toàn kiểm thử động?
A. Vì chúng quá chậm.
B. Vì chúng yêu cầu quá nhiều công cụ.
C. Vì chúng chỉ phát hiện lỗi nhỏ.
D. Vì chúng không thể phát hiện lỗi liên quan đến môi trường chạy, tương tác thời gian thực hoặc các lỗi logic phức tạp chỉ xuất hiện khi thực thi.
Câu 22.Mục tiêu của việc sử dụng các “Mẫu thiết kế” (Design Patterns) trong quá trình thiết kế và kiểm chứng là gì?
A. Làm cho thiết kế phức tạp hơn.
B. Chỉ để tạo mã nguồn tự động.
C. Giảm khả năng tái sử dụng.
D. Cung cấp các giải pháp đã được chứng minh, giúp dễ dàng đánh giá tính đúng đắn và chất lượng của thiết kế.
Câu 23.Phương pháp kiểm chứng nào phù hợp nhất để đánh giá tài liệu đặc tả yêu cầu về tính “nhất quán” (consistency)?
A. Kiểm thử hệ thống.
B. Kiểm thử hiệu suất.
C. Kiểm thử tích hợp.
D. Đánh giá tài liệu yêu cầu (Requirements Review).
Câu 24.Sự “tự động hóa” trong các phương pháp kiểm chứng tĩnh mang lại lợi ích gì?
A. Làm cho quá trình chậm hơn.
B. Tăng số lượng lỗi.
C. Yêu cầu nhiều con người hơn.
D. Giảm thiểu công sức thủ công, tăng tốc độ và khả năng lặp lại của quá trình kiểm tra.
Câu 25.Kiểm chứng là một phần của quá trình đảm bảo chất lượng phần mềm (SQA) nhằm mục đích gì?
A. Chỉ để tìm lỗi sau khi sản phẩm hoàn thành.
B. Chỉ để kiểm soát ngân sách dự án.
C. Chỉ để quản lý nhân sự.
D. Để phòng ngừa lỗi và đảm bảo quy trình phát triển tuân thủ các tiêu chuẩn đã đặt ra.