12+ Đề Trắc Nghiệm Tin Học 11 (Kết Nối Tri Thức) Bài 23: Kiểm Thử Và Đánh Giá Chương Trình

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 01

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 01 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

  • A. Chứng minh tính đúng đắn tuyệt đối của thuật toán trong mọi trường hợp.
  • B. Đảm bảo chương trình chạy nhanh nhất có thể.
  • C. Phát hiện lỗi và tăng độ tin cậy của chương trình.
  • D. Giảm thiểu dung lượng bộ nhớ mà chương trình sử dụng.

Câu 2: Tại sao việc kiểm thử chương trình với một số lượng hữu hạn các bộ dữ liệu đầu vào không thể chứng minh được tính đúng đắn tuyệt đối của thuật toán?

  • A. Vì các bộ dữ liệu kiểm thử thường được chọn ngẫu nhiên và không đại diện.
  • B. Vì số lượng các trường hợp đầu vào có thể là vô hạn hoặc quá lớn để kiểm thử hết.
  • C. Vì việc kiểm thử chỉ tập trung vào hiệu năng chứ không phải tính đúng đắn.
  • D. Vì lỗi chương trình chỉ xuất hiện khi chạy trên hệ điều hành cụ thể.

Câu 3: Phương pháp nào dưới đây cung cấp cơ sở lý thuyết vững chắc nhất để chứng minh tính đúng của một thuật toán cho mọi trường hợp đầu vào?

  • A. Chứng minh bằng lôgic toán học (ví dụ: quy nạp, bất biến vòng lặp).
  • B. Kiểm thử với bộ dữ liệu đa dạng.
  • C. Phân tích thời gian chạy của thuật toán.
  • D. So sánh kết quả với các chương trình tương tự.

Câu 4: Khi kiểm thử một chương trình tính toán giai thừa của một số nguyên không âm N, bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất để kiểm tra các "trường hợp biên" (edge cases)?

  • A. Các số nguyên dương lớn (ví dụ: 100, 1000).
  • B. Các số nguyên âm.
  • C. Giá trị 0 và 1.
  • D. Các số thập phân.

Câu 5: Một lập trình viên đang gỡ lỗi cho một vòng lặp trong chương trình. Anh ấy muốn sử dụng một phương pháp dựa trên toán học để chắc chắn rằng vòng lặp sẽ kết thúc và cho kết quả đúng. Phương pháp nào phù hợp nhất?

  • A. Kiểm thử với tất cả các giá trị đầu vào có thể.
  • B. Sử dụng bất biến vòng lặp để chứng minh tính đúng sau mỗi lần lặp.
  • C. Chạy chương trình nhiều lần với dữ liệu ngẫu nhiên.
  • D. So sánh kết quả với một chương trình khác đã biết là đúng.

Câu 6: Đánh giá hiệu quả của thuật toán chủ yếu tập trung vào những tiêu chí nào?

  • A. Tính đúng đắn và khả năng phát hiện lỗi.
  • B. Độ dài mã nguồn và số lượng biến sử dụng.
  • C. Tính dễ đọc và dễ bảo trì của mã nguồn.
  • D. Thời gian thực thi và dung lượng bộ nhớ cần thiết.

Câu 7: Độ phức tạp thời gian (Time Complexity) của một thuật toán đo lường điều gì?

  • A. Số lượng các phép tính hoặc thao tác cơ bản mà thuật toán thực hiện.
  • B. Tổng thời gian (giây, mili giây) mà chương trình chạy trên một máy tính cụ thể.
  • C. Lượng bộ nhớ RAM mà chương trình tiêu thụ.
  • D. Số lượng dòng mã trong thuật toán.

Câu 8: Độ phức tạp không gian (Space Complexity) của một thuật toán đo lường điều gì?

  • A. Tốc độ truyền dữ liệu giữa các bộ phận của máy tính.
  • B. Số lượng biến và hằng số được khai báo trong chương trình.
  • C. Lượng bộ nhớ bổ sung mà thuật toán cần để lưu trữ dữ liệu và biến trong quá trình thực thi.
  • D. Kích thước của tệp mã nguồn.

Câu 9: Tại sao việc đánh giá độ phức tạp thời gian và không gian của thuật toán lại quan trọng, ngay cả khi chương trình đã được kiểm thử và chạy đúng với các dữ liệu mẫu?

  • A. Vì độ phức tạp quyết định chương trình có dễ đọc hay không.
  • B. Vì độ phức tạp giúp tìm ra lỗi logic mà kiểm thử không phát hiện được.
  • C. Vì độ phức tạp chỉ liên quan đến việc chứng minh tính đúng đắn.
  • D. Vì độ phức tạp dự đoán hiệu năng của chương trình khi xử lý lượng dữ liệu lớn hoặc trên các hệ thống có tài nguyên hạn chế.

Câu 10: Giả sử bạn có hai thuật toán A và B cùng giải quyết một bài toán. Thuật toán A có độ phức tạp thời gian O(n) và thuật toán B có độ phức tạp thời gian O(n^2), với n là kích thước dữ liệu đầu vào. Khi kích thước dữ liệu rất lớn, thuật toán nào có khả năng chạy nhanh hơn?

  • A. Thuật toán A.
  • B. Thuật toán B.
  • C. Cả hai thuật toán chạy với tốc độ tương đương.
  • D. Không thể xác định chỉ dựa vào độ phức tạp thời gian Big O.

Câu 11: Trong quá trình phát triển phần mềm, giai đoạn "đánh giá chương trình" bao gồm những khía cạnh nào ngoài việc chỉ kiểm tra tính đúng đắn?

  • A. Chỉ tập trung vào việc tìm tất cả các lỗi có thể có.
  • B. Bao gồm đánh giá hiệu năng (tốc độ, bộ nhớ), khả năng sử dụng, bảo mật và tính dễ bảo trì.
  • C. Chỉ bao gồm việc chứng minh tính đúng đắn bằng toán học.
  • D. Chỉ liên quan đến việc viết tài liệu hướng dẫn sử dụng.

Câu 12: Một chương trình xử lý ảnh yêu cầu lưu trữ toàn bộ ảnh gốc và ảnh đã xử lý trong bộ nhớ cùng lúc. Điều này ảnh hưởng chủ yếu đến khía cạnh nào khi đánh giá hiệu quả của chương trình?

  • A. Độ phức tạp thời gian.
  • B. Tính đúng đắn của thuật toán.
  • C. Khả năng dễ sử dụng.
  • D. Độ phức tạp không gian.

Câu 13: Khi chọn bộ dữ liệu kiểm thử, tại sao việc bao gồm các giá trị "không hợp lệ" hoặc "ngoài phạm vi" lại quan trọng?

  • A. Để kiểm tra cách chương trình xử lý lỗi hoặc các trường hợp ngoại lệ.
  • B. Để chứng minh chương trình chạy nhanh hơn với dữ liệu sai.
  • C. Để đơn giản hóa quá trình kiểm thử.
  • D. Để giảm thiểu dung lượng bộ nhớ cần thiết.

Câu 14: Phương pháp kiểm thử "hộp đen" (Black-box testing) dựa trên cơ sở nào để thiết kế các trường hợp kiểm thử?

  • A. Cấu trúc mã nguồn và luồng điều khiển của chương trình.
  • B. Đặc tả yêu cầu và chức năng của chương trình.
  • C. Độ phức tạp thời gian của thuật toán.
  • D. Kinh nghiệm cá nhân của người lập trình.

Câu 15: Phương pháp kiểm thử "hộp trắng" (White-box testing) dựa trên cơ sở nào để thiết kế các trường hợp kiểm thử?

  • A. Cấu trúc mã nguồn, luồng điều khiển và đường đi thực thi bên trong chương trình.
  • B. Giao diện người dùng và các chức năng hiển thị bên ngoài.
  • C. Phản hồi từ người dùng cuối.
  • D. Các tiêu chuẩn về hiệu năng và bộ nhớ.

Câu 16: Một chương trình tính tổng các phần tử trong một mảng. Để chứng minh tính đúng đắn của vòng lặp tính tổng bằng phương pháp bất biến vòng lặp, bất biến nào dưới đây là phù hợp nhất?

  • A. Giá trị của biến đếm vòng lặp luôn nhỏ hơn kích thước mảng.
  • B. Mảng đầu vào luôn được sắp xếp.
  • C. Biến tích lũy (tổng) luôn chứa tổng của các phần tử đã duyệt qua tính đến bước hiện tại.
  • D. Chương trình không gặp lỗi ngoại lệ.

Câu 17: Sau khi phát hiện và sửa một lỗi trong chương trình, kiểu kiểm thử nào sau đây là cần thiết để đảm bảo việc sửa lỗi không gây ra lỗi mới ở những phần khác của chương trình?

  • A. Kiểm thử hộp đen.
  • B. Kiểm thử hiệu năng.
  • C. Kiểm thử trường hợp biên.
  • D. Kiểm thử hồi quy (Regression testing).

Câu 18: Một báo cáo đánh giá cho thấy chương trình của bạn có độ phức tạp thời gian O(2^n). Điều này có ý nghĩa gì đối với hiệu năng của chương trình khi xử lý dữ liệu có kích thước n rất lớn?

  • A. Thời gian chạy tăng tuyến tính theo kích thước dữ liệu.
  • B. Thời gian chạy tăng rất nhanh (theo cấp số nhân) khi kích thước dữ liệu tăng.
  • C. Thời gian chạy không phụ thuộc vào kích thước dữ liệu.
  • D. Chương trình sẽ sử dụng rất ít bộ nhớ.

Câu 19: Khi nào thì việc chứng minh tính đúng đắn bằng lôgic toán học trở nên đặc biệt quan trọng hơn so với chỉ dựa vào kiểm thử?

  • A. Khi chương trình có giao diện người dùng phức tạp.
  • B. Khi cần đánh giá hiệu năng của chương trình.
  • C. Khi chương trình xử lý các tác vụ quan trọng, đòi hỏi tính chính xác tuyệt đối (ví dụ: hệ thống an toàn, mật mã).
  • D. Khi mã nguồn chương trình rất dài và khó đọc.

Câu 20: Đâu là điểm khác biệt cốt lõi giữa "kiểm thử chương trình" và "đánh giá hiệu quả thuật toán"?

  • A. Kiểm thử chỉ thực hiện trước khi viết mã, còn đánh giá thực hiện sau khi hoàn thành.
  • B. Kiểm thử sử dụng dữ liệu thực tế, còn đánh giá chỉ sử dụng dữ liệu giả định.
  • C. Kiểm thử tập trung vào tốc độ, còn đánh giá tập trung vào bộ nhớ.
  • D. Kiểm thử chủ yếu tìm lỗi và tăng độ tin cậy, còn đánh giá xem xét hiệu năng (thời gian, bộ nhớ) và các yếu tố chất lượng khác.

Câu 21: Bạn đang kiểm thử một hàm tìm kiếm trong một danh sách đã sắp xếp. Bộ dữ liệu kiểm thử nào sau đây KHÔNG thể thiếu để kiểm tra đầy đủ chức năng của hàm?

  • A. Danh sách chỉ chứa các số dương.
  • B. Danh sách trống hoặc danh sách chỉ có một phần tử, và trường hợp phần tử cần tìm không có trong danh sách.
  • C. Danh sách chứa các số ngẫu nhiên chưa được sắp xếp.
  • D. Danh sách rất lớn chứa hàng triệu phần tử.

Câu 22: Khái niệm "bất biến vòng lặp" được sử dụng chủ yếu trong phương pháp nào để chứng minh tính đúng đắn của chương trình?

  • A. Chứng minh bằng lôgic toán học.
  • B. Kiểm thử hộp đen.
  • C. Đánh giá độ phức tạp thời gian.
  • D. Kiểm thử hồi quy.

Câu 23: Một chương trình được đánh giá là có "khả năng sử dụng" (usability) tốt nghĩa là gì?

  • A. Chương trình chạy với tốc độ rất nhanh.
  • B. Chương trình không có bất kỳ lỗi nào.
  • C. Chương trình dễ học, dễ sử dụng và hiệu quả cho người dùng cuối.
  • D. Mã nguồn của chương trình rất ngắn gọn.

Câu 24: Tại sao việc sử dụng các bộ dữ liệu kiểm thử đa dạng lại giúp tăng "độ tin cậy" (reliability) của chương trình?

  • A. Vì nó làm cho chương trình chạy nhanh hơn.
  • B. Vì nó giúp phát hiện lỗi trong nhiều tình huống và điều kiện khác nhau mà chương trình có thể gặp phải.
  • C. Vì nó chứng minh chương trình đúng 100%.
  • D. Vì nó giảm thiểu lượng bộ nhớ cần thiết.

Câu 25: Khi nào thì việc đánh giá "độ phức tạp không gian" trở nên đặc biệt quan trọng?

  • A. Khi chương trình chạy trên các thiết bị có bộ nhớ hạn chế (ví dụ: thiết bị di động, hệ thống nhúng).
  • B. Khi chương trình cần xử lý dữ liệu theo thời gian thực.
  • C. Khi cần chứng minh tính đúng đắn bằng toán học.
  • D. Khi chương trình chỉ thực hiện các phép tính đơn giản.

Câu 26: Giả sử bạn có một thuật toán sắp xếp cần O(n^2) thời gian và O(n) không gian. Một thuật toán sắp xếp khác cần O(n log n) thời gian và O(n) không gian. Nếu bạn cần xử lý dữ liệu rất lớn và thời gian là yếu tố quan trọng nhất, bạn sẽ chọn thuật toán nào?

  • A. Thuật toán O(n^2) thời gian, O(n) không gian.
  • B. Thuật toán O(n log n) thời gian, O(n) không gian.
  • C. Cả hai đều như nhau vì không gian bộ nhớ giống nhau.
  • D. Không thể quyết định nếu không biết hằng số trong ký hiệu Big O.

Câu 27: Vai trò của tài liệu kỹ thuật (ví dụ: đặc tả yêu cầu, thiết kế chi tiết) trong quá trình kiểm thử chương trình là gì?

  • A. Là cơ sở để thiết kế các trường hợp kiểm thử (đặc biệt là kiểm thử hộp đen) và xác định kết quả mong đợi.
  • B. Giúp chương trình chạy nhanh hơn.
  • C. Thay thế hoàn toàn nhu cầu kiểm thử.
  • D. Chỉ cần thiết cho người dùng cuối, không liên quan đến người kiểm thử.

Câu 28: Tại sao việc kiểm thử chương trình là một quá trình lặp đi lặp lại (iterative process) chứ không phải chỉ thực hiện một lần duy nhất?

  • A. Vì chi phí kiểm thử rất thấp.
  • B. Vì chương trình luôn thay đổi một cách ngẫu nhiên.
  • C. Vì việc sửa lỗi có thể tạo ra lỗi mới, và chương trình thường được cập nhật hoặc thay đổi theo thời gian.
  • D. Vì người kiểm thử thích lặp lại công việc.

Câu 29: Mục tiêu của việc sử dụng "dữ liệu kiểm thử điển hình" (typical test data) là gì?

  • A. Để kiểm tra các trường hợp ngoại lệ.
  • B. Để chứng minh tính đúng đắn tuyệt đối.
  • C. Để tìm lỗi trong cấu trúc mã nguồn.
  • D. Để kiểm tra xem chương trình có hoạt động đúng với các đầu vào phổ biến, thường gặp hay không.

Câu 30: Trong chu trình phát triển phần mềm cơ bản (thiết kế, viết mã, kiểm thử, đánh giá, bảo trì), giai đoạn kiểm thử và đánh giá đóng vai trò như thế nào?

  • A. Là các bước cuối cùng và ít quan trọng nhất trước khi phát hành.
  • B. Là các bước thiết yếu để đảm bảo chất lượng, độ tin cậy và hiệu quả trước khi đưa sản phẩm đến tay người dùng.
  • C. Chỉ cần thiết cho các chương trình có quy mô lớn.
  • D. Có thể bỏ qua nếu người lập trình tự tin vào mã của mình.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 2: Tại sao việc kiểm thử chương trình với một số lượng hữu hạn các bộ dữ liệu đầu vào không thể chứng minh được tính đúng đắn tuyệt đối của thuật toán?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 3: Phương pháp nào dưới đây cung cấp cơ sở lý thuyết vững chắc nhất để chứng minh tính đúng của một thuật toán cho mọi trường hợp đầu vào?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 4: Khi kiểm thử một chương trình tính toán giai thừa của một số nguyên không âm N, bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất để kiểm tra các 'trường hợp biên' (edge cases)?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 5: Một lập trình viên đang gỡ lỗi cho một vòng lặp trong chương trình. Anh ấy muốn sử dụng một phương pháp dựa trên toán học để chắc chắn rằng vòng lặp sẽ kết thúc và cho kết quả đúng. Phương pháp nào phù hợp nhất?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 6: Đánh giá hiệu quả của thuật toán chủ yếu tập trung vào những tiêu chí nào?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 7: Độ phức tạp thời gian (Time Complexity) của một thuật toán đo lường điều gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 8: Độ phức tạp không gian (Space Complexity) của một thuật toán đo lường điều gì?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 9: Tại sao việc đánh giá độ phức tạp thời gian và không gian của thuật toán lại quan trọng, ngay cả khi chương trình đã được kiểm thử và chạy đúng với các dữ liệu mẫu?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 10: Giả sử bạn có hai thuật toán A và B cùng giải quyết một bài toán. Thuật toán A có độ phức tạp thời gian O(n) và thuật toán B có độ phức tạp thời gian O(n^2), với n là kích thước dữ liệu đầu vào. Khi kích thước dữ liệu rất lớn, thuật toán nào có khả năng chạy nhanh hơn?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 11: Trong quá trình phát triển phần mềm, giai đoạn 'đánh giá chương trình' bao gồm những khía cạnh nào ngoài việc chỉ kiểm tra tính đúng đắn?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 12: Một chương trình xử lý ảnh yêu cầu lưu trữ toàn bộ ảnh gốc và ảnh đã xử lý trong bộ nhớ cùng lúc. Điều này ảnh hưởng chủ yếu đến khía cạnh nào khi đánh giá hiệu quả của chương trình?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 13: Khi chọn bộ dữ liệu kiểm thử, tại sao việc bao gồm các giá trị 'không hợp lệ' hoặc 'ngoài phạm vi' lại quan trọng?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 14: Phương pháp kiểm thử 'hộp đen' (Black-box testing) dựa trên cơ sở nào để thiết kế các trường hợp kiểm thử?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 15: Phương pháp kiểm thử 'hộp trắng' (White-box testing) dựa trên cơ sở nào để thiết kế các trường hợp kiểm thử?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 16: Một chương trình tính tổng các phần tử trong một mảng. Để chứng minh tính đúng đắn của vòng lặp tính tổng bằng phương pháp bất biến vòng lặp, bất biến nào dưới đây là phù hợp nhất?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 17: Sau khi phát hiện và sửa một lỗi trong chương trình, kiểu kiểm thử nào sau đây là cần thiết để đảm bảo việc sửa lỗi không gây ra lỗi mới ở những phần khác của chương trình?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 18: Một báo cáo đánh giá cho thấy chương trình của bạn có độ phức tạp thời gian O(2^n). Điều này có ý nghĩa gì đối với hiệu năng của chương trình khi xử lý dữ liệu có kích thước n rất lớn?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 19: Khi nào thì việc chứng minh tính đúng đắn bằng lôgic toán học trở nên đặc biệt quan trọng hơn so với chỉ dựa vào kiểm thử?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 20: Đâu là điểm khác biệt cốt lõi giữa 'kiểm thử chương trình' và 'đánh giá hiệu quả thuật toán'?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 21: Bạn đang kiểm thử một hàm tìm kiếm trong một danh sách đã sắp xếp. Bộ dữ liệu kiểm thử nào sau đây KHÔNG thể thiếu để kiểm tra đầy đủ chức năng của hàm?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 22: Khái niệm 'bất biến vòng lặp' được sử dụng chủ yếu trong phương pháp nào để chứng minh tính đúng đắn của chương trình?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 23: Một chương trình được đánh giá là có 'khả năng sử dụng' (usability) tốt nghĩa là gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 24: Tại sao việc sử dụng các bộ dữ liệu kiểm thử đa dạng lại giúp tăng 'độ tin cậy' (reliability) của chương trình?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 25: Khi nào thì việc đánh giá 'độ phức tạp không gian' trở nên đặc biệt quan trọng?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 26: Giả sử bạn có một thuật toán sắp xếp cần O(n^2) thời gian và O(n) không gian. Một thuật toán sắp xếp khác cần O(n log n) thời gian và O(n) không gian. Nếu bạn cần xử lý dữ liệu rất lớn và thời gian là yếu tố quan trọng nhất, bạn sẽ chọn thuật toán nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 27: Vai trò của tài liệu kỹ thuật (ví dụ: đặc tả yêu cầu, thiết kế chi tiết) trong quá trình kiểm thử chương trình là gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 28: Tại sao việc kiểm thử chương trình là một quá trình lặp đi lặp lại (iterative process) chứ không phải chỉ thực hiện một lần duy nhất?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 29: Mục tiêu của việc sử dụng 'dữ liệu kiểm thử điển hình' (typical test data) là gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 01

Câu 30: Trong chu trình phát triển phần mềm cơ bản (thiết kế, viết mã, kiểm thử, đánh giá, bảo trì), giai đoạn kiểm thử và đánh giá đóng vai trò như thế nào?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 02

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 02 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Một lập trình viên vừa hoàn thành một chương trình tính diện tích hình tròn dựa trên bán kính nhập vào. Để kiểm thử chương trình này một cách hiệu quả, bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất cần được xem xét, ngoài các giá trị bán kính dương thông thường?

  • A. Các giá trị bán kính rất lớn (ví dụ: 10^9)
  • B. Các giá trị bán kính là số thực có nhiều chữ số thập phân
  • C. Chỉ cần một vài giá trị bán kính dương ngẫu nhiên
  • D. Giá trị bán kính bằng 0 hoặc là số âm

Câu 2: Bạn đang kiểm thử một hàm sắp xếp danh sách số nguyên. Bạn đã thử nghiệm với danh sách ngẫu nhiên và danh sách đã được sắp xếp tăng dần. Trường hợp kiểm thử nào sau đây cũng rất quan trọng để đánh giá độ tin cậy của hàm sắp xếp?

  • A. Danh sách chỉ chứa các số chẵn
  • B. Danh sách chỉ chứa các số dương
  • C. Danh sách đã được sắp xếp giảm dần
  • D. Danh sách có số lượng phần tử là số lẻ

Câu 3: Mục đích chính của việc kiểm thử chương trình bằng các bộ dữ liệu đầu vào là gì?

  • A. Chứng minh chương trình không có bất kỳ lỗi nào.
  • B. Tìm kiếm các lỗi tiềm ẩn và tăng độ tin cậy của chương trình.
  • C. Đo lường tốc độ thực thi của chương trình.
  • D. Đánh giá lượng bộ nhớ mà chương trình sử dụng.

Câu 4: Tại sao kiểm thử bằng cách chạy chương trình với nhiều bộ dữ liệu khác nhau không thể đảm bảo tính đúng đắn tuyệt đối của thuật toán?

  • A. Vì các bộ dữ liệu kiểm thử luôn chứa sai sót.
  • B. Vì chương trình có thể hoạt động ngẫu nhiên.
  • C. Vì số lượng các trường hợp đầu vào có thể là vô hạn, không thể kiểm tra hết.
  • D. Vì kiểm thử chỉ thực hiện trên một máy tính cụ thể.

Câu 5: Phương pháp nào sau đây được xem là có khả năng chứng minh tính đúng đắn của một thuật toán một cách chắc chắn về mặt lý thuyết?

  • A. Chứng minh bằng logic toán học hoặc phương pháp hình thức.
  • B. Chạy chương trình với một lượng lớn dữ liệu kiểm thử.
  • C. Kiểm tra mã nguồn (code review) bởi nhiều lập trình viên.
  • D. Sử dụng các công cụ phân tích hiệu năng tự động.

Câu 6: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

  • A. Độ dài mã nguồn và số lượng biến.
  • B. Thời gian thực thi và dung lượng bộ nhớ sử dụng.
  • C. Số lượng lỗi tìm thấy và độ dễ đọc của mã.
  • D. Khả năng tương thích với nhiều hệ điều hành và thiết bị.

Câu 7: Độ phức tạp thời gian của một thuật toán cho biết điều gì?

  • A. Tổng thời gian chương trình đã chạy từ khi bắt đầu.
  • B. Thời gian cần thiết để viết mã chương trình.
  • C. Cách thời gian thực thi thay đổi theo kích thước dữ liệu đầu vào.
  • D. Tốc độ kết nối mạng khi chương trình chạy online.

Câu 8: Một thuật toán A có độ phức tạp thời gian O(N), thuật toán B có độ phức tạp thời gian O(N^2). N là kích thước dữ liệu đầu vào. Khi N rất lớn, thuật toán nào thường được coi là hiệu quả hơn về mặt thời gian?

  • A. Thuật toán A.
  • B. Thuật toán B.
  • C. Cả hai thuật toán có hiệu quả như nhau.
  • D. Không thể so sánh nếu không biết giá trị cụ thể của N.

Câu 9: Độ phức tạp không gian của một thuật toán cho biết điều gì?

  • A. Dung lượng ổ cứng cần thiết để cài đặt chương trình.
  • B. Kích thước của mã nguồn chương trình.
  • C. Số lượng biến được sử dụng trong một hàm cụ thể.
  • D. Cách lượng bộ nhớ sử dụng thay đổi theo kích thước dữ liệu đầu vào.

Câu 10: Giả sử bạn có một chương trình tìm kiếm phần tử trong danh sách. Bạn sử dụng phương pháp tìm kiếm tuyến tính. Để kiểm thử tính đúng của chương trình này, bạn nên bao gồm các trường hợp nào trong bộ dữ liệu kiểm thử?

  • A. Phần tử cần tìm ở đầu, ở cuối, ở giữa và trường hợp không có phần tử đó trong danh sách.
  • B. Chỉ cần các danh sách có kích thước khác nhau.
  • C. Chỉ cần các danh sách chứa số dương.
  • D. Chỉ cần kiểm tra xem chương trình có chạy mà không báo lỗi không.

Câu 11: Khi phát triển một phần mềm quan trọng (ví dụ: hệ thống điều khiển y tế), việc sử dụng các phương pháp chứng minh tính đúng đắn (Formal Verification) có ý nghĩa gì so với chỉ kiểm thử bằng dữ liệu?

  • A. Giảm đáng kể thời gian phát triển phần mềm.
  • B. Cung cấp mức độ đảm bảo tính đúng đắn cao hơn, đặc biệt cho các trường hợp quan trọng/an toàn.
  • C. Loại bỏ hoàn toàn nhu cầu kiểm thử bằng dữ liệu.
  • D. Chỉ áp dụng được cho các chương trình rất nhỏ và đơn giản.

Câu 12: Một chương trình xử lý ngày tháng. Bạn cần kiểm thử xem nó có xử lý đúng năm nhuận hay không. Trường hợp kiểm thử nào sau đây là cần thiết?

  • A. Chỉ cần kiểm tra một năm bất kỳ không phải năm nhuận.
  • B. Chỉ cần kiểm tra một năm bất kỳ là năm nhuận.
  • C. Kiểm tra các năm chia hết cho 100 nhưng không chia hết cho 400 (ví dụ 1900).
  • D. Kiểm tra các năm chia hết cho 4 (như 2024, 2000), các năm không chia hết cho 4 (như 2023), và các trường hợp đặc biệt của năm nhuận (chia hết cho 100 nhưng không chia hết cho 400 như 1900, chia hết cho 400 như 2000).

Câu 13: Cho một thuật toán có độ phức tạp thời gian O(N log N). Nếu kích thước đầu vào N tăng gấp đôi, thời gian thực thi của thuật toán này dự kiến sẽ tăng lên như thế nào?

  • A. Tăng gấp đôi.
  • B. Tăng gấp bốn lần.
  • C. Tăng hơn gấp đôi, nhưng ít hơn gấp bốn lần.
  • D. Không thay đổi.

Câu 14: Khi nào thì việc tối ưu hóa dung lượng bộ nhớ sử dụng (độ phức tạp không gian) trở nên đặc biệt quan trọng?

  • A. Khi chương trình cần chạy rất nhanh.
  • B. Khi chương trình chạy trên các thiết bị có bộ nhớ hạn chế (ví dụ: hệ thống nhúng, thiết bị di động cũ) hoặc xử lý dữ liệu cực lớn.
  • C. Khi mã nguồn chương trình dài.
  • D. Khi cần chứng minh tính đúng đắn của thuật toán.

Câu 15: Bạn đang kiểm thử một chương trình xử lý văn bản, cụ thể là chức năng đếm số từ. Bộ dữ liệu kiểm thử nào sau đây giúp phát hiện lỗi liên quan đến xử lý dấu câu và khoảng trắng?

  • A. Văn bản có nhiều khoảng trắng liên tiếp giữa các từ, văn bản chỉ có dấu câu, văn bản rỗng.
  • B. Văn bản chỉ chứa các từ tiếng Việt thông thường.
  • C. Văn bản rất dài (ví dụ: cả một cuốn sách).
  • D. Văn bản chỉ chứa các số.

Câu 16: Một kỹ thuật chứng minh tính đúng đắn của thuật toán sử dụng "bất biến vòng lặp". Bất biến vòng lặp là gì?

  • A. Một giá trị không bao giờ thay đổi trong suốt quá trình thực thi chương trình.
  • B. Số lần tối đa mà một vòng lặp có thể thực hiện.
  • C. Một thuộc tính hoặc điều kiện luôn đúng trước mỗi lần lặp (và sau khi khởi tạo) của một vòng lặp.
  • D. Lỗi xảy ra lặp đi lặp lại trong một vòng lặp.

Câu 17: Khi đánh giá hiệu quả của thuật toán sắp xếp, ngoài thời gian và bộ nhớ, một tiêu chí khác có thể được xem xét là "tính ổn định" (stability). Thuật toán sắp xếp ổn định là gì?

  • A. Luôn cho ra kết quả đúng.
  • B. Sử dụng ít bộ nhớ nhất có thể.
  • C. Thời gian thực thi không phụ thuộc vào dữ liệu đầu vào.
  • D. Giữ nguyên thứ tự tương đối của các phần tử có giá trị bằng nhau trong danh sách đầu vào.

Câu 18: Bạn viết một chương trình giải phương trình bậc hai ax^2 + bx + c = 0. Để kiểm thử chương trình này, bạn cần tạo các bộ dữ liệu đầu vào (a, b, c) bao gồm những trường hợp nào?

  • A. Trường hợp a = 0 (phương trình bậc nhất), trường hợp delta > 0, delta = 0, delta < 0.
  • B. Chỉ cần các trường hợp a, b, c là các số dương ngẫu nhiên.
  • C. Chỉ cần trường hợp delta > 0.
  • D. Chỉ cần kiểm tra xem chương trình có chạy mà không báo lỗi cú pháp không.

Câu 19: Một chương trình được coi là có "độ tin cậy" cao khi nào?

  • A. Khi nó chạy rất nhanh.
  • B. Khi mã nguồn của nó ngắn gọn.
  • C. Khi nó hoạt động đúng và nhất quán trong nhiều điều kiện và với nhiều bộ dữ liệu đầu vào khác nhau.
  • D. Khi nó được viết bằng ngôn ngữ lập trình phổ biến.

Câu 20: Tại sao việc sử dụng các bộ dữ liệu kiểm thử đa dạng lại quan trọng trong quá trình kiểm thử chương trình?

  • A. Giúp chương trình chạy nhanh hơn.
  • B. Tăng khả năng phát hiện lỗi trong các trường hợp hoạt động khác nhau (bao gồm cả trường hợp biên và ngoại lệ).
  • C. Làm cho mã nguồn chương trình dễ đọc hơn.
  • D. Giảm lượng bộ nhớ mà chương trình sử dụng.

Câu 21: Trong ngữ cảnh đánh giá hiệu quả thuật toán, "kích thước dữ liệu đầu vào" (input size) thường được hiểu là gì?

  • A. Một đại lượng đặc trưng cho khối lượng dữ liệu mà thuật toán phải xử lý (ví dụ: số phần tử trong danh sách, số đỉnh/cạnh của đồ thị).
  • B. Dung lượng tệp chứa dữ liệu đầu vào.
  • C. Số lượng biến mà thuật toán sử dụng.
  • D. Thời gian cần thiết để đọc dữ liệu đầu vào từ tệp.

Câu 22: Giả sử bạn cần kiểm thử một chức năng tính tổng của một mảng số nguyên. Bạn đã kiểm thử với mảng rỗng, mảng chỉ có một phần tử, mảng có các số dương. Trường hợp kiểm thử nào sau đây giúp kiểm tra thêm các tình huống có thể xảy ra lỗi?

  • A. Mảng chỉ chứa các số chẵn.
  • B. Mảng chỉ chứa các số lẻ.
  • C. Mảng có số lượng phần tử là số nguyên tố.
  • D. Mảng chứa các số âm, mảng chứa cả số âm và dương, mảng chứa các giá trị rất lớn hoặc rất nhỏ.

Câu 23: Trong quá trình đánh giá một chương trình, nếu thời gian thực thi tăng gấp đôi khi kích thước đầu vào tăng gấp đôi, thì độ phức tạp thời gian của thuật toán đó có khả năng là gì?

  • A. O(N)
  • B. O(N^2)
  • C. O(log N)
  • D. O(1)

Câu 24: Việc sử dụng "bất biến vòng lặp" thường được áp dụng để chứng minh tính đúng đắn cho loại cấu trúc điều khiển nào trong chương trình?

  • A. Câu lệnh rẽ nhánh if-else.
  • B. Các cấu trúc vòng lặp (for, while, do-while).
  • C. Các lời gọi hàm đệ quy.
  • D. Các câu lệnh gán giá trị đơn giản.

Câu 25: Ngoài việc tìm lỗi, kiểm thử còn giúp đánh giá khía cạnh nào khác của chương trình?

  • A. Hiệu năng (thời gian chạy, bộ nhớ sử dụng) dưới tải trọng nhất định.
  • B. Tính đúng đắn tuyệt đối của thuật toán.
  • C. Tính thẩm mỹ của giao diện người dùng.
  • D. Khả năng tương thích với các ngôn ngữ lập trình khác.

Câu 26: Bạn đang đánh giá hai thuật toán tìm kiếm trên danh sách đã sắp xếp: tìm kiếm tuyến tính và tìm kiếm nhị phân. Thuật toán tìm kiếm nhị phân (với độ phức tạp O(log N)) thường được ưa chuộng hơn tìm kiếm tuyến tính (với độ phức tạp O(N)) khi nào?

  • A. Khi danh sách rất nhỏ.
  • B. Khi danh sách chưa được sắp xếp.
  • C. Khi danh sách rất lớn.
  • D. Khi cần sử dụng ít bộ nhớ hơn.

Câu 27: Trong bối cảnh kiểm thử, "trường hợp biên" (edge case) đề cập đến điều gì?

  • A. Trường hợp dữ liệu đầu vào hoàn toàn ngẫu nhiên.
  • B. Các giá trị đầu vào ở giới hạn của phạm vi hợp lệ hoặc các điều kiện đặc biệt (ví dụ: giá trị nhỏ nhất, lớn nhất, rỗng, 0).
  • C. Trường hợp chương trình chạy trên một hệ điều hành khác.
  • D. Trường hợp chương trình bị treo hoặc gây lỗi hệ thống.

Câu 28: Tại sao việc kiểm thử một chương trình không thể thay thế hoàn toàn việc chứng minh tính đúng đắn của thuật toán bằng phương pháp logic toán học?

  • A. Kiểm thử chỉ kiểm tra chương trình trên một tập hợp hữu hạn các trường hợp đầu vào, trong khi chứng minh logic bao quát mọi trường hợp đầu vào có thể có.
  • B. Kiểm thử chỉ phát hiện lỗi hiệu năng, còn chứng minh logic phát hiện lỗi tính đúng.
  • C. Kiểm thử tốn nhiều thời gian hơn chứng minh logic.
  • D. Chứng minh logic chỉ áp dụng được cho các bài toán đơn giản.

Câu 29: Một chương trình xử lý chuỗi ký tự, ví dụ như đếm số lần xuất hiện của một ký tự con. Để kiểm thử hiệu quả chức năng này, bộ dữ liệu kiểm thử cần bao gồm những trường hợp nào?

  • A. Chỉ cần các chuỗi rất dài.
  • B. Chỉ cần các chuỗi chứa các ký tự đặc biệt.
  • C. Chuỗi rỗng, chuỗi chỉ có một ký tự, chuỗi chứa ký tự cần tìm ở đầu/cuối, chuỗi chứa ký tự cần tìm lặp lại nhiều lần, chuỗi không chứa ký tự cần tìm.
  • D. Chỉ cần các chuỗi có độ dài ngẫu nhiên.

Câu 30: Khi phân tích độ phức tạp thời gian của một thuật toán, chúng ta thường quan tâm đến "trường hợp xấu nhất" (worst-case). Tại sao?

  • A. Vì trường hợp xấu nhất là trường hợp dễ phân tích nhất.
  • B. Vì nó cung cấp giới hạn trên về thời gian thực thi, đảm bảo rằng thuật toán sẽ không bao giờ chạy chậm hơn mức đó, từ đó đưa ra sự đảm bảo về hiệu năng.
  • C. Vì trường hợp xấu nhất là trường hợp thường xảy ra nhất trong thực tế.
  • D. Vì phân tích trường hợp xấu nhất giúp tìm ra lỗi trong thuật toán.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 1: Một lập trình viên vừa hoàn thành một chương trình tính diện tích hình tròn dựa trên bán kính nhập vào. Để kiểm thử chương trình này một cách hiệu quả, bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất cần được xem xét, ngoài các giá trị bán kính dương thông thường?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 2: Bạn đang kiểm thử một hàm sắp xếp danh sách số nguyên. Bạn đã thử nghiệm với danh sách ngẫu nhiên và danh sách đã được sắp xếp tăng dần. Trường hợp kiểm thử nào sau đây cũng rất quan trọng để đánh giá độ tin cậy của hàm sắp xếp?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 3: Mục đích chính của việc kiểm thử chương trình bằng các bộ dữ liệu đầu vào là gì?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 4: Tại sao kiểm thử bằng cách chạy chương trình với nhiều bộ dữ liệu khác nhau không thể đảm bảo tính đúng đắn tuyệt đối của thuật toán?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 5: Phương pháp nào sau đây được xem là có khả năng chứng minh tính đúng đắn của một thuật toán một cách chắc chắn về mặt lý thuyết?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 6: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 7: Độ phức tạp thời gian của một thuật toán cho biết điều gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 8: Một thuật toán A có độ phức tạp thời gian O(N), thuật toán B có độ phức tạp thời gian O(N^2). N là kích thước dữ liệu đầu vào. Khi N rất lớn, thuật toán nào thường được coi là hiệu quả hơn về mặt thời gian?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 9: Độ phức tạp không gian của một thuật toán cho biết điều gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 10: Giả sử bạn có một chương trình tìm kiếm phần tử trong danh sách. Bạn sử dụng phương pháp tìm kiếm tuyến tính. Để kiểm thử tính đúng của chương trình này, bạn nên bao gồm các trường hợp nào trong bộ dữ liệu kiểm thử?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 11: Khi phát triển một phần mềm quan trọng (ví dụ: hệ thống điều khiển y tế), việc sử dụng các phương pháp chứng minh tính đúng đắn (Formal Verification) có ý nghĩa gì so với chỉ kiểm thử bằng dữ liệu?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 12: Một chương trình xử lý ngày tháng. Bạn cần kiểm thử xem nó có xử lý đúng năm nhuận hay không. Trường hợp kiểm thử nào sau đây là cần thiết?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 13: Cho một thuật toán có độ phức tạp thời gian O(N log N). Nếu kích thước đầu vào N tăng gấp đôi, thời gian thực thi của thuật toán này dự kiến sẽ tăng lên như thế nào?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 14: Khi nào thì việc tối ưu hóa dung lượng bộ nhớ sử dụng (độ phức tạp không gian) trở nên đặc biệt quan trọng?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 15: Bạn đang kiểm thử một chương trình xử lý văn bản, cụ thể là chức năng đếm số từ. Bộ dữ liệu kiểm thử nào sau đây giúp phát hiện lỗi liên quan đến xử lý dấu câu và khoảng trắng?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 16: Một kỹ thuật chứng minh tính đúng đắn của thuật toán sử dụng 'bất biến vòng lặp'. Bất biến vòng lặp là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 17: Khi đánh giá hiệu quả của thuật toán sắp xếp, ngoài thời gian và bộ nhớ, một tiêu chí khác có thể được xem xét là 'tính ổn định' (stability). Thuật toán sắp xếp ổn định là gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 18: Bạn viết một chương trình giải phương trình bậc hai ax^2 + bx + c = 0. Để kiểm thử chương trình này, bạn cần tạo các bộ dữ liệu đầu vào (a, b, c) bao gồm những trường hợp nào?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 19: Một chương trình được coi là có 'độ tin cậy' cao khi nào?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 20: Tại sao việc sử dụng các bộ dữ liệu kiểm thử đa dạng lại quan trọng trong quá trình kiểm thử chương trình?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 21: Trong ngữ cảnh đánh giá hiệu quả thuật toán, 'kích thước dữ liệu đầu vào' (input size) thường được hiểu là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 22: Giả sử bạn cần kiểm thử một chức năng tính tổng của một mảng số nguyên. Bạn đã kiểm thử với mảng rỗng, mảng chỉ có một phần tử, mảng có các số dương. Trường hợp kiểm thử nào sau đây giúp kiểm tra thêm các tình huống có thể xảy ra lỗi?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 23: Trong quá trình đánh giá một chương trình, nếu thời gian thực thi tăng gấp đôi khi kích thước đầu vào tăng gấp đôi, thì độ phức tạp thời gian của thuật toán đó có khả năng là gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 24: Việc sử dụng 'bất biến vòng lặp' thường được áp dụng để chứng minh tính đúng đắn cho loại cấu trúc điều khiển nào trong chương trình?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 25: Ngoài việc tìm lỗi, kiểm thử còn giúp đánh giá khía cạnh nào khác của chương trình?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 26: Bạn đang đánh giá hai thuật toán tìm kiếm trên danh sách đã sắp xếp: tìm kiếm tuyến tính và tìm kiếm nhị phân. Thuật toán tìm kiếm nhị phân (với độ phức tạp O(log N)) thường được ưa chuộng hơn tìm kiếm tuyến tính (với độ phức tạp O(N)) khi nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 27: Trong bối cảnh kiểm thử, 'trường hợp biên' (edge case) đề cập đến điều gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 28: Tại sao việc kiểm thử một chương trình không thể thay thế hoàn toàn việc chứng minh tính đúng đắn của thuật toán bằng phương pháp logic toán học?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 29: Một chương trình xử lý chuỗi ký tự, ví dụ như đếm số lần xuất hiện của một ký tự con. Để kiểm thử hiệu quả chức năng này, bộ dữ liệu kiểm thử cần bao gồm những trường hợp nào?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 02

Câu 30: Khi phân tích độ phức tạp thời gian của một thuật toán, chúng ta thường quan tâm đến 'trường hợp xấu nhất' (worst-case). Tại sao?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 03

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 03 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Một lập trình viên đã viết một chương trình tính tổng các số nguyên từ 1 đến N. Anh ta kiểm thử chương trình với N=10, N=100, và N=1000 và thấy kết quả luôn đúng. Dựa trên kiến thức về kiểm thử chương trình, kết luận nào sau đây là chính xác nhất?

  • A. Chương trình chắc chắn đúng với mọi giá trị N.
  • B. Chương trình đã được chứng minh tính đúng bằng phương pháp kiểm thử.
  • C. Chương trình có độ tin cậy cao và có thể chứng minh bằng quy nạp toán học.
  • D. Việc kiểm thử này làm tăng độ tin cậy của chương trình, nhưng không đủ để chứng minh tính đúng cho mọi giá trị N.

Câu 2: Phương pháp nào sau đây cung cấp sự đảm bảo mạnh mẽ nhất về tính đúng đắn của một thuật toán cho mọi trường hợp đầu vào có thể có?

  • A. Kiểm thử với bộ dữ liệu lớn.
  • B. Kiểm thử với bộ dữ liệu ngẫu nhiên.
  • C. Chứng minh bằng lập luận logic/toán học.
  • D. Kiểm tra hiệu năng của chương trình.

Câu 3: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

  • A. Tính đúng đắn và dễ hiểu.
  • B. Thời gian thực hiện và dung lượng bộ nhớ sử dụng.
  • C. Số dòng mã lệnh và khả năng tái sử dụng.
  • D. Độ phức tạp logic và tính bảo mật.

Câu 4: Tại sao việc chọn các bộ dữ liệu kiểm thử đa dạng lại quan trọng trong quá trình kiểm thử chương trình?

  • A. Để chứng minh chương trình chạy nhanh.
  • B. Để giảm số lượng bộ dữ liệu cần kiểm thử.
  • C. Để tăng khả năng phát hiện lỗi trong nhiều tình huống khác nhau (bao gồm cả trường hợp biên và đặc biệt).
  • D. Để đơn giản hóa cấu trúc của thuật toán.

Câu 5: Một nhà phát triển sử dụng phương pháp bất biến vòng lặp để chứng minh tính đúng của một thuật toán sắp xếp. Điều này có nghĩa là anh ta đang cố gắng chứng minh điều gì?

  • A. Một thuộc tính nào đó của dữ liệu/trạng thái chương trình luôn đúng trước và sau mỗi lần lặp của một vòng lặp cụ thể.
  • B. Chương trình không bao giờ gặp lỗi ngoại lệ.
  • C. Thời gian chạy của thuật toán là tối ưu nhất.
  • D. Chương trình hoạt động đúng với mọi bộ dữ liệu kiểm thử đã cho.

Câu 6: Giả sử bạn có hai thuật toán cùng giải quyết một bài toán. Thuật toán A có độ phức tạp thời gian là O(N^2) và thuật toán B là O(N log N). Khi kích thước dữ liệu đầu vào (N) rất lớn, thuật toán nào thường được coi là hiệu quả hơn về mặt thời gian?

  • A. Thuật toán A.
  • B. Thuật toán B.
  • C. Cả hai thuật toán có hiệu quả như nhau.
  • D. Không thể xác định nếu không biết hằng số ẩn trong ký hiệu O lớn.

Câu 7: Mục đích chính của việc đánh giá độ phức tạp thời gian và không gian của một thuật toán là gì?

  • A. Để tìm ra tất cả các lỗi trong chương trình.
  • B. Để chứng minh chương trình luôn chạy đúng.
  • C. Để xác định ngôn ngữ lập trình phù hợp nhất.
  • D. Để dự đoán và so sánh hiệu suất của thuật toán khi kích thước đầu vào tăng lên.

Câu 8: Một chương trình xử lý danh sách N phần tử. Quan sát cho thấy khi N tăng gấp đôi, thời gian chạy của chương trình tăng gấp khoảng 4 lần. Độ phức tạp thời gian của chương trình này có khả năng là bao nhiêu?

  • A. O(N)
  • B. O(N log N)
  • C. O(N^2)
  • D. O(log N)

Câu 9: Phân tích độ phức tạp không gian của một thuật toán nhằm mục đích chính là gì?

  • A. Đo lường lượng bộ nhớ phụ mà thuật toán sử dụng.
  • B. Đo lường thời gian cần thiết để thực hiện thuật toán.
  • C. Xác định số lượng lỗi trong mã lệnh.
  • D. Đảm bảo tính dễ hiểu và dễ bảo trì của chương trình.

Câu 10: Khái niệm "tính đúng đắn" của chương trình có ý nghĩa là gì?

  • A. Chương trình chạy nhanh và sử dụng ít bộ nhớ.
  • B. Chương trình thực hiện đúng chức năng đã được chỉ định cho mọi trường hợp đầu vào hợp lệ.
  • C. Chương trình không có bất kỳ lỗi cú pháp nào.
  • D. Chương trình đã vượt qua tất cả các bài kiểm thử.

Câu 11: Tại sao kiểm thử không thể chứng minh tính đúng tuyệt đối của chương trình?

  • A. Vì các bộ dữ liệu kiểm thử luôn có sai sót.
  • B. Vì thuật toán có thể thay đổi trong quá trình kiểm thử.
  • C. Vì kiểm thử chỉ tập trung vào hiệu năng.
  • D. Vì số lượng các trường hợp đầu vào có thể là vô hạn hoặc quá lớn để kiểm tra hết.

Câu 12: Phương pháp nào sau đây KHÔNG phải là phương pháp phổ biến để chứng minh tính đúng của thuật toán?

  • A. Kiểm thử với dữ liệu ngẫu nhiên.
  • B. Chứng minh bằng quy nạp toán học.
  • C. Sử dụng bất biến vòng lặp.
  • D. Lập luận logic chặt chẽ dựa trên đặc tả thuật toán.

Câu 13: Trong bối cảnh kiểm thử, "trường hợp biên" (edge case) đề cập đến điều gì?

  • A. Trường hợp dữ liệu đầu vào rất lớn.
  • B. Các giá trị đầu vào ở giới hạn trên hoặc dưới của miền giá trị hợp lệ, hoặc các điều kiện đặc biệt.
  • C. Trường hợp chương trình chạy rất nhanh.
  • D. Trường hợp chương trình sử dụng nhiều bộ nhớ nhất.

Câu 14: Giả sử bạn đang kiểm thử một hàm tính căn bậc hai. Bộ dữ liệu kiểm thử nào sau đây có khả năng phát hiện lỗi tốt nhất?

  • A. Chỉ các số nguyên dương lớn.
  • B. Chỉ các số thập phân ngẫu nhiên.
  • C. Chỉ các số chính phương nhỏ (ví dụ: 4, 9, 16).
  • D. Các số âm, 0, 1, số rất lớn, số rất nhỏ, và các số không phải là số chính phương.

Câu 15: Khi so sánh hai thuật toán A và B về hiệu quả thời gian, chúng ta thường quan tâm đến điều gì khi kích thước đầu vào N trở nên rất lớn?

  • A. Thời gian thực tế chạy trên một máy tính cụ thể.
  • B. Số dòng mã lệnh của mỗi thuật toán.
  • C. Tốc độ tăng trưởng của thời gian chạy theo N (độ phức tạp thời gian tiệm cận).
  • D. Lượng bộ nhớ sử dụng của mỗi thuật toán.

Câu 16: Một chương trình xử lý một mảng N phần tử. Đoạn mã chính của nó là một vòng lặp duyệt qua tất cả các cặp phần tử (i, j) với i < j. Độ phức tạp thời gian của đoạn mã này có khả năng là bao nhiêu?

  • A. O(N)
  • B. O(N log N)
  • C. O(N^2)
  • D. O(log N)

Câu 17: Khi nói về "độ tin cậy" của chương trình, chúng ta muốn đề cập đến khía cạnh nào?

  • A. Khả năng chương trình hoạt động đúng và ổn định trong các điều kiện sử dụng thực tế.
  • B. Chương trình chạy nhanh như thế nào.
  • C. Chương trình sử dụng bao nhiêu bộ nhớ.
  • D. Mã nguồn của chương trình dễ đọc như thế nào.

Câu 18: Phương pháp "kiểm thử hộp đen" (Black-box testing) tập trung vào điều gì khi thiết kế các bộ dữ liệu kiểm thử?

  • A. Cấu trúc mã nguồn và đường đi thực thi bên trong chương trình.
  • B. Đặc tả yêu cầu và chức năng của chương trình, dựa trên đầu vào và đầu ra mong đợi.
  • C. Thời gian chạy và dung lượng bộ nhớ sử dụng.
  • D. Khả năng chịu lỗi của chương trình trước các cuộc tấn công bảo mật.

Câu 19: Ngược lại với kiểm thử hộp đen, "kiểm thử hộp trắng" (White-box testing) tập trung vào điều gì?

  • A. Cấu trúc mã nguồn, đường đi thực thi, các câu lệnh và điều kiện bên trong chương trình.
  • B. Chức năng của chương trình dựa trên đặc tả yêu cầu.
  • C. Phản hồi của người dùng cuối.
  • D. Khả năng tương thích với các hệ điều hành khác nhau.

Câu 20: Khi sử dụng phương pháp quy nạp toán học để chứng minh tính đúng của một thuật toán đệ quy, bước cơ sở (base case) trong quy nạp tương ứng với điều gì trong thuật toán?

  • A. Bước lặp chính của thuật toán.
  • B. Trường hợp xấu nhất của đầu vào.
  • C. Trường hợp dừng (điều kiện kết thúc) của hàm đệ quy.
  • D. Phần gọi đệ quy của hàm.

Câu 21: Một thuật toán tìm kiếm trên một mảng đã được sắp xếp bằng cách chia đôi phạm vi tìm kiếm liên tục. Độ phức tạp thời gian của thuật toán này là gì?

  • A. O(N)
  • B. O(N^2)
  • C. O(1)
  • D. O(log N)

Câu 22: Điều gì xảy ra với hiệu quả của một thuật toán có độ phức tạp thời gian O(N!) khi kích thước đầu vào N tăng lên chỉ một lượng nhỏ (ví dụ: từ 10 lên 15)?

  • A. Thời gian chạy tăng lên rất nhanh (theo cấp số nhân/giai thừa).
  • B. Thời gian chạy tăng lên tuyến tính.
  • C. Thời gian chạy tăng lên theo logarit.
  • D. Thời gian chạy hầu như không thay đổi.

Câu 23: Trong quá trình đánh giá chương trình, việc cân nhắc giữa "độ phức tạp thời gian" và "độ phức tạp không gian" là cần thiết vì:

  • A. Luôn có một thuật toán tối ưu cho cả thời gian và không gian.
  • B. Độ phức tạp thời gian và không gian luôn tỷ lệ thuận với nhau.
  • C. Việc tối ưu hóa một yếu tố (thời gian hoặc không gian) thường có thể làm giảm hiệu quả của yếu tố còn lại (đánh đổi).
  • D. Chỉ một trong hai yếu tố này là quan trọng trong mọi trường hợp.

Câu 24: Khi nào thì việc tối ưu "độ phức tạp không gian" trở nên đặc biệt quan trọng?

  • A. Khi thời gian thực hiện là yếu tố duy nhất quan trọng.
  • B. Khi chương trình chạy trên thiết bị có bộ nhớ hạn chế hoặc xử lý lượng dữ liệu rất lớn.
  • C. Khi cần chứng minh tính đúng đắn của thuật toán.
  • D. Khi cần làm cho mã nguồn dễ đọc hơn.

Câu 25: Một chương trình được thiết kế để xử lý các truy vấn tìm kiếm trên một cơ sở dữ liệu lớn. Yếu tố nào sau đây có khả năng ảnh hưởng lớn nhất đến hiệu quả của chương trình?

  • A. Độ phức tạp thời gian của thuật toán tìm kiếm và xử lý truy vấn.
  • B. Màu sắc giao diện người dùng.
  • C. Số lượng bình luận trong mã nguồn.
  • D. Tên biến được sử dụng trong chương trình.

Câu 26: Phương pháp nào sau đây KHÔNG giúp tăng độ tin cậy của chương trình?

  • A. Thực hiện kiểm thử kỹ lưỡng với nhiều bộ dữ liệu.
  • B. Sửa các lỗi được phát hiện trong quá trình kiểm thử.
  • C. Thực hiện đánh giá mã nguồn (code review) bởi các lập trình viên khác.
  • D. Viết tài liệu hướng dẫn sử dụng chi tiết cho người dùng cuối.

Câu 27: Một thuật toán được chứng minh là đúng bằng quy nạp toán học. Điều này có ý nghĩa gì đối với việc kiểm thử chương trình cài đặt thuật toán đó?

  • A. Không cần kiểm thử chương trình cài đặt thuật toán nữa.
  • B. Kiểm thử vẫn cần thiết để phát hiện các lỗi trong quá trình cài đặt thuật toán (lỗi lập trình, lỗi cú pháp, v.v.), mặc dù logic của thuật toán đã được chứng minh là đúng.
  • C. Kiểm thử chỉ cần tập trung vào hiệu năng, không cần kiểm tra tính đúng.
  • D. Việc chứng minh bằng quy nạp đã bao gồm cả việc kiểm thử.

Câu 28: Đâu là sự khác biệt cơ bản giữa "kiểm thử" và "chứng minh tính đúng" của chương trình/thuật toán?

  • A. Kiểm thử tìm lỗi trong các trường hợp cụ thể, còn chứng minh tính đúng đảm bảo chương trình/thuật toán đúng cho mọi trường hợp bằng lập luận logic.
  • B. Kiểm thử chỉ áp dụng cho mã nguồn, còn chứng minh tính đúng chỉ áp dụng cho thuật toán.
  • C. Kiểm thử giúp tăng hiệu quả, còn chứng minh tính đúng giúp tăng độ tin cậy.
  • D. Kiểm thử là tự động, còn chứng minh tính đúng là thủ công.

Câu 29: Giả sử bạn cần viết một chương trình xử lý dữ liệu lớn trên một máy chủ có tài nguyên bộ nhớ rất dồi dào nhưng yêu cầu thời gian phản hồi nhanh nhất có thể. Tiêu chí nào sau đây bạn nên ưu tiên tối ưu khi thiết kế thuật toán?

  • A. Độ phức tạp thời gian.
  • B. Độ phức tạp không gian.
  • C. Tính dễ hiểu của mã nguồn.
  • D. Số lượng biến được sử dụng.

Câu 30: Khi một lập trình viên sử dụng phương pháp bất biến vòng lặp để chứng minh tính đúng của một thuật toán lặp, anh ta cần chứng minh những điều gì?

  • A. Chỉ cần chứng minh bất biến đúng trước vòng lặp và sau khi vòng lặp kết thúc.
  • B. Chỉ cần chứng minh bất biến được duy trì sau mỗi lần lặp.
  • C. Chỉ cần chứng minh bất biến đúng với một vài trường hợp đầu vào.
  • D. Bất biến đúng trước vòng lặp, bất biến được duy trì sau mỗi lần lặp, và bất biến cùng điều kiện kết thúc đảm bảo kết quả đúng.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 1: Một lập trình viên đã viết một chương trình tính tổng các số nguyên từ 1 đến N. Anh ta kiểm thử chương trình với N=10, N=100, và N=1000 và thấy kết quả luôn đúng. Dựa trên kiến thức về kiểm thử chương trình, kết luận nào sau đây là chính xác nhất?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 2: Phương pháp nào sau đây cung cấp sự đảm bảo mạnh mẽ nhất về tính đúng đắn của một thuật toán cho mọi trường hợp đầu vào có thể có?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 3: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 4: Tại sao việc chọn các bộ dữ liệu kiểm thử đa dạng lại quan trọng trong quá trình kiểm thử chương trình?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 5: Một nhà phát triển sử dụng phương pháp bất biến vòng lặp để chứng minh tính đúng của một thuật toán sắp xếp. Điều này có nghĩa là anh ta đang cố gắng chứng minh điều gì?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 6: Giả sử bạn có hai thuật toán cùng giải quyết một bài toán. Thuật toán A có độ phức tạp thời gian là O(N^2) và thuật toán B là O(N log N). Khi kích thước dữ liệu đầu vào (N) rất lớn, thuật toán nào thường được coi là hiệu quả hơn về mặt thời gian?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 7: Mục đích chính của việc đánh giá độ phức tạp thời gian và không gian của một thuật toán là gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 8: Một chương trình xử lý danh sách N phần tử. Quan sát cho thấy khi N tăng gấp đôi, thời gian chạy của chương trình tăng gấp khoảng 4 lần. Độ phức tạp thời gian của chương trình này có khả năng là bao nhiêu?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 9: Phân tích độ phức tạp không gian của một thuật toán nhằm mục đích chính là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 10: Khái niệm 'tính đúng đắn' của chương trình có ý nghĩa là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 11: Tại sao kiểm thử không thể chứng minh tính đúng tuyệt đối của chương trình?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 12: Phương pháp nào sau đây KHÔNG phải là phương pháp phổ biến để chứng minh tính đúng của thuật toán?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 13: Trong bối cảnh kiểm thử, 'trường hợp biên' (edge case) đề cập đến điều gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 14: Giả sử bạn đang kiểm thử một hàm tính căn bậc hai. Bộ dữ liệu kiểm thử nào sau đây có khả năng phát hiện lỗi tốt nhất?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 15: Khi so sánh hai thuật toán A và B về hiệu quả thời gian, chúng ta thường quan tâm đến điều gì khi kích thước đầu vào N trở nên rất lớn?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 16: Một chương trình xử lý một mảng N phần tử. Đoạn mã chính của nó là một vòng lặp duyệt qua tất cả các cặp phần tử (i, j) với i < j. Độ phức tạp thời gian của đoạn mã này có khả năng là bao nhiêu?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 17: Khi nói về 'độ tin cậy' của chương trình, chúng ta muốn đề cập đến khía cạnh nào?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 18: Phương pháp 'kiểm thử hộp đen' (Black-box testing) tập trung vào điều gì khi thiết kế các bộ dữ liệu kiểm thử?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 19: Ngược lại với kiểm thử hộp đen, 'kiểm thử hộp trắng' (White-box testing) tập trung vào điều gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 20: Khi sử dụng phương pháp quy nạp toán học để chứng minh tính đúng của một thuật toán đệ quy, bước cơ sở (base case) trong quy nạp tương ứng với điều gì trong thuật toán?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 21: Một thuật toán tìm kiếm trên một mảng đã được sắp xếp bằng cách chia đôi phạm vi tìm kiếm liên tục. Độ phức tạp thời gian của thuật toán này là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 22: Điều gì xảy ra với hiệu quả của một thuật toán có độ phức tạp thời gian O(N!) khi kích thước đầu vào N tăng lên chỉ một lượng nhỏ (ví dụ: từ 10 lên 15)?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 23: Trong quá trình đánh giá chương trình, việc cân nhắc giữa 'độ phức tạp thời gian' và 'độ phức tạp không gian' là cần thiết vì:

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 24: Khi nào thì việc tối ưu 'độ phức tạp không gian' trở nên đặc biệt quan trọng?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 25: Một chương trình được thiết kế để xử lý các truy vấn tìm kiếm trên một cơ sở dữ liệu lớn. Yếu tố nào sau đây có khả năng ảnh hưởng lớn nhất đến hiệu quả của chương trình?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 26: Phương pháp nào sau đây KHÔNG giúp tăng độ tin cậy của chương trình?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 27: Một thuật toán được chứng minh là đúng bằng quy nạp toán học. Điều này có ý nghĩa gì đối với việc kiểm thử chương trình cài đặt thuật toán đó?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 28: Đâu là sự khác biệt cơ bản giữa 'kiểm thử' và 'chứng minh tính đúng' của chương trình/thuật toán?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 29: Giả sử bạn cần viết một chương trình xử lý dữ liệu lớn trên một máy chủ có tài nguyên bộ nhớ rất dồi dào nhưng yêu cầu thời gian phản hồi nhanh nhất có thể. Tiêu chí nào sau đây bạn nên ưu tiên tối ưu khi thiết kế thuật toán?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 03

Câu 30: Khi một lập trình viên sử dụng phương pháp bất biến vòng lặp để chứng minh tính đúng của một thuật toán lặp, anh ta cần chứng minh những điều gì?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 04

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 04 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi kiểm thử một chương trình tính toán tiền lương, bộ dữ liệu kiểm thử nào sau đây được xem là quan trọng nhất để phát hiện các lỗi tiềm ẩn liên quan đến điều kiện tính toán?

  • A. Bộ dữ liệu với các mức lương trung bình.
  • B. Bộ dữ liệu chỉ chứa các mức lương cao.
  • C. Bộ dữ liệu chứa các trường hợp biên (ví dụ: mức lương ngay tại ngưỡng thay đổi thuế suất, lương bằng 0).
  • D. Bộ dữ liệu được tạo ra hoàn toàn ngẫu nhiên.

Câu 2: Một lập trình viên đã viết một chương trình sắp xếp danh sách các số nguyên. Anh ta đã kiểm thử chương trình với 100 bộ dữ liệu ngẫu nhiên và chương trình đều chạy đúng. Tuy nhiên, điều này KHÔNG ĐẢM BẢO điều gì?

  • A. Chương trình sẽ chạy nhanh trên mọi bộ dữ liệu.
  • B. Chương trình không sử dụng nhiều bộ nhớ.
  • C. Chương trình dễ hiểu và dễ bảo trì.
  • D. Thuật toán sắp xếp được cài đặt là hoàn toàn đúng cho mọi trường hợp đầu vào.

Câu 3: Phương pháp nào sau đây cung cấp cơ sở lý thuyết vững chắc nhất để khẳng định tính đúng đắn của một thuật toán cho mọi trường hợp đầu vào hợp lệ?

  • A. Thực hiện kiểm thử với một lượng lớn dữ liệu đa dạng.
  • B. Sử dụng phương pháp chứng minh bằng lôgic toán học hoặc các phương pháp hình thức.
  • C. Đo lường thời gian chạy và dung lượng bộ nhớ sử dụng trên các máy tính khác nhau.
  • D. So sánh kết quả chạy chương trình với kết quả mong đợi trên một số ít trường hợp đặc biệt.

Câu 4: Khi đánh giá hiệu quả của một thuật toán, yếu tố "độ phức tạp thời gian" thường được biểu diễn bằng ký hiệu Big O (ví dụ: O(n), O(n log n), O(n^2)). Ký hiệu này chủ yếu mô tả điều gì?

  • A. Tốc độ tăng trưởng của thời gian chạy khi kích thước dữ liệu đầu vào tăng lên.
  • B. Thời gian chạy chính xác của thuật toán trên một máy tính cụ thể.
  • C. Tổng số dòng mã trong thuật toán.
  • D. Lượng bộ nhớ mà thuật toán sử dụng.

Câu 5: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp thời gian là O(n^2) và thuật toán B có độ phức tạp thời gian là O(n log n). Với một bộ dữ liệu đầu vào có kích thước N rất lớn, thuật toán nào có khả năng chạy nhanh hơn đáng kể?

  • A. Thuật toán A.
  • B. Thuật toán B.
  • C. Thời gian chạy của cả hai thuật toán là như nhau với N lớn.
  • D. Không thể xác định nếu không biết giá trị cụ thể của N.

Câu 6: Khi kiểm thử một chương trình, việc sử dụng các bộ dữ liệu kiểm thử có tính "tiêu cực" (negative test cases) nhằm mục đích gì?

  • A. Kiểm tra khả năng xử lý các trường hợp đầu vào không hợp lệ hoặc bất thường.
  • B. Kiểm tra xem chương trình có cho kết quả đúng với dữ liệu hợp lệ không.
  • C. Đo lường hiệu suất của chương trình khi tải cao.
  • D. Chứng minh rằng chương trình không có bất kỳ lỗi nào.

Câu 7: Một chương trình được thiết kế để tìm kiếm một phần tử trong danh sách đã sắp xếp. Thuật toán tìm kiếm nhị phân thường được ưa chuộng hơn tìm kiếm tuần tự cho danh sách lớn vì lý do nào sau đây?

  • A. Tìm kiếm nhị phân sử dụng ít bộ nhớ hơn.
  • B. Tìm kiếm nhị phân dễ cài đặt hơn.
  • C. Tìm kiếm nhị phân có độ phức tạp thời gian tốt hơn (logarit) so với tìm kiếm tuần tự (tuyến tính) trên danh sách lớn.
  • D. Tìm kiếm nhị phân không yêu cầu danh sách phải được sắp xếp.

Câu 8: Mục đích chính của việc sử dụng bất biến vòng lặp (loop invariant) trong chứng minh tính đúng đắn của thuật toán là gì?

  • A. Đo lường số lần vòng lặp thực hiện.
  • B. Xác định lượng bộ nhớ mà vòng lặp tiêu thụ.
  • C. Phát hiện các lỗi cú pháp trong vòng lặp.
  • D. Thiết lập một tính chất luôn đúng qua mỗi lần lặp, làm cơ sở để chứng minh tính đúng đắn của vòng lặp và toàn bộ thuật toán.

Câu 9: Giả sử bạn đang kiểm thử một hàm tính giai thừa của một số nguyên dương n. Bộ dữ liệu kiểm thử nào sau đây là ví dụ tốt cho "trường hợp biên" (boundary case)?

  • A. n = 1.
  • B. n = 50.
  • C. n = 1000.
  • D. n = -5 (nếu hàm chỉ xử lý số dương).

Câu 10: Khi nào thì việc chứng minh tính đúng đắn của thuật toán bằng lôgic toán học trở nên đặc biệt quan trọng và cần thiết hơn so với chỉ kiểm thử?

  • A. Khi chương trình cần chạy rất nhanh.
  • B. Khi dung lượng bộ nhớ là hạn chế.
  • C. Khi chương trình xử lý các tác vụ quan trọng, yêu cầu độ tin cậy và chính xác tuyệt đối (ví dụ: hệ thống điều khiển tự động, phần mềm y tế).
  • D. Khi chương trình có giao diện người dùng phức tạp.

Câu 11: Đánh giá "độ phức tạp không gian" của một thuật toán chủ yếu liên quan đến việc đo lường yếu tố nào sau đây?

  • A. Số lượng phép tính cơ bản.
  • B. Lượng bộ nhớ (RAM) mà thuật toán cần để lưu trữ dữ liệu và biến trong quá trình chạy.
  • C. Số lần vòng lặp thực hiện.
  • D. Thời gian cần thiết để biên dịch chương trình.

Câu 12: Giả sử bạn viết một chương trình tính tổng các phần tử trong một mảng có N phần tử. Thuật toán đơn giản nhất là duyệt qua mảng từ đầu đến cuối. Độ phức tạp thời gian của thuật toán này là gì?

  • A. O(N)
  • B. O(N^2)
  • C. O(log N)
  • D. O(1)

Câu 13: Tại sao việc kiểm thử chương trình với "dữ liệu thực tế" (real-world data) lại quan trọng, ngay cả khi đã kiểm thử với dữ liệu tổng hợp?

  • A. Dữ liệu thực tế luôn nhỏ hơn dữ liệu tổng hợp.
  • B. Dữ liệu thực tế giúp chương trình chạy nhanh hơn.
  • C. Dữ liệu thực tế dễ tạo hơn dữ liệu tổng hợp.
  • D. Dữ liệu thực tế có thể chứa các trường hợp, mẫu hình hoặc lỗi mà dữ liệu tổng hợp không mô phỏng được, giúp phát hiện lỗi trong môi trường sử dụng thực tế.

Câu 14: "Độ tin cậy" của chương trình, được tăng cường đáng kể thông qua quá trình kiểm thử, có nghĩa là gì?

  • A. Chương trình chạy rất nhanh.
  • B. Chương trình hoạt động đúng và ổn định trong các điều kiện hoạt động dự kiến.
  • C. Chương trình sử dụng ít bộ nhớ.
  • D. Mã nguồn của chương trình ngắn gọn và dễ đọc.

Câu 15: Trong quá trình kiểm thử, việc phát hiện và sửa một lỗi (bug) trong chương trình có tác động trực tiếp đến khía cạnh nào sau đây?

  • A. Độ phức tạp thời gian của thuật toán.
  • B. Độ phức tạp không gian của thuật toán.
  • C. Tính đúng đắn và độ tin cậy của chương trình.
  • D. Khả năng dễ hiểu của mã nguồn.

Câu 16: Giả sử bạn có một chương trình xử lý chuỗi văn bản. Một bộ dữ liệu kiểm thử hiệu quả để kiểm tra khả năng xử lý các "trường hợp đặc biệt" (edge cases) của chuỗi có thể bao gồm những gì?

  • A. Chỉ các chuỗi có độ dài trung bình.
  • B. Chỉ các chuỗi chứa các từ thông dụng.
  • C. Chỉ các chuỗi tiếng Anh đơn giản.
  • D. Chuỗi rỗng, chuỗi chỉ có một ký tự, chuỗi rất dài, chuỗi chứa ký tự đặc biệt.

Câu 17: Khi so sánh hai thuật toán về mặt hiệu quả, tại sao chúng ta thường tập trung vào "độ phức tạp tiệm cận" (asymptotic complexity) thay vì đo lường thời gian chạy chính xác trên một máy cụ thể?

  • A. Độ phức tạp tiệm cận phản ánh hiệu suất của thuật toán khi kích thước đầu vào rất lớn và độc lập với phần cứng cụ thể.
  • B. Đo lường thời gian chạy chính xác là không thể.
  • C. Độ phức tạp tiệm cận cho biết chính xác thời gian chạy trên mọi máy tính.
  • D. Độ phức tạp tiệm cận chỉ áp dụng cho các thuật toán đơn giản.

Câu 18: Giả sử một chương trình được kiểm thử và cho kết quả đúng với mọi bộ dữ liệu kiểm thử đã sử dụng. Tuy nhiên, sau khi triển khai, chương trình vẫn gặp lỗi trong một số trường hợp. Nguyên nhân có thể là gì?

  • A. Chương trình chạy quá nhanh.
  • B. Bộ dữ liệu kiểm thử chưa đủ đa dạng hoặc chưa bao phủ hết các trường hợp có thể xảy ra trong thực tế.
  • C. Lỗi là do phần cứng máy tính của người dùng.
  • D. Thuật toán được chứng minh là đúng bằng toán học.

Câu 19: Đâu là một trong những nhược điểm chính của việc chỉ dựa vào kiểm thử để đảm bảo chất lượng chương trình?

  • A. Kiểm thử làm tăng độ phức tạp của thuật toán.
  • B. Kiểm thử luôn đòi hỏi nhiều bộ nhớ.
  • C. Kiểm thử chỉ có thể phát hiện sự hiện diện của lỗi, không thể chứng minh sự vắng mặt của lỗi cho mọi trường hợp.
  • D. Kiểm thử chỉ áp dụng cho các chương trình nhỏ.

Câu 20: Khi đánh giá một thuật toán đệ quy, yếu tố "độ sâu đệ quy" tối đa có thể ảnh hưởng trực tiếp đến khía cạnh hiệu quả nào?

  • A. Độ phức tạp không gian (do sử dụng ngăn xếp cho các lời gọi đệ quy).
  • B. Độ phức tạp thời gian (không phải ảnh hưởng trực tiếp nhất, mà là số lượng phép tính).
  • C. Tính đúng đắn của thuật toán.
  • D. Khả năng dễ hiểu của mã nguồn.

Câu 21: Giả sử bạn đang viết một chương trình xử lý các giao dịch ngân hàng. Để đảm bảo tính đúng đắn, ngoài việc kiểm thử, bạn cần xem xét phương pháp nào khác để tăng cường độ tin cậy, đặc biệt với các tác vụ nhạy cảm?

  • A. Chỉ tập trung vào tối ưu hóa tốc độ chạy.
  • B. Giảm thiểu dung lượng bộ nhớ sử dụng.
  • C. Kết hợp kiểm thử với phân tích mã nguồn tĩnh, kiểm tra lại logic thuật toán, hoặc áp dụng các phương pháp chứng minh hình thức (nếu phù hợp).
  • D. Chỉ cần kiểm thử với dữ liệu ngẫu nhiên.

Câu 22: Một lỗi trong chương trình khiến nó hoạt động không như mong đợi khi gặp một giá trị đầu vào cụ thể. Đây là loại lỗi gì theo góc độ kiểm thử?

  • A. Lỗi logic/chức năng (Functional/Logic Error).
  • B. Lỗi cú pháp (Syntax Error).
  • C. Lỗi thời gian chạy (Runtime Error) - trừ khi nó gây ra ngoại lệ.
  • D. Lỗi biên dịch (Compilation Error).

Câu 23: Khi đánh giá hiệu quả của thuật toán sắp xếp nổi bọt (Bubble Sort), ta thường thấy độ phức tạp thời gian trung bình và xấu nhất là O(n^2). Điều này có ý nghĩa gì đối với việc sử dụng thuật toán này với danh sách có kích thước N lớn?

  • A. Thuật toán sẽ chạy rất nhanh với N lớn.
  • B. Thời gian chạy của thuật toán sẽ tăng lên rất nhanh khi kích thước N tăng lên, khiến nó kém hiệu quả cho danh sách lớn.
  • C. Thuật toán sử dụng ít bộ nhớ với N lớn.
  • D. Thuật toán chỉ hoạt động với danh sách nhỏ.

Câu 24: Một trong những kỹ thuật tạo bộ dữ liệu kiểm thử là "phân vùng tương đương" (equivalence partitioning). Kỹ thuật này dựa trên nguyên tắc nào?

  • A. Chia miền giá trị đầu vào thành các nhóm mà chương trình được kỳ vọng xử lý giống nhau, chỉ cần kiểm thử đại diện cho mỗi nhóm.
  • B. Kiểm thử tất cả các giá trị đầu vào có thể có.
  • C. Chỉ kiểm thử các giá trị ngẫu nhiên.
  • D. Chỉ kiểm thử các giá trị biên của miền đầu vào.

Câu 25: Phương pháp kiểm thử nào tập trung vào việc kiểm tra cấu trúc bên trong của mã nguồn, bao gồm các đường đi thực thi, các vòng lặp và các điều kiện rẽ nhánh?

  • A. Kiểm thử hộp trắng (White Box Testing).
  • B. Kiểm thử hộp đen (Black Box Testing).
  • C. Kiểm thử tự động (Automated Testing).
  • D. Kiểm thử hiệu năng (Performance Testing).

Câu 26: Khi sử dụng phương pháp kiểm thử hộp đen (Black Box Testing), người kiểm thử dựa vào yếu tố nào để thiết kế bộ dữ liệu kiểm thử?

  • A. Cấu trúc mã nguồn và các đường đi thực thi bên trong chương trình.
  • B. Hiệu suất và tốc độ chạy của chương trình.
  • C. Lượng bộ nhớ mà chương trình sử dụng.
  • D. Đặc tả yêu cầu chức năng và hành vi mong đợi của chương trình.

Câu 27: Một chương trình được thiết kế để tính diện tích hình tròn với bán kính r là số thực dương. Bộ dữ liệu kiểm thử nào sau đây là "trường hợp bất thường" (exceptional case) cần được xem xét?

  • A. r = 5.0.
  • B. r = -2.5 (số âm).
  • C. r = 10.0.
  • D. r = 1.0.

Câu 28: Giả sử một thuật toán có độ phức tạp thời gian O(N!) (giai thừa). Điều này có ý nghĩa gì về tính khả thi của thuật toán này khi xử lý các bài toán với kích thước đầu vào N hơi lớn (ví dụ N = 15-20)?

  • A. Thuật toán rất hiệu quả và nhanh chóng.
  • B. Thuật toán sử dụng ít bộ nhớ.
  • C. Thuật toán chỉ khả thi với N rất lớn.
  • D. Thời gian chạy của thuật toán tăng trưởng cực kỳ nhanh, khiến nó không khả thi cho các giá trị N chỉ hơi lớn.

Câu 29: Khi đánh giá một chương trình, ngoài tính đúng đắn và hiệu quả (thời gian, bộ nhớ), những tiêu chí nào khác cũng thường được xem xét, đặc biệt trong môi trường phát triển phần mềm chuyên nghiệp?

  • A. Khả năng đọc hiểu mã nguồn, khả năng bảo trì, khả năng mở rộng.
  • B. Số dòng mã lệnh, màu sắc giao diện.
  • C. Tên biến và tên hàm.
  • D. Năm xuất bản của ngôn ngữ lập trình.

Câu 30: Việc tạo ra các bộ dữ liệu kiểm thử đa dạng và phong phú là một công việc tốn kém và mất thời gian. Tuy nhiên, đầu tư vào việc này mang lại lợi ích quan trọng nhất là gì?

  • A. Giảm thiểu chi phí phát triển ban đầu.
  • B. Tăng khả năng phát hiện lỗi sớm, nâng cao độ tin cậy và chất lượng của chương trình.
  • C. Giảm thời gian chạy của chương trình.
  • D. Chứng minh tính đúng đắn tuyệt đối của thuật toán.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 1: Khi kiểm thử một chương trình tính toán tiền lương, bộ dữ liệu kiểm thử nào sau đây được xem là quan trọng nhất để phát hiện các lỗi tiềm ẩn liên quan đến điều kiện tính toán?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 2: Một lập trình viên đã viết một chương trình sắp xếp danh sách các số nguyên. Anh ta đã kiểm thử chương trình với 100 bộ dữ liệu ngẫu nhiên và chương trình đều chạy đúng. Tuy nhiên, điều này KHÔNG ĐẢM BẢO điều gì?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 3: Phương pháp nào sau đây cung cấp cơ sở lý thuyết vững chắc nhất để khẳng định tính đúng đắn của một thuật toán cho mọi trường hợp đầu vào hợp lệ?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 4: Khi đánh giá hiệu quả của một thuật toán, yếu tố 'độ phức tạp thời gian' thường được biểu diễn bằng ký hiệu Big O (ví dụ: O(n), O(n log n), O(n^2)). Ký hiệu này chủ yếu mô tả điều gì?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 5: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp thời gian là O(n^2) và thuật toán B có độ phức tạp thời gian là O(n log n). Với một bộ dữ liệu đầu vào có kích thước N rất lớn, thuật toán nào có khả năng chạy nhanh hơn đáng kể?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 6: Khi kiểm thử một chương trình, việc sử dụng các b?? dữ liệu kiểm thử có tính 'tiêu cực' (negative test cases) nhằm mục đích gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 7: Một chương trình được thiết kế để tìm kiếm một phần tử trong danh sách đã sắp xếp. Thuật toán tìm kiếm nhị phân thường được ưa chuộng hơn tìm kiếm tuần tự cho danh sách lớn vì lý do nào sau đây?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 8: Mục đích chính của việc sử dụng bất biến vòng lặp (loop invariant) trong chứng minh tính đúng đắn của thuật toán là gì?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 9: Giả sử bạn đang kiểm thử một hàm tính giai thừa của một số nguyên dương n. Bộ dữ liệu kiểm thử nào sau đây là ví dụ tốt cho 'trường hợp biên' (boundary case)?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 10: Khi nào thì việc chứng minh tính đúng đắn của thuật toán bằng lôgic toán học trở nên đặc biệt quan trọng và cần thiết hơn so với chỉ kiểm thử?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 11: Đánh giá 'độ phức tạp không gian' của một thuật toán chủ yếu liên quan đến việc đo lường yếu tố nào sau đây?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 12: Giả sử bạn viết một chương trình tính tổng các phần tử trong một mảng có N phần tử. Thuật toán đơn giản nhất là duyệt qua mảng từ đầu đến cuối. Độ phức tạp thời gian của thuật toán này là gì?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 13: Tại sao việc kiểm thử chương trình với 'dữ liệu thực tế' (real-world data) lại quan trọng, ngay cả khi đã kiểm thử với dữ liệu tổng hợp?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 14: 'Độ tin cậy' của chương trình, được tăng cường đáng kể thông qua quá trình kiểm thử, có nghĩa là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 15: Trong quá trình kiểm thử, việc phát hiện và sửa một lỗi (bug) trong chương trình có tác động trực tiếp đến khía cạnh nào sau đây?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 16: Giả sử bạn có một chương trình xử lý chuỗi văn bản. Một bộ dữ liệu kiểm thử hiệu quả để kiểm tra khả năng xử lý các 'trường hợp đặc biệt' (edge cases) của chuỗi có thể bao gồm những gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 17: Khi so sánh hai thuật toán về mặt hiệu quả, tại sao chúng ta thường tập trung vào 'độ phức tạp tiệm cận' (asymptotic complexity) thay vì đo lường thời gian chạy chính xác trên một máy cụ thể?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 18: Giả sử một chương trình được kiểm thử và cho kết quả đúng với mọi bộ dữ liệu kiểm thử đã sử dụng. Tuy nhiên, sau khi triển khai, chương trình vẫn gặp lỗi trong một số trường hợp. Nguyên nhân có thể là gì?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 19: Đâu là một trong những nhược điểm chính của việc chỉ dựa vào kiểm thử để đảm bảo chất lượng chương trình?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 20: Khi đánh giá một thuật toán đệ quy, yếu tố 'độ sâu đệ quy' tối đa có thể ảnh hưởng trực tiếp đến khía cạnh hiệu quả nào?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 21: Giả sử bạn đang viết một chương trình xử lý các giao dịch ngân hàng. Để đảm bảo tính đúng đắn, ngoài việc kiểm thử, bạn cần xem xét phương pháp nào khác để tăng cường độ tin cậy, đặc biệt với các tác vụ nhạy cảm?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 22: Một lỗi trong chương trình khiến nó hoạt động không như mong đợi khi gặp một giá trị đầu vào cụ thể. Đây là loại lỗi gì theo góc độ kiểm thử?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 23: Khi đánh giá hiệu quả của thuật toán sắp xếp nổi bọt (Bubble Sort), ta thường thấy độ phức tạp thời gian trung bình và xấu nhất là O(n^2). Điều này có ý nghĩa gì đối với việc sử dụng thuật toán này với danh sách có kích thước N lớn?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 24: Một trong những kỹ thuật tạo bộ dữ liệu kiểm thử là 'phân vùng tương đương' (equivalence partitioning). Kỹ thuật này dựa trên nguyên tắc nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 25: Phương pháp kiểm thử nào tập trung vào việc kiểm tra cấu trúc bên trong của mã nguồn, bao gồm các đường đi thực thi, các vòng lặp và các điều kiện rẽ nhánh?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 26: Khi sử dụng phương pháp kiểm thử hộp đen (Black Box Testing), người kiểm thử dựa vào yếu tố nào để thiết kế bộ dữ liệu kiểm thử?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 27: Một chương trình được thiết kế để tính diện tích hình tròn với bán kính r là số thực dương. Bộ dữ liệu kiểm thử nào sau đây là 'trường hợp bất thường' (exceptional case) cần được xem xét?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 28: Giả sử một thuật toán có độ phức tạp thời gian O(N!) (giai thừa). Điều này có ý nghĩa gì về tính khả thi của thuật toán này khi xử lý các bài toán với kích thước đầu vào N hơi lớn (ví dụ N = 15-20)?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 29: Khi đánh giá một chương trình, ngoài tính đúng đắn và hiệu quả (thời gian, bộ nhớ), những tiêu chí nào khác cũng thường được xem xét, đặc biệt trong môi trường phát triển phần mềm chuyên nghiệp?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 04

Câu 30: Việc tạo ra các bộ dữ liệu kiểm thử đa dạng và phong phú là một công việc tốn kém và mất thời gian. Tuy nhiên, đầu tư vào việc này mang lại lợi ích quan trọng nhất là gì?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 05

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 05 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

  • A. Chứng minh tính đúng đắn tuyệt đối của thuật toán cho mọi trường hợp đầu vào.
  • B. Đảm bảo chương trình chạy với tốc độ nhanh nhất có thể trên mọi hệ thống.
  • C. Phát hiện các lỗi tiềm ẩn và tăng độ tin cậy của chương trình.
  • D. Giảm thiểu tối đa dung lượng bộ nhớ mà chương trình sử dụng.

Câu 2: Tại sao việc sử dụng các bộ dữ liệu kiểm thử không đủ để chứng minh tính đúng đắn của một thuật toán?

  • A. Vì các bộ dữ liệu kiểm thử luôn chứa đựng sai sót.
  • B. Vì số lượng các trường hợp đầu vào có thể là vô hạn hoặc quá lớn để kiểm thử hết.
  • C. Vì kiểm thử chỉ có thể phát hiện lỗi về cú pháp, không phải lỗi về logic.
  • D. Vì việc kiểm thử làm thay đổi hành vi ban đầu của chương trình.

Câu 3: Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng đắn của thuật toán một cách chặt chẽ và toàn diện?

  • A. Chạy chương trình trên một máy tính có cấu hình mạnh.
  • B. Kiểm thử với bộ dữ liệu lớn và ngẫu nhiên.
  • C. So sánh kết quả với một chương trình khác giải cùng bài toán.
  • D. Sử dụng các phương pháp chứng minh dựa trên lôgic toán học hoặc quy nạp.

Câu 4: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

  • A. Thời gian thực hiện và không gian bộ nhớ sử dụng.
  • B. Tính dễ hiểu và khả năng bảo trì mã nguồn.
  • C. Số lượng biến và hằng số được sử dụng.
  • D. Khả năng tương thích với các hệ điều hành khác nhau.

Câu 5: Một chương trình sắp xếp danh sách các số nguyên được viết. Để kiểm thử hiệu quả của nó, bạn nên chuẩn bị những loại bộ dữ liệu kiểm thử nào?

  • A. Chỉ cần một bộ dữ liệu gồm các số nguyên dương ngẫu nhiên.
  • B. Chỉ cần một bộ dữ liệu gồm các số nguyên âm ngẫu nhiên.
  • C. Bộ dữ liệu rỗng, danh sách chỉ có một phần tử, danh sách đã sắp xếp, danh sách sắp xếp ngược, danh sách có phần tử trùng lặp, danh sách có cả số dương và âm.
  • D. Chỉ cần một bộ dữ liệu rất lớn để kiểm tra hiệu năng.

Câu 6: Giả sử bạn đã kiểm thử một chương trình với hàng nghìn bộ dữ liệu khác nhau và chương trình luôn cho kết quả đúng. Điều này cho phép bạn kết luận gì?

  • A. Chương trình có độ tin cậy cao với các bộ dữ liệu đã kiểm thử.
  • B. Chương trình chắc chắn đúng với mọi trường hợp đầu vào.
  • C. Thuật toán của chương trình đã được chứng minh là đúng.
  • D. Chương trình là tối ưu nhất về mặt thời gian và bộ nhớ.

Câu 7: Khái niệm "bất biến vòng lặp" (loop invariant) thường được sử dụng trong phương pháp nào để đánh giá chương trình?

  • A. Kiểm thử hiệu năng (performance testing).
  • B. Chứng minh tính đúng đắn của thuật toán.
  • C. Kiểm thử khả năng chịu tải (load testing).
  • D. Đo đạc độ phức tạp thời gian thực tế khi chạy.

Câu 8: Khi nào thì việc tối ưu hóa không gian bộ nhớ sử dụng trở nên quan trọng hơn việc tối ưu hóa thời gian thực hiện của chương trình?

  • A. Khi chương trình chạy trên các siêu máy tính.
  • B. Khi thời gian thực hiện đã đủ nhanh cho mọi yêu cầu.
  • C. Khi xử lý lượng dữ liệu nhỏ.
  • D. Khi chương trình chạy trên các thiết bị có bộ nhớ hạn chế (ví dụ: thiết bị nhúng, điện thoại đời cũ).

Câu 9: Phân tích độ phức tạp thời gian của thuật toán giúp chúng ta đánh giá điều gì?

  • A. Tốc độ tăng trưởng của thời gian chạy khi kích thước dữ liệu đầu vào tăng lên.
  • B. Thời gian chạy thực tế của thuật toán trên một máy cụ thể.
  • C. Số lượng lỗi có trong mã nguồn chương trình.
  • D. Mức độ dễ hiểu của mã nguồn thuật toán.

Câu 10: Giả sử bạn có một thuật toán tìm kiếm. Loại dữ liệu đầu vào nào thường được sử dụng để đánh giá độ phức tạp thời gian trong trường hợp xấu nhất (worst-case)?

  • A. Dữ liệu ngẫu nhiên.
  • B. Dữ liệu mà phần tử cần tìm nằm ở đầu danh sách.
  • C. Dữ liệu mà phần tử cần tìm nằm ở cuối danh sách hoặc không có trong danh sách.
  • D. Dữ liệu đã được sắp xếp trước.

Câu 11: So sánh giữa kiểm thử chương trình và chứng minh tính đúng đắn của thuật toán:

  • A. Cả hai đều có thể chứng minh chương trình không có lỗi.
  • B. Kiểm thử tìm lỗi trong các trường hợp cụ thể, còn chứng minh đảm bảo tính đúng cho mọi trường hợp theo logic.
  • C. Kiểm thử được thực hiện trước khi viết mã, còn chứng minh được thực hiện sau khi chương trình hoàn thành.
  • D. Chứng minh tính đúng đắn dễ thực hiện hơn kiểm thử với các chương trình phức tạp.

Câu 12: Tại sao việc kiểm thử với dữ liệu biên (boundary data) lại quan trọng?

  • A. Vì lỗi thường xảy ra ở các giá trị đầu vào nằm ở giới hạn hoặc biên của phạm vi hợp lệ.
  • B. Vì dữ liệu biên giúp chương trình chạy nhanh hơn.
  • C. Vì dữ liệu biên dễ tạo ra hơn dữ liệu ngẫu nhiên.
  • D. Vì dữ liệu biên giúp đánh giá độ phức tạp không gian.

Câu 13: Khi đánh giá một thuật toán đệ quy, ngoài thời gian và bộ nhớ cho tính toán, ta cần đặc biệt lưu ý đến yếu tố bộ nhớ nào?

  • A. Dung lượng file mã nguồn.
  • B. Bộ nhớ cache của CPU.
  • C. Dung lượng ổ cứng cần thiết để lưu trữ kết quả.
  • D. Bộ nhớ sử dụng cho ngăn xếp gọi hàm (call stack).

Câu 14: Giả sử một chương trình được thiết kế để xử lý các số nguyên trong khoảng từ 1 đến 100. Bộ dữ liệu kiểm thử nào sau đây được xem là dữ liệu biên?

  • A. Số 50.
  • B. Số 1, số 100.
  • C. Số 0, số 101.
  • D. Các số nguyên tố trong khoảng 1 đến 100.

Câu 15: Nếu một chương trình vượt qua tất cả các bài kiểm thử được thiết kế cẩn thận, điều đó có nghĩa là gì?

  • A. Chương trình chắc chắn không có bất kỳ lỗi nào.
  • B. Chương trình là tối ưu nhất có thể về hiệu năng.
  • C. Độ tin cậy của chương trình được tăng cường đáng kể, nhưng vẫn có thể tồn tại lỗi chưa phát hiện.
  • D. Thuật toán của chương trình đã được chứng minh là đúng bằng toán học.

Câu 16: Phương pháp kiểm thử nào tập trung vào việc kiểm tra cấu trúc bên trong và logic của mã nguồn chương trình?

  • A. Kiểm thử hộp trắng (White-box testing).
  • B. Kiểm thử hộp đen (Black-box testing).
  • C. Kiểm thử hồi quy (Regression testing).
  • D. Kiểm thử chấp nhận (Acceptance testing).

Câu 17: Khi đánh giá hiệu quả của thuật toán, tại sao chúng ta thường quan tâm đến độ phức tạp tiệm cận (asymptotic complexity) thay vì đo thời gian chạy thực tế trên một máy cụ thể?

  • A. Vì đo thời gian chạy thực tế là không khả thi.
  • B. Vì độ phức tạp tiệm cận cho biết chính xác thời gian chạy trên mọi máy.
  • C. Vì độ phức tạp tiệm cận dễ tính toán hơn.
  • D. Vì độ phức tạp tiệm cận mô tả tốc độ tăng trưởng hiệu năng khi kích thước đầu vào rất lớn, độc lập với phần cứng cụ thể.

Câu 18: Bất biến vòng lặp cần thỏa mãn những điều kiện nào để được sử dụng trong chứng minh tính đúng đắn của một vòng lặp?

  • A. Đúng trước khi vòng lặp bắt đầu và sai sau khi vòng lặp kết thúc.
  • B. Đúng trước khi vòng lặp bắt đầu, được duy trì sau mỗi lần lặp và khi vòng lặp kết thúc thì bất biến cùng với điều kiện dừng suy ra kết quả mong muốn.
  • C. Luôn đúng trong suốt quá trình thực hiện vòng lặp.
  • D. Chỉ cần đúng khi vòng lặp kết thúc.

Câu 19: Trong một bài toán sắp xếp, bạn sử dụng bất biến vòng lặp để chứng minh thuật toán là đúng. Bất biến vòng lặp có thể là gì?

  • A. Toàn bộ mảng đã được sắp xếp.
  • B. Phần tử hiện tại lớn hơn phần tử trước đó.
  • C. Một tiền tố (hoặc hậu tố) của mảng luôn được sắp xếp đúng sau mỗi lần lặp.
  • D. Số lần hoán đổi các phần tử.

Câu 20: Việc phát hiện lỗi trong giai đoạn nào của chu trình phát triển phần mềm thường tốn kém chi phí nhất để sửa chữa?

  • A. Giai đoạn thiết kế.
  • B. Giai đoạn viết mã.
  • C. Giai đoạn kiểm thử đơn vị (unit testing).
  • D. Sau khi sản phẩm đã được triển khai và sử dụng bởi người dùng cuối.

Câu 21: Tiêu chí nào sau đây không phải là tiêu chí chính để đánh giá hiệu quả của một thuật toán?

  • A. Độ phức tạp thời gian.
  • B. Độ phức tạp không gian.
  • C. Màu sắc của giao diện người dùng.
  • D. Khả năng mở rộng (scalability) khi kích thước đầu vào tăng.

Câu 22: Khi thiết kế bộ dữ liệu kiểm thử cho một hàm tính căn bậc hai của một số không âm, loại dữ liệu nào sau đây là ít cần thiết nhất để kiểm tra tính đúng đắn cơ bản của hàm?

  • A. Số 0.
  • B. Một số dương rất lớn.
  • C. Một số dương rất nhỏ gần 0.
  • D. Một chuỗi ký tự không phải là số.

Câu 23: Phương pháp kiểm thử hộp đen (Black-box testing) tập trung vào điều gì?

  • A. Kiểm tra từng dòng mã lệnh để đảm bảo mọi đường dẫn đều được thực thi.
  • B. Kiểm tra chức năng của chương trình dựa trên đặc tả yêu cầu mà không quan tâm cấu trúc bên trong.
  • C. Đo đạc thời gian thực hiện của các hàm con.
  • D. Phân tích cấu trúc dữ liệu được sử dụng trong chương trình.

Câu 24: Điều gì xảy ra nếu một chương trình có thuật toán đúng nhưng lại chứa lỗi cú pháp (syntax error)?

  • A. Chương trình sẽ không thể biên dịch hoặc chạy được.
  • B. Chương trình sẽ chạy nhưng cho kết quả sai.
  • C. Chương trình sẽ chạy chậm hơn bình thường.
  • D. Lỗi cú pháp sẽ tự động được sửa bởi trình biên dịch.

Câu 25: Khi sử dụng phương pháp quy nạp toán học để chứng minh tính đúng của một thuật toán đệ quy, ta cần chứng minh những bước nào?

  • A. Chỉ cần chứng minh trường hợp cơ sở (base case).
  • B. Chỉ cần chứng minh bước đệ quy (recursive step).
  • C. Chứng minh trường hợp đầu tiên và trường hợp cuối cùng.
  • D. Chứng minh trường hợp cơ sở và chứng minh rằng nếu thuật toán đúng với một kích thước nhỏ hơn (giả thiết quy nạp), thì nó cũng đúng với kích thước hiện tại (bước quy nạp).

Câu 26: Tại sao việc đánh giá hiệu quả thuật toán (độ phức tạp thời gian/không gian) lại quan trọng trước khi viết mã chương trình?

  • A. Để đảm bảo mã nguồn không có lỗi cú pháp.
  • B. Để xác định số lượng biến cần khai báo.
  • C. Để lựa chọn thuật toán phù hợp nhất với yêu cầu về hiệu năng và tài nguyên, tránh phải sửa đổi lớn sau này.
  • D. Để quyết định ngôn ngữ lập trình nào sẽ sử dụng.

Câu 27: Một chương trình tính tổng các phần tử trong một mảng. Nếu mảng rỗng được đưa vào làm đầu vào, đây là loại dữ liệu kiểm thử nào?

  • A. Dữ liệu biên (boundary case).
  • B. Dữ liệu ngẫu nhiên (random data).
  • C. Dữ liệu điển hình (typical data).
  • D. Dữ liệu sai (invalid data).

Câu 28: Điều nào sau đây mô tả đúng nhất mối quan hệ giữa "độ tin cậy" (reliability) và "tính đúng đắn" (correctness) của chương trình?

  • A. Chúng là hai khái niệm hoàn toàn giống nhau.
  • B. Tính đúng đắn là một mục tiêu tuyệt đối (đúng cho mọi trường hợp), còn độ tin cậy là mức độ mà chương trình hoạt động như mong đợi dưới các điều kiện cụ thể (được kiểm thử).
  • C. Kiểm thử giúp chứng minh tính đúng đắn, còn chứng minh toán học giúp tăng độ tin cậy.
  • D. Một chương trình tin cậy chắc chắn là đúng, nhưng một chương trình đúng chưa chắc đã tin cậy.

Câu 29: Khi nào thì việc sử dụng phương pháp chứng minh tính đúng đắn bằng toán học trở nên đặc biệt quan trọng?

  • A. Khi chương trình chỉ được sử dụng cho mục đích giải trí.
  • B. Khi chương trình cần chạy rất nhanh.
  • C. Khi chương trình được sử dụng trong các hệ thống an toàn, bảo mật hoặc các ứng dụng quan trọng mà lỗi có thể gây hậu quả nghiêm trọng.
  • D. Khi chương trình được viết bằng ngôn ngữ lập trình mới.

Câu 30: Giả sử bạn có một thuật toán sắp xếp. Dữ liệu đầu vào nào sau đây là ví dụ về dữ liệu "trường hợp xấu nhất" (worst-case) đối với nhiều thuật toán sắp xếp so sánh (ví dụ: Bubble Sort, Insertion Sort)?

  • A. Một danh sách đã được sắp xếp theo thứ tự ngược lại.
  • B. Một danh sách đã được sắp xếp hoàn chỉnh.
  • C. Một danh sách chứa tất cả các phần tử giống nhau.
  • D. Một danh sách rỗng.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 1: Mục đích chính của việc kiểm thử chương trình là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 2: Tại sao việc sử dụng các bộ dữ liệu kiểm thử không đủ để chứng minh tính đúng đắn của một thuật toán?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 3: Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng đắn của thuật toán một cách chặt chẽ và toàn diện?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 4: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 5: Một chương trình sắp xếp danh sách các số nguyên được viết. Để kiểm thử hiệu quả của nó, bạn nên chuẩn bị những loại bộ dữ liệu kiểm thử nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 6: Giả sử bạn đã kiểm thử một chương trình với hàng nghìn bộ dữ liệu khác nhau và chương trình luôn cho kết quả đúng. Điều này cho phép bạn kết luận gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 7: Khái niệm 'bất biến vòng lặp' (loop invariant) thường được sử dụng trong phương pháp nào để đánh giá chương trình?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 8: Khi nào thì việc tối ưu hóa không gian bộ nhớ sử dụng trở nên quan trọng hơn việc tối ưu hóa thời gian thực hiện của chương trình?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 9: Phân tích độ phức tạp thời gian của thuật toán giúp chúng ta đánh giá điều gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 10: Giả sử bạn có một thuật toán tìm kiếm. Loại dữ liệu đầu vào nào thường được sử dụng để đánh giá độ phức tạp thời gian trong trường hợp xấu nhất (worst-case)?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 11: So sánh giữa kiểm thử chương trình và chứng minh tính đúng đắn của thuật toán:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 12: Tại sao việc kiểm thử với dữ liệu biên (boundary data) lại quan trọng?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 13: Khi đánh giá một thuật toán đệ quy, ngoài thời gian và bộ nhớ cho tính toán, ta cần đặc biệt lưu ý đến yếu tố bộ nhớ nào?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 14: Giả sử một chương trình được thiết kế để xử lý các số nguyên trong khoảng từ 1 đến 100. Bộ dữ liệu kiểm thử nào sau đây được xem là dữ liệu biên?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 15: Nếu một chương trình vượt qua tất cả các bài kiểm thử được thiết kế cẩn thận, điều đó có nghĩa là gì?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 16: Phương pháp kiểm thử nào tập trung vào việc kiểm tra cấu trúc bên trong và logic của mã nguồn chương trình?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 17: Khi đánh giá hiệu quả của thuật toán, tại sao chúng ta thường quan tâm đến độ phức tạp tiệm cận (asymptotic complexity) thay vì đo thời gian chạy thực tế trên một máy cụ thể?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 18: Bất biến vòng lặp cần thỏa mãn những điều kiện nào để được sử dụng trong chứng minh tính đúng đắn của một vòng lặp?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 19: Trong một bài toán sắp xếp, bạn sử dụng bất biến vòng lặp để chứng minh thuật toán là đúng. Bất biến vòng lặp có thể là gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 20: Việc phát hiện lỗi trong giai đoạn nào của chu trình phát triển phần mềm thường tốn kém chi phí nhất để sửa chữa?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 21: Tiêu chí nào sau đây không phải là tiêu chí chính để đánh giá hiệu quả của một thuật toán?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 22: Khi thiết kế bộ dữ liệu kiểm thử cho một hàm tính căn bậc hai của một số không âm, loại dữ liệu nào sau đây là *ít cần thiết nhất* để kiểm tra tính đúng đắn cơ bản của hàm?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 23: Phương pháp kiểm thử hộp đen (Black-box testing) tập trung vào điều gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 24: Điều gì xảy ra nếu một chương trình có thuật toán đúng nhưng lại chứa lỗi cú pháp (syntax error)?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 25: Khi sử dụng phương pháp quy nạp toán học để chứng minh tính đúng của một thuật toán đệ quy, ta cần chứng minh những bước nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 26: Tại sao việc đánh giá hiệu quả thuật toán (độ phức tạp thời gian/không gian) lại quan trọng trước khi viết mã chương trình?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 27: Một chương trình tính tổng các phần tử trong một mảng. Nếu mảng rỗng được đưa vào làm đầu vào, đây là loại dữ liệu kiểm thử nào?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 28: Điều nào sau đây mô tả đúng nhất mối quan hệ giữa 'độ tin cậy' (reliability) và 'tính đúng đắn' (correctness) của chương trình?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 29: Khi nào thì việc sử dụng phương pháp chứng minh tính đúng đắn bằng toán học trở nên đặc biệt quan trọng?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 05

Câu 30: Giả sử bạn có một thuật toán sắp xếp. Dữ liệu đầu vào nào sau đây là ví dụ về dữ liệu 'trường hợp xấu nhất' (worst-case) đối với nhiều thuật toán sắp xếp so sánh (ví dụ: Bubble Sort, Insertion Sort)?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 06

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 06 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Một lập trình viên vừa hoàn thành một chương trình tính toán. Bước tiếp theo quan trọng nhất để đảm bảo chương trình hoạt động đúng là gì?

  • A. Đăng tải chương trình lên mạng để người khác sử dụng.
  • B. Kiểm thử chương trình với nhiều bộ dữ liệu khác nhau.
  • C. Viết tài liệu hướng dẫn sử dụng chi tiết.
  • D. Tối ưu hóa mã nguồn để chương trình chạy nhanh hơn.

Câu 2: Mục đích chính của việc sử dụng các bộ dữ liệu kiểm thử (test data) khi kiểm tra một chương trình là gì?

  • A. Để chứng minh chương trình hoàn toàn không có lỗi.
  • B. Để chứng minh thuật toán của chương trình là tối ưu nhất.
  • C. Để phát hiện các lỗi tiềm ẩn và tăng độ tin cậy của chương trình.
  • D. Để đo lường thời gian chạy nhanh nhất có thể của chương trình.

Câu 3: Tại sao việc kiểm thử chương trình bằng cách chạy với một số lượng lớn các bộ dữ liệu đầu vào ngẫu nhiên không thể đảm bảo tính đúng đắn tuyệt đối của thuật toán?

  • A. Vì số lượng tất cả các trường hợp đầu vào có thể là vô hạn, không thể kiểm thử hết.
  • B. Vì các bộ dữ liệu ngẫu nhiên thường không phản ánh đúng các trường hợp thực tế.
  • C. Vì kiểm thử chỉ phát hiện lỗi cú pháp, không phát hiện lỗi logic.
  • D. Vì việc kiểm thử làm thay đổi hành vi của chương trình.

Câu 4: Phương pháp nào sau đây được xem là có khả năng chứng minh tính đúng đắn của một thuật toán cho mọi trường hợp đầu vào một cách chắc chắn?

  • A. Kiểm thử với hàng triệu bộ dữ liệu khác nhau.
  • B. Chạy chương trình trên nhiều hệ điều hành khác nhau.
  • C. Đo lường hiệu suất của chương trình.
  • D. Sử dụng các phương pháp chứng minh logic toán học.

Câu 5: Khi kiểm thử một chương trình, việc lựa chọn các bộ dữ liệu kiểm thử đa dạng và bao gồm các trường hợp đặc biệt (ví dụ: giá trị biên, trường hợp rỗng) có ý nghĩa gì?

  • A. Giúp chương trình chạy nhanh hơn khi đưa vào sử dụng.
  • B. Tăng khả năng phát hiện các lỗi chỉ xảy ra trong những điều kiện cụ thể.
  • C. Làm cho mã nguồn chương trình trở nên dễ đọc hơn.
  • D. Chứng minh rằng thuật toán sử dụng bộ nhớ hiệu quả.

Câu 6: Giả sử bạn có một chương trình sắp xếp một danh sách các số nguyên. Để kiểm thử chương trình này, bạn nên bao gồm những loại bộ dữ liệu nào trong tập dữ liệu kiểm thử của mình?

  • A. Chỉ các danh sách đã được sắp xếp tăng dần.
  • B. Chỉ các danh sách có kích thước rất lớn.
  • C. Các danh sách rỗng, danh sách chỉ có một phần tử, danh sách đã sắp xếp, danh sách đảo ngược, danh sách có các phần tử trùng lặp.
  • D. Chỉ các danh sách có các phần tử ngẫu nhiên.

Câu 7: Khái niệm "bất biến vòng lặp" (loop invariant) thường được sử dụng trong phương pháp nào để đánh giá tính đúng đắn của thuật toán?

  • A. Chứng minh tính đúng bằng logic toán học.
  • B. Kiểm thử bằng bộ dữ liệu ngẫu nhiên.
  • C. Kiểm thử hiệu năng chương trình.
  • D. Đo lường độ phức tạp thời gian.

Câu 8: Bất biến vòng lặp là một tính chất phải được duy trì như thế nào trong suốt quá trình thực hiện vòng lặp?

  • A. Chỉ đúng trước khi vòng lặp bắt đầu.
  • B. Chỉ đúng sau khi vòng lặp kết thúc.
  • C. Thay đổi một cách ngẫu nhiên sau mỗi lần lặp.
  • D. Đúng trước mỗi lần thực hiện vòng lặp và vẫn đúng sau khi vòng lặp hoàn thành một lần lặp.

Câu 9: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

  • A. Tính dễ đọc của mã nguồn và số dòng lệnh.
  • B. Thời gian thực hiện và không gian bộ nhớ sử dụng.
  • C. Số lượng lỗi được phát hiện và độ phức tạp logic.
  • D. Khả năng chạy trên nhiều thiết bị khác nhau và giao diện người dùng.

Câu 10: Một thuật toán được coi là hiệu quả hơn thuật toán khác cùng giải một bài toán nếu nó có đặc điểm gì?

  • A. Sử dụng ít thời gian và/hoặc ít bộ nhớ hơn cho cùng một lượng dữ liệu đầu vào.
  • B. Mã nguồn ngắn gọn và dễ hiểu hơn.
  • C. Được viết bằng ngôn ngữ lập trình phổ biến hơn.
  • D. Đã được kiểm thử với nhiều bộ dữ liệu hơn.

Câu 11: Tại sao việc đánh giá hiệu quả thuật toán (thời gian và bộ nhớ) trở nên đặc biệt quan trọng khi xử lý lượng dữ liệu lớn?

  • A. Vì lỗi logic chỉ xuất hiện khi dữ liệu lớn.
  • B. Vì các phương pháp chứng minh toán học không áp dụng được với dữ liệu lớn.
  • C. Vì sự khác biệt nhỏ về hiệu quả có thể dẫn đến sự khác biệt lớn về thời gian chạy và bộ nhớ tiêu thụ.
  • D. Vì dữ liệu lớn giúp việc kiểm thử dễ dàng hơn.

Câu 12: Giả sử bạn cần viết một chương trình tìm kiếm một phần tử trong một danh sách đã sắp xếp. Bạn có hai lựa chọn thuật toán: tìm kiếm tuyến tính (Linear Search) và tìm kiếm nhị phân (Binary Search). Về mặt hiệu quả thời gian khi danh sách rất lớn, thuật toán nào thường được ưu tiên?

  • A. Tìm kiếm tuyến tính vì nó đơn giản hơn.
  • B. Tìm kiếm nhị phân vì thời gian thực hiện tăng chậm hơn khi kích thước danh sách tăng.
  • C. Cả hai thuật toán đều có hiệu quả như nhau.
  • D. Tìm kiếm tuyến tính vì nó sử dụng ít bộ nhớ hơn.

Câu 13: Trong ngữ cảnh kiểm thử chương trình, "độ tin cậy" (reliability) của chương trình được hiểu là gì?

  • A. Mức độ mà chương trình thực hiện đúng chức năng dự kiến trong các điều kiện hoạt động khác nhau.
  • B. Thời gian trung bình mà chương trình cần để hoàn thành một tác vụ.
  • C. Khả năng chạy trên nhiều loại máy tính khác nhau.
  • D. Số lượng người dùng có thể sử dụng chương trình cùng lúc.

Câu 14: Khi nào thì việc chứng minh tính đúng đắn của thuật toán bằng logic toán học trở nên đặc biệt quan trọng hơn việc chỉ dựa vào kiểm thử?

  • A. Khi chương trình rất đơn giản và ít chức năng.
  • B. Khi chỉ cần đảm bảo chương trình chạy nhanh.
  • C. Khi chương trình xử lý các tác vụ cực kỳ quan trọng, đòi hỏi độ chính xác tuyệt đối (ví dụ: hệ thống điều khiển y tế, phần mềm hàng không).
  • D. Khi muốn giảm thời gian phát triển chương trình.

Câu 15: Một chương trình tính căn bậc hai của một số dương. Để kiểm thử chương trình này, bộ dữ liệu kiểm thử nên bao gồm những giá trị nào?

  • A. Chỉ các số nguyên dương lớn.
  • B. Chỉ các số âm và số 0.
  • C. Chỉ các số có căn bậc hai là số nguyên.
  • D. Các số dương nhỏ (gần 0), các số dương lớn, các số có căn bậc hai là số nguyên, các số có căn bậc hai không phải số nguyên.

Câu 16: Giả sử bạn có một thuật toán tính tổng các phần tử từ 1 đến N. Bất biến vòng lặp phù hợp để chứng minh tính đúng đắn của vòng lặp tính tổng này là gì?

  • A. Biến đếm vòng lặp luôn nhỏ hơn N.
  • B. Tại mỗi bước lặp thứ i, biến lưu tổng đang chứa tổng của các số từ 1 đến i.
  • C. Biến tổng luôn là số chẵn.
  • D. Biến tổng luôn nhỏ hơn N.

Câu 17: Khi đánh giá độ phức tạp không gian của một thuật toán, chúng ta quan tâm đến điều gì?

  • A. Lượng bộ nhớ mà thuật toán cần sử dụng để lưu trữ dữ liệu và các biến trong quá trình thực hiện.
  • B. Thời gian mà thuật toán cần để đọc dữ liệu từ bộ nhớ.
  • C. Số lần truy cập vào bộ nhớ chính.
  • D. Khả năng lưu trữ dữ liệu lâu dài sau khi chương trình kết thúc.

Câu 18: Một chương trình tìm kiếm phần tử lớn nhất trong một mảng. Nếu mảng có N phần tử, thời gian thực hiện của thuật toán tìm kiếm này (trong trường hợp xấu nhất) sẽ tăng như thế nào khi N tăng lên?

  • A. Tăng theo hàm logarit của N.
  • B. Tăng theo bình phương của N.
  • C. Tăng tuyến tính theo N (tức là tỉ lệ thuận với N).
  • D. Không thay đổi khi N tăng.

Câu 19: Một lập trình viên sử dụng một thuật toán sắp xếp có độ phức tạp thời gian là O(N^2) để sắp xếp một danh sách 1000 phần tử. Nếu anh ta chuyển sang sử dụng một thuật toán sắp xếp khác có độ phức tạp thời gian là O(N log N) cho cùng danh sách đó, thì điều gì có khả năng xảy ra đối với thời gian thực hiện?

  • A. Thời gian thực hiện sẽ giảm đáng kể.
  • B. Thời gian thực hiện sẽ tăng lên.
  • C. Thời gian thực hiện sẽ gần như không thay đổi.
  • D. Thời gian thực hiện chỉ thay đổi khi N rất nhỏ.

Câu 20: Sự khác biệt cơ bản giữa "kiểm thử chương trình" và "chứng minh tính đúng đắn của thuật toán" là gì?

  • A. Kiểm thử chỉ tìm lỗi cú pháp, còn chứng minh tìm lỗi logic.
  • B. Kiểm thử nhằm phát hiện lỗi và tăng độ tin cậy (cho một số trường hợp), còn chứng minh nhằm đảm bảo thuật toán đúng cho mọi trường hợp đầu vào.
  • C. Kiểm thử chỉ thực hiện sau khi viết mã, còn chứng minh thực hiện trước khi viết mã.
  • D. Kiểm thử chỉ áp dụng cho các chương trình nhỏ, còn chứng minh áp dụng cho các chương trình lớn.

Câu 21: Bạn đang kiểm thử một chương trình xử lý ngày tháng. Một bộ dữ liệu kiểm thử quan trọng cần bao gồm là các ngày ở cuối tháng, cuối năm và các năm nhuận. Việc này nhằm mục đích gì?

  • A. Để chương trình chạy nhanh hơn khi xử lý ngày tháng thông thường.
  • B. Để chứng minh rằng thuật toán xử lý ngày tháng là hoàn hảo.
  • C. Để kiểm tra các trường hợp biên (edge cases) và các quy tắc đặc biệt liên quan đến lịch.
  • D. Để đo lường lượng bộ nhớ mà chương trình sử dụng khi xử lý ngày tháng.

Câu 22: Giả sử bạn có một vòng lặp `while (i < n)` trong đó `i` tăng dần từ 0. Để chứng minh rằng vòng lặp này sẽ kết thúc, bạn cần chứng minh điều gì?

  • A. Giá trị của `i` cuối cùng sẽ đạt đến hoặc vượt qua giá trị của `n` sau một số hữu hạn bước lặp.
  • B. Giá trị của `n` luôn lớn hơn 0.
  • C. Biến `i` luôn là số nguyên dương.
  • D. Thời gian thực hiện mỗi lần lặp là hằng số.

Câu 23: Khi một chương trình gặp lỗi trong quá trình kiểm thử, bước tiếp theo sau khi phát hiện lỗi là gì?

  • A. Bỏ qua lỗi đó nếu nó không xảy ra thường xuyên.
  • B. Phân tích nguyên nhân gây ra lỗi và sửa chữa mã nguồn.
  • C. Thêm thêm bộ dữ liệu kiểm thử tương tự để chứng minh lỗi.
  • D. Viết lại toàn bộ chương trình từ đầu.

Câu 24: Một thuật toán được sử dụng trong một hệ thống ngân hàng để tính lãi suất. Việc kiểm thử chương trình này cần được thực hiện một cách cẩn thận và nghiêm ngặt vì lý do gì?

  • A. Lỗi trong chương trình có thể gây ra hậu quả tài chính nghiêm trọng.
  • B. Chương trình ngân hàng thường rất phức tạp về mặt giao diện người dùng.
  • C. Thuật toán tính lãi suất rất khó hiểu.
  • D. Các chương trình ngân hàng sử dụng rất nhiều bộ nhớ.

Câu 25: Giả sử bạn đang phát triển một thuật toán nén dữ liệu. Tiêu chí đánh giá hiệu quả nào sau đây có thể quan trọng nhất đối với thuật toán này, bên cạnh thời gian thực hiện?

  • A. Tính dễ dàng triển khai của thuật toán.
  • B. Mức độ phổ biến của ngôn ngữ lập trình được sử dụng.
  • C. Số lượng người dùng có thể sử dụng đồng thời.
  • D. Tỷ lệ nén dữ liệu đạt được (kích thước tệp sau khi nén so với trước khi nén).

Câu 26: So sánh giữa kiểm thử và chứng minh tính đúng đắn: Phương pháp nào giúp chúng ta tự tin hơn rằng chương trình sẽ hoạt động chính xác ngay cả với các dữ liệu đầu vào chưa từng được thử nghiệm?

  • A. Kiểm thử chương trình với một lượng lớn dữ liệu.
  • B. Chứng minh tính đúng đắn của thuật toán bằng logic toán học.
  • C. Đo lường hiệu suất của chương trình.
  • D. Thu thập phản hồi từ người dùng cuối.

Câu 27: Khi một thuật toán có độ phức tạp thời gian tăng rất nhanh theo kích thước dữ liệu đầu vào (ví dụ: theo hàm mũ), điều này có ý nghĩa gì đối với khả năng ứng dụng của nó?

  • A. Thuật toán rất hiệu quả và có thể xử lý mọi kích thước dữ liệu.
  • B. Thuật toán chỉ phù hợp với các bài toán không cần độ chính xác cao.
  • C. Thuật toán chỉ khả thi cho các bài toán có kích thước dữ liệu rất nhỏ.
  • D. Thuật toán cần rất ít bộ nhớ để hoạt động.

Câu 28: Một chương trình quản lý danh sách sinh viên. Khi kiểm thử chức năng xóa sinh viên, ngoài việc kiểm tra xóa thành công một sinh viên tồn tại, bạn cần kiểm tra những trường hợp nào khác?

  • A. Chỉ kiểm tra xóa sinh viên đầu tiên hoặc cuối cùng trong danh sách.
  • B. Chỉ kiểm tra xóa khi danh sách có rất nhiều sinh viên.
  • C. Chỉ kiểm tra xóa khi danh sách chỉ có một sinh viên.
  • D. Xóa sinh viên không tồn tại trong danh sách; xóa khi danh sách rỗng; xóa sinh viên đầu, giữa, cuối danh sách.

Câu 29: Việc lựa chọn thuật toán phù hợp (dựa trên đánh giá hiệu quả) và kiểm thử chương trình cẩn thận là hai hoạt động bổ sung cho nhau như thế nào trong quá trình phát triển phần mềm?

  • A. Lựa chọn thuật toán hiệu quả giúp chương trình chạy tốt, còn kiểm thử giúp đảm bảo chương trình hoạt động đúng chức năng và đáng tin cậy.
  • B. Lựa chọn thuật toán chỉ quan trọng với chương trình lớn, còn kiểm thử chỉ quan trọng với chương trình nhỏ.
  • C. Cả hai hoạt động đều chỉ nhằm mục đích làm cho mã nguồn dễ đọc hơn.
  • D. Lựa chọn thuật toán giúp tìm lỗi, còn kiểm thử giúp tối ưu bộ nhớ.

Câu 30: Một thuật toán tìm đường đi trong mê cung. Để đánh giá hiệu quả của thuật toán này, ngoài thời gian thực hiện, tiêu chí nào sau đây cũng có thể được xem xét?

  • A. Số lượng dòng mã nguồn của thuật toán.
  • B. Màu sắc của mê cung được sử dụng để kiểm thử.
  • C. Độ dài của đường đi tìm được (liệu có phải là đường đi ngắn nhất không).
  • D. Số lượng người đã sử dụng thuật toán này trước đây.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 1: Một lập trình viên vừa hoàn thành một chương trình tính toán. Bước tiếp theo quan trọng nhất để đảm bảo chương trình hoạt động đúng là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 2: Mục đích chính của việc sử dụng các bộ dữ liệu kiểm thử (test data) khi kiểm tra một chương trình là gì?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 3: Tại sao việc kiểm thử chương trình bằng cách chạy với một số lượng lớn các bộ dữ liệu đầu vào ngẫu nhiên không thể đảm bảo tính đúng đắn tuyệt đối của thuật toán?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 4: Phương pháp nào sau đây được xem là có khả năng chứng minh tính đúng đắn của một thuật toán cho *mọi* trường hợp đầu vào một cách chắc chắn?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 5: Khi kiểm thử một chương trình, việc lựa chọn các bộ dữ liệu kiểm thử đa dạng và bao gồm các trường hợp đặc biệt (ví dụ: giá trị biên, trường hợp rỗng) có ý nghĩa gì?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 6: Giả sử bạn có một chương trình sắp xếp một danh sách các số nguyên. Để kiểm thử chương trình này, bạn nên bao gồm những loại bộ dữ liệu nào trong tập dữ liệu kiểm thử của mình?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 7: Khái niệm 'bất biến vòng lặp' (loop invariant) thường được sử dụng trong phương pháp nào để đánh giá tính đúng đắn của thuật toán?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 8: Bất biến vòng lặp là một tính chất phải được duy trì như thế nào trong suốt quá trình thực hiện vòng lặp?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 9: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 10: Một thuật toán được coi là hiệu quả hơn thuật toán khác cùng giải một bài toán nếu nó có đặc điểm gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 11: Tại sao việc đánh giá hiệu quả thuật toán (thời gian và bộ nhớ) trở nên đặc biệt quan trọng khi xử lý lượng dữ liệu lớn?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 12: Giả sử bạn cần viết một chương trình tìm kiếm một phần tử trong một danh sách đã sắp xếp. Bạn có hai lựa chọn thuật toán: tìm kiếm tuyến tính (Linear Search) và tìm kiếm nhị phân (Binary Search). Về mặt hiệu quả thời gian khi danh sách rất lớn, thuật toán nào thường được ưu tiên?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 13: Trong ngữ cảnh kiểm thử chương trình, 'độ tin cậy' (reliability) của chương trình được hiểu là gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 14: Khi nào thì việc chứng minh tính đúng đắn của thuật toán bằng logic toán học trở nên đặc biệt quan trọng hơn việc chỉ dựa vào kiểm thử?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 15: Một chương trình tính căn bậc hai của một số dương. Để kiểm thử chương trình này, bộ dữ liệu kiểm thử nên bao gồm những giá trị nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 16: Giả sử bạn có một thuật toán tính tổng các phần tử từ 1 đến N. Bất biến vòng lặp phù hợp để chứng minh tính đúng đắn của vòng lặp tính tổng này là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 17: Khi đánh giá độ phức tạp không gian của một thuật toán, chúng ta quan tâm đến điều gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 18: Một chương trình tìm kiếm phần tử lớn nhất trong một mảng. Nếu mảng có N phần tử, thời gian thực hiện của thuật toán tìm kiếm này (trong trường hợp xấu nhất) sẽ tăng như thế nào khi N tăng lên?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 19: Một lập trình viên sử dụng một thuật toán sắp xếp có độ phức tạp thời gian là O(N^2) để sắp xếp một danh sách 1000 phần tử. Nếu anh ta chuyển sang sử dụng một thuật toán sắp xếp khác có độ phức tạp thời gian là O(N log N) cho cùng danh sách đó, thì điều gì có khả năng xảy ra đối với thời gian thực hiện?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 20: Sự khác biệt cơ bản giữa 'kiểm thử chương trình' và 'chứng minh tính đúng đắn của thuật toán' là gì?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 21: Bạn đang kiểm thử một chương trình xử lý ngày tháng. Một bộ dữ liệu kiểm thử quan trọng cần bao gồm là các ngày ở cuối tháng, cuối năm và các năm nhuận. Việc này nhằm mục đích gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 22: Giả sử bạn có một vòng lặp `while (i < n)` trong đó `i` tăng dần từ 0. Để chứng minh rằng vòng lặp này sẽ kết thúc, bạn cần chứng minh điều gì?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 23: Khi một chương trình gặp lỗi trong quá trình kiểm thử, bước tiếp theo sau khi phát hiện lỗi là gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 24: Một thuật toán được sử dụng trong một hệ thống ngân hàng để tính lãi suất. Việc kiểm thử chương trình này cần được thực hiện một cách cẩn thận và nghiêm ngặt vì lý do gì?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 25: Giả sử bạn đang phát triển một thuật toán nén dữ liệu. Tiêu chí đánh giá hiệu quả nào sau đây có thể quan trọng nhất đối với thuật toán này, bên cạnh thời gian thực hiện?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 26: So sánh giữa kiểm thử và chứng minh tính đúng đắn: Phương pháp nào giúp chúng ta tự tin hơn rằng chương trình sẽ hoạt động chính xác ngay cả với các dữ liệu đầu vào chưa từng được thử nghiệm?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 27: Khi một thuật toán có độ phức tạp thời gian tăng rất nhanh theo kích thước dữ liệu đầu vào (ví dụ: theo hàm mũ), điều này có ý nghĩa gì đối với khả năng ứng dụng của nó?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 28: Một chương trình quản lý danh sách sinh viên. Khi kiểm thử chức năng xóa sinh viên, ngoài việc kiểm tra xóa thành công một sinh viên tồn tại, bạn cần kiểm tra những trường hợp nào khác?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 29: Việc lựa chọn thuật toán phù hợp (dựa trên đánh giá hiệu quả) và kiểm thử chương trình cẩn thận là hai hoạt động bổ sung cho nhau như thế nào trong quá trình phát triển phần mềm?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 06

Câu 30: Một thuật toán tìm đường đi trong mê cung. Để đánh giá hiệu quả của thuật toán này, ngoài thời gian thực hiện, tiêu chí nào sau đây cũng có thể được xem xét?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 07

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 07 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong quy trình phát triển phần mềm, hoạt động kiểm thử (testing) đóng vai trò chính là gì?

  • A. Chứng minh chương trình hoàn toàn không có lỗi.
  • B. Tìm ra các lỗi và khuyết điểm trong chương trình.
  • C. Đảm bảo chương trình chạy nhanh nhất có thể.
  • D. Tối ưu hóa việc sử dụng bộ nhớ của chương trình.

Câu 2: Một lập trình viên vừa hoàn thành một hàm tính giai thừa của một số nguyên không âm. Anh ta muốn kiểm thử hàm này. Bộ dữ liệu kiểm thử nào sau đây là quan trọng nhất để kiểm tra các trường hợp đặc biệt (boundary cases)?

  • A. 5, 10, 15
  • B. -2, 0, 5
  • C. 0, 1, 5
  • D. 100, 200, 300

Câu 3: Tại sao việc kiểm thử chương trình bằng cách chạy với nhiều bộ dữ liệu khác nhau KHÔNG thể chứng minh tính đúng đắn tuyệt đối của thuật toán?

  • A. Vì các bộ dữ liệu kiểm thử thường không được thiết kế tốt.
  • B. Vì thuật toán có thể thay đổi hành vi theo thời gian.
  • C. Vì kiểm thử chỉ kiểm tra được hiệu năng, không phải tính đúng.
  • D. Vì số lượng các trường hợp đầu vào có thể là vô hạn hoặc quá lớn để kiểm tra hết.

Câu 4: Để chứng minh tính đúng đắn của một thuật toán một cách chặt chẽ và đảm bảo cho mọi trường hợp đầu vào, người ta thường sử dụng phương pháp nào?

  • A. Chạy thử chương trình với hàng triệu bộ dữ liệu.
  • B. Sử dụng các phương pháp chứng minh logic hoặc toán học (ví dụ: quy nạp toán học).
  • C. So sánh kết quả với một chương trình khác.
  • D. Đo thời gian chạy của chương trình.

Câu 5: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

  • A. Độ phức tạp thời gian và độ phức tạp không gian.
  • B. Tính dễ đọc và dễ bảo trì của mã lệnh.
  • C. Số lượng dòng mã và số lượng biến sử dụng.
  • D. Khả năng tương thích với các hệ điều hành khác nhau.

Câu 6: Một chương trình tìm kiếm phần tử trong danh sách có thể được triển khai bằng thuật toán tìm kiếm tuyến tính hoặc tìm kiếm nhị phân (trên danh sách đã sắp xếp). Đối với một danh sách rất lớn, thuật toán tìm kiếm nhị phân thường hiệu quả hơn tìm kiếm tuyến tính về mặt nào?

  • A. Độ phức tạp không gian (bộ nhớ sử dụng).
  • B. Độ phức tạp thời gian (tốc độ thực thi).
  • C. Tính đơn giản của mã lệnh.
  • D. Khả năng áp dụng cho danh sách chưa được sắp xếp.

Câu 7: Trong kiểm thử hộp đen (Black-box testing), người kiểm thử dựa vào yếu tố nào để thiết kế bộ dữ liệu kiểm thử?

  • A. Đặc tả yêu cầu và chức năng của chương trình.
  • B. Cấu trúc bên trong và mã nguồn của chương trình.
  • C. Hiệu quả sử dụng bộ nhớ của chương trình.
  • D. Thời gian chạy của chương trình.

Câu 8: Giả sử bạn cần kiểm thử một chương trình tính tiền cước taxi dựa trên quãng đường. Giá cước có thể thay đổi ở các mốc quãng đường nhất định (ví dụ: 1km đầu khác, từ 1km đến 5km khác, trên 5km khác). Bộ dữ liệu kiểm thử nào sau đây là ví dụ tốt về việc kiểm tra các giá trị biên (boundary values) cho bài toán này?

  • A. 10km, 20km, 30km.
  • B. 0.5km, 2.5km, 7.5km.
  • C. 1km, 5km, 10km.
  • D. 0km, 1km, 1.01km, 5km, 5.01km.

Câu 9: Phương pháp nào sau đây KHÔNG phải là phương pháp chính để chứng minh tính đúng đắn của thuật toán?

  • A. Sử dụng một lượng lớn bộ dữ liệu kiểm thử ngẫu nhiên.
  • B. Chứng minh bằng quy nạp toán học.
  • C. Sử dụng bất biến vòng lặp.
  • D. Lập luận logic dựa trên các tiền điều kiện và hậu điều kiện.

Câu 10: Khi đánh giá một thuật toán, nếu độ phức tạp thời gian của nó là O(n^2), điều này có ý nghĩa gì khi kích thước đầu vào (n) tăng lên?

  • A. Thời gian chạy tăng tuyến tính theo n.
  • B. Thời gian chạy tăng theo logarit của n.
  • C. Thời gian chạy tăng tỉ lệ thuận với bình phương của n.
  • D. Thời gian chạy không phụ thuộc vào n.

Câu 11: Giả sử bạn có hai thuật toán A và B cùng giải một bài toán. Thuật toán A có độ phức tạp thời gian O(n), thuật toán B có độ phức tạp thời gian O(n log n). Với giá trị n đủ lớn, bạn sẽ chọn thuật toán nào nếu mục tiêu là tối ưu tốc độ?

  • A. Thuật toán A.
  • B. Thuật toán B.
  • C. Cả hai thuật toán có hiệu quả tương đương.
  • D. Không đủ thông tin để kết luận.

Câu 12: Kiểm thử hộp trắng (White-box testing) tập trung vào khía cạnh nào của chương trình?

  • A. Chức năng và giao diện người dùng.
  • B. Cấu trúc bên trong và luồng thực thi của mã nguồn.
  • C. Hiệu quả sử dụng tài nguyên hệ thống.
  • D. Khả năng phục hồi sau lỗi.

Câu 13: Mục đích của việc thiết kế bộ dữ liệu kiểm thử đa dạng, bao gồm cả trường hợp điển hình, trường hợp biên, và trường hợp ngoại lệ là gì?

  • A. Để tăng khả năng phát hiện các lỗi tiềm ẩn trong nhiều tình huống khác nhau.
  • B. Để chứng minh chương trình luôn chạy đúng.
  • C. Để giảm thời gian cần thiết cho việc kiểm thử.
  • D. Để đơn giản hóa mã nguồn của chương trình.

Câu 14: Khi nào thì việc sử dụng các phương pháp chứng minh toán học (như quy nạp) để chứng minh tính đúng đắn của thuật toán trở nên cần thiết hoặc quan trọng hơn so với chỉ kiểm thử?

  • A. Khi chương trình rất đơn giản và ít khả năng có lỗi.
  • B. Khi chỉ cần đảm bảo chương trình hoạt động tốt với một vài dữ liệu mẫu.
  • C. Khi tính đúng đắn tuyệt đối của thuật toán là yêu cầu bắt buộc (ví dụ: hệ thống an toàn, thuật toán mật mã).
  • D. Khi cần đánh giá hiệu năng (thời gian chạy) của chương trình.

Câu 15: Độ phức tạp không gian (Space complexity) của một thuật toán đo lường điều gì?

  • A. Thời gian cần thiết để thuật toán hoàn thành.
  • B. Số lượng phép toán cơ bản mà thuật toán thực hiện.
  • C. Độ khó hiểu của mã nguồn.
  • D. Lượng bộ nhớ mà thuật toán sử dụng (ngoài bộ nhớ cho đầu vào).

Câu 16: Xem xét một thuật toán sắp xếp. Tiêu chí nào sau đây được xem là ít quan trọng nhất khi đánh giá hiệu quả của thuật toán này so với các tiêu chí khác?

  • A. Thời gian thực thi.
  • B. Bộ nhớ sử dụng.
  • C. Số lượng dòng mã lệnh.
  • D. Tính đúng đắn (đảm bảo sắp xếp đúng).

Câu 17: Một bất biến vòng lặp (loop invariant) là một khẳng định về trạng thái của chương trình mà nó:

  • A. Đúng trước khi bắt đầu vòng lặp, được duy trì sau mỗi lần lặp, và giúp chứng minh tính đúng của thuật toán khi vòng lặp kết thúc.
  • B. Đảm bảo vòng lặp sẽ kết thúc sau một số hữu hạn bước.
  • C. Đo lường thời gian thực thi của vòng lặp.
  • D. Là một đoạn mã được thực thi ở cuối mỗi lần lặp.

Câu 18: Khi kiểm thử một hàm xử lý chuỗi, bộ dữ liệu kiểm thử nào sau đây đại diện cho trường hợp ngoại lệ hoặc không hợp lệ (invalid input)?

  • A. Một chuỗi có độ dài trung bình.
  • B. Một chuỗi rất dài.
  • C. Một chuỗi chỉ chứa chữ cái.
  • D. Một giá trị rỗng (null) hoặc một chuỗi rỗng ("").

Câu 19: Đánh giá hiệu quả của chương trình KHÔNG bao gồm hoạt động nào sau đây?

  • A. Đo thời gian thực thi của chương trình với các kích thước dữ liệu khác nhau.
  • B. Phân tích lượng bộ nhớ mà chương trình sử dụng.
  • C. Thu thập ý kiến người dùng về giao diện và trải nghiệm.
  • D. Xác định độ phức tạp thời gian và không gian của thuật toán.

Câu 20: Một chương trình được thiết kế để xử lý dữ liệu từ một tệp tin. Khi kiểm thử chương trình này, điều gì sẽ xảy ra nếu bộ dữ liệu kiểm thử sử dụng một tệp tin không tồn tại hoặc bị hỏng?

  • A. Kiểm tra khả năng xử lý lỗi (error handling) của chương trình.
  • B. Chứng minh chương trình luôn chạy đúng với mọi loại dữ liệu.
  • C. Đánh giá tốc độ đọc tệp của chương trình.
  • D. Tối ưu hóa dung lượng tệp đầu vào.

Câu 21: Khi so sánh hai thuật toán A (O(n)) và B (O(n^2)) trên cùng một tập dữ liệu, phát biểu nào sau đây là đúng về hiệu quả của chúng khi n rất lớn?

  • A. Thuật toán A sẽ luôn chạy chậm hơn thuật toán B.
  • B. Thuật toán A sẽ chạy nhanh hơn đáng kể so với thuật toán B.
  • C. Thời gian chạy của cả hai thuật toán sẽ tương đương nhau.
  • D. Không thể so sánh hiệu quả chỉ dựa vào độ phức tạp thời gian.

Câu 22: Trong phương pháp quy nạp toán học để chứng minh tính đúng của một thuật toán đệ quy, bước "bước quy nạp" (inductive step) thường bao gồm điều gì?

  • A. Chứng minh thuật toán đúng cho trường hợp cơ sở (đầu vào nhỏ nhất).
  • B. Kiểm thử thuật toán với một vài bộ dữ liệu lớn.
  • C. Giả sử thuật toán đúng cho một trường hợp có kích thước k và chứng minh nó đúng cho trường hợp có kích thước k+1.
  • D. Xác định độ phức tạp thời gian của thuật toán.

Câu 23: Một chương trình xử lý ảnh cần đọc một tệp ảnh lớn. Đánh giá hiệu quả của chương trình này có thể cần xem xét cả độ phức tạp thời gian (tốc độ xử lý ảnh) và độ phức tạp không gian (bộ nhớ cần để lưu trữ ảnh và dữ liệu trung gian). Trong trường hợp này, yếu tố nào thường trở nên quan trọng khi làm việc với ảnh có độ phân giải rất cao?

  • A. Độ phức tạp thời gian.
  • B. Độ phức tạp không gian.
  • C. Cả hai đều không quan trọng.
  • D. Chỉ cần quan tâm đến tính đúng đắn của thuật toán.

Câu 24: "Tăng độ tin cậy của chương trình" là một mục tiêu của kiểm thử. Điều này có nghĩa là gì?

  • A. Chương trình ít có khả năng gặp lỗi và hoạt động ổn định hơn trong nhiều điều kiện.
  • B. Chương trình chạy nhanh hơn.
  • C. Chương trình sử dụng ít bộ nhớ hơn.
  • D. Chương trình được chứng minh là hoàn toàn đúng về mặt toán học.

Câu 25: Khi thiết kế các bộ dữ liệu kiểm thử cho một chương trình, việc sử dụng dữ liệu "điển hình" (typical cases) có mục đích chính là gì?

  • A. Để tìm ra các lỗi hiếm gặp.
  • B. Để kiểm tra hiệu năng tối đa của chương trình.
  • C. Để xác nhận chương trình hoạt động chính xác trong các trường hợp sử dụng phổ biến.
  • D. Để kiểm tra khả năng xử lý các giá trị ngoại lệ.

Câu 26: Phát biểu nào sau đây là SAI khi nói về mối quan hệ giữa kiểm thử và chứng minh tính đúng của thuật toán?

  • A. Kiểm thử có thể phát hiện sự hiện diện của lỗi, nhưng không thể chứng minh không có lỗi.
  • B. Kiểm thử bằng bộ dữ liệu có thể chứng minh tính đúng của thuật toán cho mọi trường hợp.
  • C. Chứng minh tính đúng bằng toán học đảm bảo thuật toán đúng cho mọi trường hợp đầu vào.
  • D. Kiểm thử và chứng minh là hai phương pháp bổ sung cho nhau trong việc đảm bảo chất lượng phần mềm.

Câu 27: Trong bối cảnh đánh giá hiệu quả thuật toán, "tối ưu" thường có nghĩa là gì?

  • A. Thuật toán sử dụng ít tài nguyên (thời gian, bộ nhớ) nhất có thể để giải quyết vấn đề.
  • B. Mã nguồn của thuật toán ngắn nhất.
  • C. Thuật toán dễ hiểu và dễ viết nhất.
  • D. Thuật toán đã được kiểm thử với mọi bộ dữ liệu có thể.

Câu 28: Một chương trình được giao nhiệm vụ xử lý một tập dữ liệu lớn (ví dụ: hàng tỷ bản ghi). Yếu tố nào trong đánh giá hiệu quả sẽ trở nên CỰC KỲ quan trọng?

  • A. Tính dễ đọc của mã nguồn.
  • B. Độ phức tạp không gian (bộ nhớ sử dụng).
  • C. Số lượng lỗi được tìm thấy trong quá trình kiểm thử.
  • D. Độ phức tạp thời gian (tốc độ thực thi khi n rất lớn).

Câu 29: Sử dụng bất biến vòng lặp là một kỹ thuật để chứng minh tính đúng của thuật toán. Bất biến vòng lặp giúp chúng ta khẳng định điều gì sau khi vòng lặp kết thúc?

  • A. Thời gian chạy của vòng lặp.
  • B. Hậu điều kiện (kết quả mong muốn) của thuật toán được thỏa mãn.
  • C. Vòng lặp sẽ chạy vô hạn.
  • D. Chương trình không sử dụng bộ nhớ.

Câu 30: Tại sao cần phải kiểm thử chương trình ngay cả khi thuật toán đã được chứng minh là đúng về mặt toán học?

  • A. Để phát hiện các lỗi trong quá trình cài đặt (coding errors), lỗi môi trường, hoặc lỗi xử lý các trường hợp dữ liệu không lường trước.
  • B. Để chứng minh lại tính đúng đắn của thuật toán bằng một phương pháp khác.
  • C. Để đo lường hiệu quả (thời gian, bộ nhớ) của chương trình thực tế.
  • D. Kiểm thử là yêu cầu bắt buộc theo quy trình phát triển phần mềm, không liên quan đến chứng minh toán học.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 1: Trong quy trình phát triển phần mềm, hoạt động kiểm thử (testing) đóng vai trò chính là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 2: Một lập trình viên vừa hoàn thành một hàm tính giai thừa của một số nguyên không âm. Anh ta muốn kiểm thử hàm này. Bộ dữ liệu kiểm thử nào sau đây là *quan trọng nhất* để kiểm tra các trường hợp đặc biệt (boundary cases)?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 3: Tại sao việc kiểm thử chương trình bằng cách chạy với nhiều bộ dữ liệu khác nhau KHÔNG thể chứng minh tính đúng đắn tuyệt đối của thuật toán?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 4: Để chứng minh tính đúng đắn của một thuật toán một cách chặt chẽ và đảm bảo cho mọi trường hợp đầu vào, người ta thường sử dụng phương pháp nào?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 5: Khi đánh giá hiệu quả của một thuật toán, hai tiêu chí quan trọng nhất thường được xem xét là gì?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 6: Một chương trình tìm kiếm phần tử trong danh sách có thể được triển khai bằng thuật toán tìm kiếm tuyến tính hoặc tìm kiếm nhị phân (trên danh sách đã sắp xếp). Đối với một danh sách rất lớn, thuật toán tìm kiếm nhị phân thường hiệu quả hơn tìm kiếm tuyến tính về mặt nào?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 7: Trong kiểm thử hộp đen (Black-box testing), người kiểm thử dựa vào yếu tố nào để thiết kế bộ dữ liệu kiểm thử?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 8: Giả sử bạn cần kiểm thử một chương trình tính tiền cước taxi dựa trên quãng đường. Giá cước có thể thay đổi ở các mốc quãng đường nhất định (ví dụ: 1km đầu khác, từ 1km đến 5km khác, trên 5km khác). Bộ dữ liệu kiểm thử nào sau đây là ví dụ tốt về việc kiểm tra các giá trị biên (boundary values) cho bài toán này?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 9: Phương pháp nào sau đây KHÔNG phải là phương pháp chính để chứng minh tính đúng đắn của thuật toán?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 10: Khi đánh giá một thuật toán, nếu độ phức tạp thời gian của nó là O(n^2), điều này có ý nghĩa gì khi kích thước đầu vào (n) tăng lên?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 11: Giả sử bạn có hai thuật toán A và B cùng giải một bài toán. Thuật toán A có độ phức tạp thời gian O(n), thuật toán B có độ phức tạp thời gian O(n log n). Với giá trị n đủ lớn, bạn sẽ chọn thuật toán nào nếu mục tiêu là tối ưu tốc độ?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 12: Kiểm thử hộp trắng (White-box testing) tập trung vào khía cạnh nào của chương trình?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 13: Mục đích của việc thiết kế bộ dữ liệu kiểm thử đa dạng, bao gồm cả trường hợp điển hình, trường hợp biên, và trường hợp ngoại lệ là gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 14: Khi nào thì việc sử dụng các phương pháp chứng minh toán học (như quy nạp) để chứng minh tính đúng đắn của thuật toán trở nên cần thiết hoặc quan trọng hơn so với chỉ kiểm thử?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 15: Độ phức tạp không gian (Space complexity) của một thuật toán đo lường điều gì?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 16: Xem xét một thuật toán sắp xếp. Tiêu chí nào sau đây được xem là *ít quan trọng nhất* khi đánh giá hiệu quả của thuật toán này so với các tiêu chí khác?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 17: Một bất biến vòng lặp (loop invariant) là một khẳng định về trạng thái của chương trình mà nó:

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 18: Khi kiểm thử một hàm xử lý chuỗi, bộ dữ liệu kiểm thử nào sau đây đại diện cho trường hợp ngoại lệ hoặc không hợp lệ (invalid input)?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 19: Đánh giá hiệu quả của chương trình KHÔNG bao gồm hoạt động nào sau đây?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 20: Một chương trình được thiết kế để xử lý dữ liệu từ một tệp tin. Khi kiểm thử chương trình này, điều gì sẽ xảy ra nếu bộ dữ liệu kiểm thử sử dụng một tệp tin không tồn tại hoặc bị hỏng?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 21: Khi so sánh hai thuật toán A (O(n)) và B (O(n^2)) trên cùng một tập dữ liệu, phát biểu nào sau đây là đúng về hiệu quả của chúng khi n rất lớn?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 22: Trong phương pháp quy nạp toán học để chứng minh tính đúng của một thuật toán đệ quy, bước 'bước quy nạp' (inductive step) thường bao gồm điều gì?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 23: Một chương trình xử lý ảnh cần đọc một tệp ảnh lớn. Đánh giá hiệu quả của chương trình này có thể cần xem xét cả độ phức tạp thời gian (tốc độ xử lý ảnh) và độ phức tạp không gian (bộ nhớ cần để lưu trữ ảnh và dữ liệu trung gian). Trong trường hợp này, yếu tố nào thường trở nên quan trọng khi làm việc với ảnh có độ phân giải rất cao?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 24: 'Tăng độ tin cậy của chương trình' là một mục tiêu của kiểm thử. Điều này có nghĩa là gì?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 25: Khi thiết kế các bộ dữ liệu kiểm thử cho một chương trình, việc sử dụng dữ liệu 'điển hình' (typical cases) có mục đích chính là gì?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 26: Phát biểu nào sau đây là SAI khi nói về mối quan hệ giữa kiểm thử và chứng minh tính đúng của thuật toán?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 27: Trong bối cảnh đánh giá hiệu quả thuật toán, 'tối ưu' thường có nghĩa là gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 28: Một chương trình được giao nhiệm vụ xử lý một tập dữ liệu lớn (ví dụ: hàng tỷ bản ghi). Yếu tố nào trong đánh giá hiệu quả sẽ trở nên CỰC KỲ quan trọng?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 29: Sử dụng bất biến vòng lặp là một kỹ thuật để chứng minh tính đúng của thuật toán. Bất biến vòng lặp giúp chúng ta khẳng định điều gì sau khi vòng lặp kết thúc?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 07

Câu 30: Tại sao cần phải kiểm thử chương trình ngay cả khi thuật toán đã được chứng minh là đúng về mặt toán học?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 08

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 08 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Mục đích chính và quan trọng nhất của việc kiểm thử chương trình bằng các bộ dữ liệu là gì?

  • A. Để chứng minh tính đúng đắn tuyệt đối của thuật toán trong mọi trường hợp.
  • B. Để phát hiện càng nhiều lỗi tiềm ẩn càng tốt, từ đó tăng độ tin cậy của chương trình.
  • C. Để so sánh tốc độ chạy của chương trình trên các cấu hình máy tính khác nhau.
  • D. Để đảm bảo chương trình sử dụng ít bộ nhớ nhất có thể.

Câu 2: Tại sao việc chỉ sử dụng các bộ dữ liệu kiểm thử, dù rất nhiều và đa dạng, lại không đủ để chứng minh tính đúng đắn tuyệt đối của một thuật toán?

  • A. Vì các bộ dữ liệu kiểm thử luôn chứa sai sót ngẫu nhiên.
  • B. Vì kiểm thử chỉ có thể thực hiện trên một phần nhỏ mã nguồn của chương trình.
  • C. Vì số lượng các trường hợp đầu vào có thể có thường là vô hạn hoặc quá lớn để kiểm thử hết.
  • D. Vì kết quả kiểm thử phụ thuộc vào người thực hiện kiểm thử.

Câu 3: Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng đắn của một thuật toán một cách chắc chắn về mặt lý thuyết?

  • A. Sử dụng lập luận logic toán học, ví dụ như chứng minh quy nạp.
  • B. Chạy chương trình với một lượng lớn dữ liệu ngẫu nhiên.
  • C. So sánh kết quả của chương trình với kết quả của một chương trình khác đã biết là đúng.
  • D. Đo thời gian thực thi chương trình trên nhiều bộ dữ liệu khác nhau.

Câu 4: Tiêu chí nào dưới đây là hai yếu tố quan trọng nhất thường được xem xét khi đánh giá hiệu quả (performance) của một thuật toán?

  • A. Tính dễ hiểu của mã nguồn và số dòng lệnh.
  • B. Khả năng tương thích với các hệ điều hành khác nhau và giao diện người dùng.
  • C. Số lượng lỗi đã được phát hiện và số lần chương trình bị treo.
  • D. Thời gian thực thi và lượng không gian bộ nhớ sử dụng.

Câu 5: Khi kiểm thử một chương trình sắp xếp, bộ dữ liệu nào sau đây là quan trọng nhất để kiểm tra các trường hợp "biên" (edge cases) hoặc "đặc biệt"?

  • A. Một mảng gồm 1000 số nguyên ngẫu nhiên.
  • B. Một mảng gồm các chuỗi ký tự ngẫu nhiên.
  • C. Một mảng rỗng, một mảng chỉ có một phần tử, một mảng đã được sắp xếp, một mảng sắp xếp ngược.
  • D. Một mảng chỉ chứa các số dương.

Câu 6: Giả sử bạn có một thuật toán tìm kiếm trên một danh sách đã sắp xếp. Nếu bạn sử dụng phương pháp chứng minh bằng bất biến vòng lặp, bất biến đó cần thể hiện điều gì sau mỗi lần lặp?

  • A. Phần tử cần tìm đã được xác định.
  • B. Nếu phần tử cần tìm tồn tại, nó phải nằm trong phạm vi tìm kiếm hiện tại chưa bị loại bỏ.
  • C. Danh sách đã được sắp xếp hoàn toàn.
  • D. Thời gian chạy của thuật toán đang giảm dần.

Câu 7: Một chương trình được đánh giá là "tối ưu về thời gian". Điều này có nghĩa là gì?

  • A. Chương trình thực thi nhanh chóng, đặc biệt với dữ liệu lớn.
  • B. Chương trình sử dụng rất ít bộ nhớ.
  • C. Chương trình không có bất kỳ lỗi nào.
  • D. Mã nguồn của chương trình rất ngắn gọn.

Câu 8: Trong quá trình phát triển phần mềm, kiểm thử thường được thực hiện ở giai đoạn nào?

  • A. Chỉ sau khi chương trình đã hoàn thành 100% và sẵn sàng phát hành.
  • B. Chỉ trước khi bắt đầu viết mã chương trình.
  • C. Là một quá trình liên tục, lặp đi lặp lại trong suốt vòng đời phát triển chương trình.
  • D. Chỉ khi người dùng cuối báo cáo có lỗi.

Câu 9: Việc lựa chọn bộ dữ liệu kiểm thử đa dạng, bao gồm cả các trường hợp hợp lệ và không hợp lệ, có mục đích gì?

  • A. Để làm cho chương trình chạy nhanh hơn.
  • B. Để kiểm tra tính đúng đắn của chương trình trong nhiều điều kiện khác nhau và khả năng xử lý các ngoại lệ.
  • C. Để giảm độ phức tạp của thuật toán.
  • D. Để tự động sửa các lỗi cú pháp trong mã nguồn.

Câu 10: Đánh giá độ phức tạp không gian của một thuật toán nhằm mục đích chính là gì?

  • A. Ước lượng lượng bộ nhớ cần thiết để thuật toán hoạt động.
  • B. Xác định số lượng phép tính mà thuật toán thực hiện.
  • C. Đo lường thời gian chạy thực tế của thuật toán.
  • D. Kiểm tra tính đúng đắn của kết quả đầu ra.

Câu 11: Giả sử bạn đang kiểm thử một hàm tính căn bậc hai. Bộ dữ liệu nào sau đây sẽ là một "trường hợp biên" hoặc "trường hợp đặc biệt" cần được kiểm tra kỹ?

  • A. Một số dương lớn (ví dụ: 1000000).
  • B. Một số dương nhỏ (ví dụ: 0.5).
  • C. Một số nguyên tố.
  • D. Số 0 và một số âm.

Câu 12: Khi một lập trình viên sử dụng các kỹ thuật chứng minh toán học để khẳng định thuật toán của mình luôn cho kết quả đúng với mọi đầu vào hợp lệ, họ đang hướng tới mục tiêu nào vượt ra ngoài khả năng của kiểm thử thông thường?

  • A. Chứng minh tính đúng đắn (correctness) tuyệt đối của thuật toán.
  • B. Giảm thời gian thực thi của chương trình.
  • C. Tăng tính dễ đọc của mã nguồn.
  • D. Tự động phát hiện và sửa lỗi trong quá trình chạy.

Câu 13: Một chương trình xử lý ảnh yêu cầu lưu trữ toàn bộ dữ liệu ảnh vào bộ nhớ RAM trước khi xử lý. Đối với các ảnh có độ phân giải rất cao, tiêu chí đánh giá hiệu quả nào sẽ trở nên đặc biệt quan trọng?

  • A. Tính đúng đắn của thuật toán xử lý ảnh.
  • B. Độ phức tạp không gian (lượng bộ nhớ sử dụng).
  • C. Độ phức tạp thời gian (tốc độ xử lý).
  • D. Tính dễ hiểu của giao diện người dùng.

Câu 14: Điều nào sau đây KHÔNG phải là một lợi ích của việc thực hiện kiểm thử chương trình một cách bài bản?

  • A. Tìm ra các lỗi sai logic hoặc cú pháp.
  • B. Cải thiện độ ổn định và tin cậy của chương trình.
  • C. Giúp hiểu rõ hơn cách chương trình hoạt động trong các tình huống khác nhau.
  • D. Chắc chắn rằng chương trình sẽ không bao giờ gặp lỗi khi chạy trên bất kỳ dữ liệu nào.

Câu 15: Khi đánh giá một thuật toán, "độ phức tạp thời gian" (time complexity) thường được biểu diễn bằng ký hiệu Big O (ví dụ: O(n), O(n log n), O(n^2)). Ký hiệu này mô tả điều gì?

  • A. Tốc độ tăng trưởng của thời gian thực thi khi kích thước dữ liệu đầu vào tăng lên.
  • B. Thời gian thực thi chính xác của thuật toán tính bằng giây.
  • C. Tổng số dòng mã lệnh trong thuật toán.
  • D. Lượng bộ nhớ tối đa mà thuật toán sử dụng.

Câu 16: Trong kiểm thử hộp đen (Black-box testing), người kiểm thử tập trung vào yếu tố nào?

  • A. Cấu trúc bên trong và logic của mã nguồn.
  • B. Số lượng biến và hàm được sử dụng.
  • C. Chức năng của chương trình dựa trên yêu cầu và các cặp dữ liệu vào/ra.
  • D. Tốc độ thực thi của từng dòng lệnh.

Câu 17: Bất biến vòng lặp (Loop Invariant) là một công cụ hữu ích trong việc chứng minh tính đúng đắn của các thuật toán lặp. Một bất biến vòng lặp cần thỏa mãn những điều kiện cơ bản nào?

  • A. Đúng trước khi bắt đầu vòng lặp, được duy trì sau mỗi lần lặp, và khi vòng lặp kết thúc, bất biến cùng với điều kiện kết thúc vòng lặp suy ra tính đúng đắn của thuật toán.
  • B. Luôn đúng trong mọi thời điểm thực thi của chương trình.
  • C. Đảm bảo vòng lặp sẽ kết thúc sau một số hữu hạn bước.
  • D. Chỉ cần đúng ở lần lặp cuối cùng.

Câu 18: Một chương trình được thiết kế để tính tổng của N số nguyên dương đầu tiên. Nếu bạn muốn kiểm thử chương trình này, bộ dữ liệu nào sau đây là một "trường hợp điển hình" (typical case)?

  • A. N = 0.
  • B. N = 100.
  • C. N là một số âm.
  • D. N = 1.

Câu 19: Điều gì xảy ra khi một lỗi (bug) được phát hiện trong quá trình kiểm thử?

  • A. Quá trình kiểm thử kết thúc và chương trình được phát hành.
  • B. Lỗi được ghi nhận và bỏ qua nếu không quá nghiêm trọng.
  • C. Toàn bộ chương trình phải được viết lại từ đầu.
  • D. Lỗi được báo cáo, phân tích, sửa chữa, và chương trình cần được kiểm thử lại (regression testing).

Câu 20: Khi đánh giá hiệu quả của thuật toán, tại sao việc đo lường thời gian thực thi trên một bộ dữ liệu cụ thể lại không đủ mà cần phải xem xét độ phức tạp thời gian (Big O)?

  • A. Vì thời gian thực thi thực tế phụ thuộc vào cấu hình phần cứng và môi trường chạy, trong khi Big O mô tả tốc độ tăng trưởng độc lập với phần cứng.
  • B. Vì Big O luôn cho kết quả chính xác hơn thời gian đo được.
  • C. Vì thời gian đo được chỉ áp dụng cho các thuật toán sắp xếp.
  • D. Vì Big O bao gồm cả độ phức tạp không gian.

Câu 21: Một thuật toán tìm kiếm sử dụng phương pháp chia để trị (ví dụ: tìm kiếm nhị phân) trên danh sách đã sắp xếp. Độ phức tạp thời gian điển hình của thuật toán này là gì?

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(1)

Câu 22: Trong bối cảnh kiểm thử và đánh giá, tính "tin cậy" (reliability) của chương trình có ý nghĩa là gì?

  • A. Chương trình luôn chạy với tốc độ tối đa.
  • B. Chương trình hoạt động đúng chức năng yêu cầu và ổn định trong các điều kiện sử dụng bình thường.
  • C. Chương trình có giao diện đẹp và dễ sử dụng.
  • D. Chương trình được viết bằng ngôn ngữ lập trình phổ biến.

Câu 23: Khi sử dụng phương pháp chứng minh quy nạp toán học để chứng minh tính đúng đắn của một thuật toán, bạn cần thực hiện những bước cơ bản nào?

  • A. Chứng minh trường hợp cơ sở, giả sử đúng với k, và chứng minh đúng với k+1.
  • B. Chạy thử thuật toán với nhiều bộ dữ liệu khác nhau.
  • C. Đo thời gian chạy và bộ nhớ sử dụng của thuật toán.
  • D. So sánh thuật toán với một thuật toán khác đã biết là đúng.

Câu 24: Một chương trình xử lý dữ liệu lớn từ cảm biến theo thời gian thực. Tiêu chí đánh giá hiệu quả nào sẽ được ưu tiên hàng đầu?

  • A. Độ phức tạp không gian.
  • B. Tính dễ hiểu của mã nguồn.
  • C. Độ phức tạp thời gian (tốc độ xử lý).
  • D. Số lượng bình luận trong mã nguồn.

Câu 25: Tại sao việc kiểm thử với dữ liệu ngẫu nhiên (random test data) lại có thể giúp phát hiện các lỗi mà các bộ dữ liệu được thiết kế sẵn có thể bỏ sót?

  • A. Vì dữ liệu ngẫu nhiên luôn nhỏ hơn dữ liệu thật.
  • B. Vì dữ liệu ngẫu nhiên giúp chương trình chạy nhanh hơn.
  • C. Vì dữ liệu ngẫu nhiên dễ tạo hơn.
  • D. Vì dữ liệu ngẫu nhiên có thể tạo ra các tổ hợp hoặc trường hợp đầu vào không lường trước được khi thiết kế test case thủ công.

Câu 26: Mối quan hệ giữa "tính đúng đắn" (correctness) và "hiệu quả" (efficiency) của một thuật toán là gì?

  • A. Một thuật toán đúng đắn luôn hiệu quả và ngược lại.
  • B. Một thuật toán có thể đúng đắn nhưng không hiệu quả, hoặc hiệu quả nhưng không đúng đắn (đối với một số trường hợp).
  • C. Tính đúng đắn là một phần của hiệu quả.
  • D. Hiệu quả là một phần của tính đúng đắn.

Câu 27: Khi kiểm thử một chương trình xử lý số, bộ dữ liệu nào sau đây thuộc loại "trường hợp ngoại lệ" (exceptional case) hoặc "không hợp lệ"?

  • A. Đầu vào là một chuỗi ký tự thay vì số.
  • B. Đầu vào là số 0.
  • C. Đầu vào là một số nguyên dương lớn.
  • D. Đầu vào là một số thập phân.

Câu 28: Phương pháp kiểm thử nào đòi hỏi người kiểm thử phải hiểu rõ cấu trúc bên trong, logic và mã nguồn của chương trình để thiết kế các trường hợp kiểm thử?

  • A. Kiểm thử hộp đen (Black-box testing).
  • B. Kiểm thử ngẫu nhiên (Random testing).
  • C. Kiểm thử hộp trắng (White-box testing).
  • D. Kiểm thử hồi quy (Regression testing).

Câu 29: Một chương trình được cho là có độ phức tạp thời gian O(n^2). Điều này có nghĩa là gì khi kích thước đầu vào (n) tăng gấp đôi?

  • A. Thời gian chạy tăng gấp đôi.
  • B. Thời gian chạy tăng theo hàm logarit.
  • C. Thời gian chạy tăng xấp xỉ gấp ba.
  • D. Thời gian chạy tăng xấp xỉ gấp bốn (2^2).

Câu 30: Ngoài việc tìm lỗi, quá trình kiểm thử còn đóng góp vào điều gì khác trong vòng đời phát triển phần mềm?

  • A. Tự động viết tài liệu hướng dẫn sử dụng cho chương trình.
  • B. Cung cấp phản hồi giá trị để cải thiện thiết kế và yêu cầu của chương trình.
  • C. Giảm bớt công sức cần thiết cho việc viết mã ban đầu.
  • D. Thay thế hoàn toàn nhu cầu chứng minh tính đúng đắn bằng toán học.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 1: Mục đích chính và quan trọng nhất của việc kiểm thử chương trình bằng các bộ dữ liệu là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 2: Tại sao việc chỉ sử dụng các bộ dữ liệu kiểm thử, dù rất nhiều và đa dạng, lại không đủ để chứng minh tính đúng đắn tuyệt đối của một thuật toán?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 3: Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng đắn của một thuật toán một cách chắc chắn về mặt lý thuyết?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 4: Tiêu chí nào dưới đây là hai yếu tố quan trọng nhất thường được xem xét khi đánh giá hiệu quả (performance) của một thuật toán?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 5: Khi kiểm thử một chương trình sắp xếp, bộ dữ liệu nào sau đây là quan trọng nhất để kiểm tra các trường hợp 'biên' (edge cases) hoặc 'đặc biệt'?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 6: Giả sử bạn có một thuật toán tìm kiếm trên một danh sách đã sắp xếp. Nếu bạn sử dụng phương pháp chứng minh bằng bất biến vòng lặp, bất biến đó cần thể hiện điều gì sau mỗi lần lặp?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 7: Một chương trình được đánh giá là 'tối ưu về thời gian'. Điều này có nghĩa là gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 8: Trong quá trình phát triển phần mềm, kiểm thử thường được thực hiện ở giai đoạn nào?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 9: Việc lựa chọn bộ dữ liệu kiểm thử đa dạng, bao gồm cả các trường hợp hợp lệ và không hợp lệ, có mục đích gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 10: Đánh giá độ phức tạp không gian của một thuật toán nhằm mục đích chính là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 11: Giả sử bạn đang kiểm thử một hàm tính căn bậc hai. Bộ dữ liệu nào sau đây sẽ là một 'trường hợp biên' hoặc 'trường hợp đặc biệt' cần được kiểm tra kỹ?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 12: Khi một lập trình viên sử dụng các kỹ thuật chứng minh toán học để khẳng định thuật toán của mình luôn cho kết quả đúng với mọi đầu vào hợp lệ, họ đang hướng tới mục tiêu nào vượt ra ngoài khả năng của kiểm thử thông thường?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 13: Một chương trình xử lý ảnh yêu cầu lưu trữ toàn bộ dữ liệu ảnh vào bộ nhớ RAM trước khi xử lý. Đối với các ảnh có độ phân giải rất cao, tiêu chí đánh giá hiệu quả nào sẽ trở nên đặc biệt quan trọng?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 14: Điều nào sau đây KHÔNG phải là một lợi ích của việc thực hiện kiểm thử chương trình một cách bài bản?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 15: Khi đánh giá một thuật toán, 'độ phức tạp thời gian' (time complexity) thường được biểu diễn bằng ký hiệu Big O (ví dụ: O(n), O(n log n), O(n^2)). Ký hiệu này mô tả điều gì?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 16: Trong kiểm thử hộp đen (Black-box testing), người kiểm thử tập trung vào yếu tố nào?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 17: Bất biến vòng lặp (Loop Invariant) là một công cụ hữu ích trong việc chứng minh tính đúng đắn của các thuật toán lặp. Một bất biến vòng lặp cần thỏa mãn những điều kiện cơ bản nào?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 18: Một chương trình được thiết kế để tính tổng của N số nguyên dương đầu tiên. Nếu bạn muốn kiểm thử chương trình này, bộ dữ liệu nào sau đây là một 'trường hợp điển hình' (typical case)?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 19: Điều gì xảy ra khi một lỗi (bug) được phát hiện trong quá trình kiểm thử?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 20: Khi đánh giá hiệu quả của thuật toán, tại sao việc đo lường thời gian thực thi trên một bộ dữ liệu cụ thể lại không đủ mà cần phải xem xét độ phức tạp thời gian (Big O)?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 21: Một thuật toán tìm kiếm sử dụng phương pháp chia để trị (ví dụ: tìm kiếm nhị phân) trên danh sách đã sắp xếp. Độ phức tạp thời gian điển hình của thuật toán này là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 22: Trong bối cảnh kiểm thử và đánh giá, tính 'tin cậy' (reliability) của chương trình có ý nghĩa là gì?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 23: Khi sử dụng phương pháp chứng minh quy nạp toán học để chứng minh tính đúng đắn của một thuật toán, bạn cần thực hiện những bước cơ bản nào?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 24: Một chương trình xử lý dữ liệu lớn từ cảm biến theo thời gian thực. Tiêu chí đánh giá hiệu quả nào sẽ được ưu tiên hàng đầu?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 25: Tại sao việc kiểm thử với dữ liệu ngẫu nhiên (random test data) lại có thể giúp phát hiện các lỗi mà các bộ dữ liệu được thiết kế sẵn có thể bỏ sót?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 26: Mối quan hệ giữa 'tính đúng đắn' (correctness) và 'hiệu quả' (efficiency) của một thuật toán là gì?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 27: Khi kiểm thử một chương trình xử lý số, bộ dữ liệu nào sau đây thuộc loại 'trường hợp ngoại lệ' (exceptional case) hoặc 'không hợp lệ'?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 28: Phương pháp kiểm thử nào đòi hỏi người kiểm thử phải hiểu rõ cấu trúc bên trong, logic và mã nguồn của chương trình để thiết kế các trường hợp kiểm thử?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 29: Một chương trình được cho là có độ phức tạp thời gian O(n^2). Điều này có nghĩa là gì khi kích thước đầu vào (n) tăng gấp đôi?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 08

Câu 30: Ngoài việc tìm lỗi, quá trình kiểm thử còn đóng góp vào điều gì khác trong vòng đời phát triển 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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 09

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 09 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Mục đích chính của việc kiểm thử (testing) chương trình là gì?

  • A. Chứng minh chương trình hoạt động đúng trong mọi trường hợp có thể.
  • B. Phát hiện lỗi và tăng độ tin cậy của chương trình.
  • C. Đánh giá hiệu quả sử dụng bộ nhớ của chương trình.
  • D. So sánh tốc độ chạy của chương trình với các chương trình khác.

Câu 2: Tại sao việc sử dụng các bộ dữ liệu kiểm thử, dù rất nhiều và đa dạng, vẫn không thể chứng minh tính đúng đắn tuyệt đối của một thuật toán?

  • A. Các bộ dữ liệu kiểm thử thường chứa sai sót và không chính xác.
  • B. Kiểm thử chỉ tập trung vào giao diện người dùng mà bỏ qua logic bên trong.
  • C. Số lượng các trường hợp đầu vào có thể là vô hạn hoặc quá lớn để kiểm thử hết.
  • D. Kiểm thử chỉ có thể thực hiện trên máy tính có cấu hình mạnh.

Câu 3: Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng của thuật toán một cách chắc chắn về mặt lý thuyết?

  • A. Sử dụng lập luận logic hoặc chứng minh toán học (ví dụ: bất biến vòng lặp).
  • B. Chạy chương trình với một lượng lớn dữ liệu ngẫu nhiên.
  • C. So sánh kết quả với một chương trình khác đã được kiểm thử.
  • D. Đo thời gian thực thi và dung lượng bộ nhớ sử dụng.

Câu 4: Hai tiêu chí quan trọng nhất thường được dùng để đánh giá hiệu quả của một thuật toán khi xử lý lượng dữ liệu lớn là gì?

  • A. Tính dễ hiểu và khả năng tái sử dụng mã lệnh.
  • B. Số lượng dòng mã và tên biến được sử dụng.
  • C. Màu sắc giao diện và tốc độ phản hồi của giao diện người dùng.
  • D. Thời gian thực thi và dung lượng bộ nhớ cần thiết.

Câu 5: Một lập trình viên viết một chương trình tính căn bậc hai. Chương trình hoạt động đúng với các số dương lớn, nhưng khi nhập số 0 hoặc số âm thì bị lỗi. Điều này cho thấy lập trình viên đã bỏ sót loại kiểm thử nào?

  • A. Kiểm thử hiệu năng (Performance testing).
  • B. Kiểm thử trường hợp biên (Edge case testing) hoặc trường hợp đặc biệt.
  • C. Kiểm thử giao diện người dùng (UI testing).
  • D. Kiểm thử tích hợp (Integration testing).

Câu 6: Giả sử bạn có một thuật toán tìm kiếm. Bạn kiểm thử nó với một danh sách rỗng (không có phần tử nào). Đây là ví dụ về việc kiểm thử loại trường hợp nào?

  • A. Trường hợp điển hình (Typical case).
  • B. Trường hợp dữ liệu lớn (Large data case).
  • C. Trường hợp biên (Boundary case) hoặc trường hợp đặc biệt.
  • D. Trường hợp dữ liệu ngẫu nhiên (Random data case).

Câu 7: Khi đánh giá hiệu quả của hai thuật toán khác nhau giải cùng một bài toán, việc so sánh thời gian chạy trên cùng một máy tính với cùng một bộ dữ liệu lớn giúp chúng ta xác định điều gì?

  • A. Thuật toán nào có độ phức tạp thời gian tốt hơn (chạy nhanh hơn).
  • B. Thuật toán nào cần ít dòng mã lệnh hơn.
  • C. Thuật toán nào sử dụng nhiều biến hơn.
  • D. Thuật toán nào khó hiểu hơn.

Câu 8: Một chương trình xử lý ảnh hoạt động tốt với các ảnh có độ phân giải thấp nhưng bị treo hoặc rất chậm khi xử lý ảnh có độ phân giải cao. Vấn đề này chủ yếu liên quan đến tiêu chí đánh giá nào của chương trình?

  • A. Tính đúng đắn của thuật toán.
  • B. Hiệu quả (thời gian thực thi và/hoặc bộ nhớ).
  • C. Tính dễ hiểu của mã lệnh.
  • D. Khả năng tương thích với hệ điều hành.

Câu 9: Việc phát hiện ra một lỗi (bug) trong quá trình kiểm thử chương trình có ý nghĩa quan trọng nhất là gì?

  • A. Chứng minh rằng chương trình không thể sử dụng được.
  • B. Kết thúc quá trình phát triển chương trình.
  • C. Cung cấp thông tin để gỡ lỗi (debugging) và sửa chữa chương trình.
  • D. Xác nhận rằng tất cả các trường hợp kiểm thử đã được bao phủ.

Câu 10: Khi sử dụng bất biến vòng lặp để chứng minh tính đúng của một thuật toán lặp, chúng ta cần chứng minh điều gì?

  • A. Vòng lặp sẽ luôn kết thúc sau một số hữu hạn bước.
  • B. Biến đếm của vòng lặp tăng hoặc giảm đều đặn.
  • C. Thuật toán sử dụng ít bộ nhớ nhất có thể.
  • D. Một thuộc tính nào đó của dữ liệu hoặc trạng thái chương trình luôn đúng trước mỗi lần lặp và sau khi vòng lặp kết thúc.

Câu 11: Một bộ dữ liệu kiểm thử được coi là tốt khi nó có đặc điểm nào sau đây?

  • A. Chỉ bao gồm các trường hợp dữ liệu hợp lệ và điển hình.
  • B. Bao phủ nhiều trường hợp khác nhau, bao gồm cả trường hợp biên, trường hợp không hợp lệ, và trường hợp đặc biệt.
  • C. Có kích thước nhỏ để chương trình chạy nhanh hơn khi kiểm thử.
  • D. Được tạo ra hoàn toàn ngẫu nhiên mà không cần suy nghĩ.

Câu 12: Quá trình tìm kiếm và loại bỏ lỗi trong chương trình sau khi chúng đã được phát hiện trong giai đoạn kiểm thử được gọi là gì?

  • A. Gỡ lỗi (Debugging).
  • B. Kiểm thử hiệu năng (Performance testing).
  • C. Tối ưu hóa (Optimization).
  • D. Chứng minh tính đúng (Correctness proving).

Câu 13: Khi nói về "độ phức tạp thời gian" của một thuật toán, chúng ta đang đề cập đến điều gì?

  • A. Thời gian cố định mà thuật toán cần để biên dịch.
  • B. Thời gian trung bình mà một lập trình viên cần để viết mã thuật toán đó.
  • C. Thời gian thực thi của thuật toán phụ thuộc vào kích thước dữ liệu đầu vào.
  • D. Thời gian mà người dùng cần để hiểu cách sử dụng chương trình.

Câu 14: Điều gì xảy ra nếu một thuật toán có độ phức tạp thời gian rất cao khi kích thước dữ liệu đầu vào tăng lên?

  • A. Thuật toán sẽ sử dụng ít bộ nhớ hơn.
  • B. Thuật toán sẽ dễ chứng minh tính đúng hơn.
  • C. Thuật toán sẽ luôn chạy nhanh trên mọi máy tính.
  • D. Thời gian thực thi của thuật toán sẽ tăng lên rất nhanh, có thể trở nên không khả thi cho dữ liệu lớn.

Câu 15: Giả sử bạn đang kiểm thử một chương trình tính tổng các số từ 1 đến N. Bạn nhập N = 5 và chương trình trả về 15. Bạn nhập N = 10 và chương trình trả về 55. Bạn nhập N = 0 và chương trình trả về 0. Bạn nhập N = -1 và chương trình trả về lỗi. Trường hợp N = -1 là ví dụ về loại kiểm thử nào?

  • A. Kiểm thử dữ liệu không hợp lệ (Invalid data testing).
  • B. Kiểm thử hiệu năng (Performance testing).
  • C. Kiểm thử tích hợp (Integration testing).
  • D. Kiểm thử hồi quy (Regression testing).

Câu 16: Một chương trình quản lý danh sách học sinh. Sau khi thêm chức năng mới, bạn chạy lại các bộ dữ liệu kiểm thử cũ và phát hiện một chức năng cũ đột nhiên bị lỗi, mặc dù phần mã của nó không bị thay đổi. Loại kiểm thử nào đã giúp bạn phát hiện vấn đề này?

  • A. Kiểm thử đơn vị (Unit testing).
  • B. Kiểm thử chấp nhận (Acceptance testing).
  • C. Kiểm thử hồi quy (Regression testing).
  • D. Kiểm thử bảo mật (Security testing).

Câu 17: Khi đánh giá "độ phức tạp không gian" của một thuật toán, chúng ta đang xem xét điều gì?

  • A. Kích thước của file mã nguồn chương trình.
  • B. Lượng bộ nhớ mà thuật toán sử dụng trong quá trình thực thi, phụ thuộc vào kích thước dữ liệu đầu vào.
  • C. Số lượng biến được khai báo trong chương trình.
  • D. Kích thước màn hình hiển thị kết quả.

Câu 18: Điều gì có thể xảy ra nếu một chương trình có độ phức tạp không gian rất cao?

  • A. Chương trình có thể tiêu tốn quá nhiều bộ nhớ, dẫn đến chậm hoặc gặp lỗi trên các hệ thống có bộ nhớ hạn chế.
  • B. Chương trình sẽ luôn chạy nhanh hơn.
  • C. Chương trình sẽ khó tìm lỗi hơn.
  • D. Chương trình sẽ không thể biên dịch được.

Câu 19: Phân biệt giữa "đúng đắn" (correctness) và "tin cậy" (reliability) của chương trình. Phát biểu nào sau đây là đúng?

  • A. Một chương trình tin cậy thì chắc chắn đúng đắn trong mọi trường hợp.
  • B. Đúng đắn và tin cậy là hai khái niệm hoàn toàn giống nhau.
  • C. Tin cậy là khả năng chương trình chạy nhanh, còn đúng đắn là khả năng sử dụng ít bộ nhớ.
  • D. Đúng đắn là chương trình hoạt động chính xác cho mọi đầu vào hợp lệ; tin cậy là khả năng hoạt động ổn định và ít lỗi trong điều kiện thực tế sử dụng.

Câu 20: Khi thực hiện kiểm thử một chức năng cụ thể của chương trình (ví dụ: hàm tính giai thừa), loại kiểm thử nào thường được áp dụng đầu tiên và tập trung vào các đơn vị mã nhỏ nhất?

  • A. Kiểm thử đơn vị (Unit testing).
  • B. Kiểm thử hệ thống (System testing).
  • C. Kiểm thử tích hợp (Integration testing).
  • D. Kiểm thử chấp nhận (Acceptance testing).

Câu 21: Sau khi kiểm thử đơn vị các module độc lập, việc kiểm thử sự tương tác giữa các module đó khi chúng làm việc cùng nhau được gọi là gì?

  • A. Kiểm thử đơn vị (Unit testing).
  • B. Kiểm thử hồi quy (Regression testing).
  • C. Kiểm thử tích hợp (Integration testing).
  • D. Kiểm thử hiệu năng (Performance testing).

Câu 22: Một chương trình tìm kiếm phần tử trong danh sách được kiểm thử với các danh sách có 10, 100, 1000, 10000 phần tử. Thời gian thực thi được ghi lại và phân tích xu hướng tăng trưởng. Đây là việc tập trung vào đánh giá tiêu chí nào?

  • A. Tính đúng đắn của thuật toán.
  • B. Khả năng gỡ lỗi của chương trình.
  • C. Tính dễ sử dụng của giao diện.
  • D. Hiệu quả thời gian khi dữ liệu đầu vào thay đổi kích thước.

Câu 23: Tại sao việc lập kế hoạch kiểm thử (test plan) lại quan trọng trước khi bắt đầu kiểm thử chương trình?

  • A. Để đảm bảo chương trình không bao giờ có lỗi.
  • B. Để xác định rõ phạm vi kiểm thử, các trường hợp kiểm thử, tài nguyên cần thiết và mục tiêu chất lượng.
  • C. Để giảm thiểu thời gian viết mã chương trình.
  • D. Để tự động sửa lỗi khi chúng được tìm thấy.

Câu 24: Khi một chương trình đã được phát hành và người dùng báo cáo lỗi, điều này thuộc giai đoạn nào của vòng đời phát triển phần mềm liên quan đến kiểm thử và đánh giá?

  • A. Đánh giá sau phát hành và bảo trì.
  • B. Kiểm thử đơn vị.
  • C. Thiết kế thuật toán.
  • D. Chứng minh tính đúng đắn.

Câu 25: Một chương trình xử lý văn bản. Bạn kiểm thử bằng cách nhập một chuỗi rất dài, vượt quá giới hạn thông thường. Đây là việc kiểm thử loại trường hợp nào?

  • A. Trường hợp điển hình.
  • B. Trường hợp dữ liệu ngẫu nhiên.
  • C. Trường hợp dữ liệu hợp lệ tối thiểu.
  • D. Trường hợp dữ liệu lớn hoặc vượt giới hạn (stress testing/boundary testing).

Câu 26: Giả sử bạn có một thuật toán tính giá tiền sau khi giảm giá, với điều kiện nếu tổng tiền lớn hơn 1.000.000 VNĐ thì giảm 10%, ngược lại không giảm. Để kiểm thử trường hợp biên của điều kiện giảm giá, bạn nên sử dụng bộ dữ liệu kiểm thử nào?

  • A. Tổng tiền 500.000 VNĐ và 2.000.000 VNĐ.
  • B. Tổng tiền 1.000.000 VNĐ và 1.000.001 VNĐ.
  • C. Tổng tiền 0 VNĐ và 10.000.000 VNĐ.
  • D. Tổng tiền âm 100.000 VNĐ và 100 VNĐ.

Câu 27: Khả năng một chương trình tiếp tục hoạt động bình thường dưới các điều kiện không thuận lợi (ví dụ: thiếu bộ nhớ, lỗi mạng tạm thời) liên quan đến khía cạnh nào của chất lượng chương trình?

  • A. Tính bền vững (Robustness).
  • B. Tính hiệu quả thời gian.
  • C. Tính dễ hiểu.
  • D. Tính đúng đắn tuyệt đối.

Câu 28: Khi nào việc chứng minh tính đúng đắn bằng lập luận logic/toán học trở nên đặc biệt quan trọng hơn so với chỉ dựa vào kiểm thử?

  • A. Khi chương trình chỉ xử lý lượng dữ liệu nhỏ.
  • B. Khi chương trình có giao diện người dùng phức tạp.
  • C. Khi chỉ cần chương trình hoạt động đúng trên một vài trường hợp cụ thể.
  • D. Khi chương trình xử lý các tác vụ quan trọng, đòi hỏi độ chính xác tuyệt đối và không được phép có lỗi (ví dụ: hệ thống điều khiển, tính toán khoa học).

Câu 29: Một chương trình được đánh giá là hiệu quả về mặt thời gian nhưng lại sử dụng rất nhiều bộ nhớ. Điều này có thể chấp nhận được trong trường hợp nào?

  • A. Khi chương trình chạy trên các thiết bị di động có bộ nhớ hạn chế.
  • B. Khi mục tiêu duy nhất là giảm thiểu chi phí phần cứng.
  • C. Khi thời gian thực thi là yếu tố cực kỳ quan trọng và hệ thống chạy chương trình có đủ bộ nhớ dư thừa.
  • D. Không bao giờ chấp nhận được, chương trình luôn phải tối ưu cả thời gian và không gian.

Câu 30: Giả sử bạn có một chương trình sắp xếp. Bạn kiểm thử nó với một danh sách đã được sắp xếp ngược thứ tự (ví dụ: [5, 4, 3, 2, 1]). Đây là một loại kiểm thử quan trọng vì nó thường bộc lộ điều gì?

  • A. Các trường hợp xấu nhất (worst-case scenarios) có thể ảnh hưởng đến hiệu quả thời gian.
  • B. Khả năng xử lý dữ liệu ngẫu nhiên.
  • C. Tính đúng đắn của thuật toán trên dữ liệu đã được sắp xếp xuôi.
  • D. Lỗi trong việc xử lý dữ liệu không hợp lệ.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 1: Mục đích chính của việc kiểm thử (testing) chương trình là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 2: Tại sao việc sử dụng các bộ dữ liệu kiểm thử, dù rất nhiều và đa dạng, vẫn không thể chứng minh tính đúng đắn tuyệt đối của một thuật toán?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 3: Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng của thuật toán một cách chắc chắn về mặt lý thuyết?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 4: Hai tiêu chí quan trọng nhất thường được dùng để đánh giá hiệu quả của một thuật toán khi xử lý lượng dữ liệu lớn là gì?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 5: Một lập trình viên viết một chương trình tính căn bậc hai. Chương trình hoạt động đúng với các số dương lớn, nhưng khi nhập số 0 hoặc số âm thì bị lỗi. Điều này cho thấy lập trình viên đã bỏ sót loại kiểm thử nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 6: Giả sử bạn có một thuật toán tìm kiếm. Bạn kiểm thử nó với một danh sách rỗng (không có phần tử nào). Đây là ví dụ về việc kiểm thử loại trường hợp nào?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 7: Khi đánh giá hiệu quả của hai thuật toán khác nhau giải cùng một bài toán, việc so sánh thời gian chạy trên cùng một máy tính với cùng một bộ dữ liệu lớn giúp chúng ta xác định điều gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 8: Một chương trình xử lý ảnh hoạt động tốt với các ảnh có độ phân giải thấp nhưng bị treo hoặc rất chậm khi xử lý ảnh có độ phân giải cao. Vấn đề này chủ yếu liên quan đến tiêu chí đánh giá nào của chương trình?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 9: Việc phát hiện ra một lỗi (bug) trong quá trình kiểm thử chương trình có ý nghĩa quan trọng nhất là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 10: Khi sử dụng bất biến vòng lặp để chứng minh tính đúng của một thuật toán lặp, chúng ta cần chứng minh điều gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 11: Một bộ dữ liệu kiểm thử được coi là tốt khi nó có đặc điểm nào sau đây?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 12: Quá trình tìm kiếm và loại bỏ lỗi trong chương trình sau khi chúng đã được phát hiện trong giai đoạn kiểm thử được gọi là gì?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 13: Khi nói về 'độ phức tạp thời gian' của một thuật toán, chúng ta đang đề cập đến điều gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 14: Điều gì xảy ra nếu một thuật toán có độ phức tạp thời gian rất cao khi kích thước dữ liệu đầu vào tăng lên?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 15: Giả sử bạn đang kiểm thử một chương trình tính tổng các số từ 1 đến N. Bạn nhập N = 5 và chương trình trả về 15. Bạn nhập N = 10 và chương trình trả về 55. Bạn nhập N = 0 và chương trình trả về 0. Bạn nhập N = -1 và chương trình trả về lỗi. Trường hợp N = -1 là ví dụ về loại kiểm thử nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 16: Một chương trình quản lý danh sách học sinh. Sau khi thêm chức năng mới, bạn chạy lại các bộ dữ liệu kiểm thử cũ và phát hiện một chức năng cũ đột nhiên bị lỗi, mặc dù phần mã của nó không bị thay đổi. Loại kiểm thử nào đã giúp bạn phát hiện vấn đề này?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 17: Khi đánh giá 'độ phức tạp không gian' của một thuật toán, chúng ta đang xem xét điều gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 18: Điều gì có thể xảy ra nếu một chương trình có độ phức tạp không gian rất cao?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 19: Phân biệt giữa 'đúng đắn' (correctness) và 'tin cậy' (reliability) của chương trình. Phát biểu nào sau đây là đúng?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 20: Khi thực hiện kiểm thử một chức năng cụ thể của chương trình (ví dụ: hàm tính giai thừa), loại kiểm thử nào thường được áp dụng đầu tiên và tập trung vào các đơn vị mã nhỏ nhất?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 21: Sau khi kiểm thử đơn vị các module độc lập, việc kiểm thử sự tương tác giữa các module đó khi chúng làm việc cùng nhau được gọi là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 22: Một chương trình tìm kiếm phần tử trong danh sách được kiểm thử với các danh sách có 10, 100, 1000, 10000 phần tử. Thời gian thực thi được ghi lại và phân tích xu hướng tăng trưởng. Đây là việc tập trung vào đánh giá tiêu chí nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 23: Tại sao việc lập kế hoạch kiểm thử (test plan) lại quan trọng trước khi bắt đầu kiểm thử chương trình?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 24: Khi một chương trình đã được phát hành và người dùng báo cáo lỗi, điều này thuộc giai đoạn nào của vòng đời phát triển phần mềm liên quan đến kiểm thử và đánh giá?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 25: Một chương trình xử lý văn bản. Bạn kiểm thử bằng cách nhập một chuỗi rất dài, vượt quá giới hạn thông thường. Đây là việc kiểm thử loại trường hợp nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 26: Giả sử bạn có một thuật toán tính giá tiền sau khi giảm giá, với điều kiện nếu tổng tiền lớn hơn 1.000.000 VNĐ thì giảm 10%, ngược lại không giảm. Để kiểm thử trường hợp biên của điều kiện giảm giá, bạn nên sử dụng bộ dữ liệu kiểm thử nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 27: Khả năng một chương trình tiếp tục hoạt động bình thường dưới các điều kiện không thuận lợi (ví dụ: thiếu bộ nhớ, lỗi mạng tạm thời) liên quan đến khía cạnh nào của chất lượng chương trình?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 28: Khi nào việc chứng minh tính đúng đắn bằng lập luận logic/toán học trở nên đặc biệt quan trọng hơn so với chỉ dựa vào kiểm thử?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 29: Một chương trình được đánh giá là hiệu quả về mặt thời gian nhưng lại sử dụng rất nhiều bộ nhớ. Điều này có thể chấp nhận được trong trường hợp nào?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 09

Câu 30: Giả sử bạn có một chương trình sắp xếp. Bạn kiểm thử nó với một danh sách đã được sắp xếp ngược thứ tự (ví dụ: [5, 4, 3, 2, 1]). Đây là một loại kiểm thử quan trọng vì nó thường bộc lộ điều gì?

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é!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 10

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi kiểm thử một chương trình tính tổng các số từ 1 đến N, tại sao việc sử dụng các giá trị N = 0, N = 1, và một giá trị N rất lớn lại quan trọng?

  • A. Để kiểm tra chương trình có chạy nhanh hay không.
  • B. Để kiểm tra các trường hợp biên (đầu vào nhỏ nhất/đơn giản nhất) và hiệu năng với dữ liệu lớn.
  • C. Để chứng minh chương trình hoàn toàn không có lỗi.
  • D. Để làm cho bộ dữ liệu kiểm thử trông phức tạp hơn.

Câu 2: Giả sử bạn cần kiểm thử một hàm sắp xếp danh sách các số nguyên. Bộ dữ liệu kiểm thử nào dưới đây có khả năng cao nhất giúp phát hiện lỗi nếu thuật toán xử lý sai các trường hợp đặc biệt?

  • A. Một danh sách ngẫu nhiên gồm 1000 số.
  • B. Một danh sách gồm 10 số được nhập từ bàn phím.
  • C. Một danh sách đã được sắp xếp, một danh sách sắp xếp ngược, một danh sách chỉ có một phần tử, và một danh sách rỗng.
  • D. Một danh sách gồm các số nguyên dương lớn.

Câu 3: Điểm khác biệt cơ bản nhất giữa việc kiểm thử chương trình và chứng minh tính đúng đắn của thuật toán bằng lôgic toán học là gì?

  • A. Kiểm thử tìm lỗi trong các trường hợp cụ thể, còn chứng minh đảm bảo tính đúng cho mọi trường hợp đầu vào hợp lệ.
  • B. Kiểm thử yêu cầu chạy chương trình, còn chứng minh thì không.
  • C. Kiểm thử tốn nhiều thời gian hơn chứng minh.
  • D. Kiểm thử chỉ áp dụng cho chương trình nhỏ, còn chứng minh cho chương trình lớn.

Câu 4: Mục đích chính của việc sử dụng một bộ dữ liệu kiểm thử đa dạng khi kiểm thử chương trình là gì?

  • A. Giảm thời gian chạy của chương trình.
  • B. Làm cho mã nguồn dễ đọc hơn.
  • C. Chỉ tập trung vào các trường hợp mà chương trình chắc chắn chạy đúng.
  • D. Tăng khả năng phát hiện các lỗi có thể xảy ra trong nhiều tình huống đầu vào khác nhau.

Câu 5: Tại sao phương pháp quy nạp toán học (mathematical induction) thường được xem là phù hợp để chứng minh tính đúng đắn của các thuật toán có cấu trúc lặp hoặc đệ quy?

  • A. Vì nó cho phép chứng minh một tính chất đúng cho trường hợp cơ sở, sau đó suy luận rằng nếu tính chất đó đúng cho một bước bất kỳ, nó cũng đúng cho bước tiếp theo.
  • B. Vì nó chỉ yêu cầu kiểm tra một vài trường hợp đầu vào điển hình.
  • C. Vì nó giúp đo lường tốc độ thực thi của thuật toán.
  • D. Vì nó làm tăng độ tin cậy của chương trình thông qua việc chạy thử.

Câu 6: Khi kiểm thử một chương trình tính diện tích hình chữ nhật dựa trên chiều dài và chiều rộng nhập vào, bộ dữ liệu kiểm thử nào là cần thiết để đảm bảo chương trình xử lý đúng các đầu vào không hợp lệ?

  • A. Các cặp chiều dài, chiều rộng là số nguyên dương lớn.
  • B. Các cặp chiều dài, chiều rộng là số thực dương nhỏ.
  • C. Các cặp chiều dài, chiều rộng bằng 0 hoặc số âm.
  • D. Chỉ cần một cặp chiều dài, chiều rộng bất kỳ.

Câu 7: Một lập trình viên tuyên bố thuật toán tìm kiếm của mình là "hoàn toàn đúng" vì nó đã vượt qua kiểm thử với hàng triệu bộ dữ liệu ngẫu nhiên. Dựa trên kiến thức về kiểm thử và chứng minh, nhận định này có chính xác không? Tại sao?

  • A. Chính xác, vì hàng triệu bộ dữ liệu là quá đủ để bao quát mọi trường hợp.
  • B. Không chính xác, vì kiểm thử chỉ phát hiện lỗi trong các trường hợp đã thử, không thể đảm bảo không có lỗi trong các trường hợp chưa thử.
  • C. Chính xác, vì thuật toán tìm kiếm là đơn giản nên kiểm thử ngẫu nhiên là đủ.
  • D. Không chính xác, vì chỉ có chứng minh bằng thực nghiệm mới đảm bảo tính đúng.

Câu 8: Trong ngữ cảnh phát triển phần mềm, "độ tin cậy" của một chương trình (reliability) chủ yếu liên quan đến điều gì?

  • A. Khả năng hoạt động chính xác và nhất quán theo yêu cầu dưới các điều kiện xác định.
  • B. Tốc độ thực thi nhanh.
  • C. Giao diện người dùng đẹp và dễ sử dụng.
  • D. Dung lượng bộ nhớ mà chương trình sử dụng.

Câu 9: So sánh hai thuật toán giải cùng một bài toán, tiêu chí "độ phức tạp thời gian" (time complexity) cho ta biết điều gì về hiệu quả của chúng?

  • A. Chương trình được viết bằng ngôn ngữ nào.
  • B. Lượng bộ nhớ chương trình cần khi chạy.
  • C. Cách thời gian thực hiện của thuật toán tăng lên khi kích thước đầu vào tăng.
  • D. Số lượng lỗi có trong mã nguồn.

Câu 10: Một chương trình tìm giá trị lớn nhất trong một danh sách các số nguyên. Để kiểm thử kỹ lưỡng, bạn cần bao gồm các trường hợp nào trong bộ dữ liệu kiểm thử?

  • A. Chỉ cần một danh sách ngẫu nhiên gồm các số dương.
  • B. Một danh sách rỗng và một danh sách chỉ có một phần tử.
  • C. Một danh sách mà phần tử lớn nhất nằm ở đầu hoặc cuối.
  • D. Tất cả các trường hợp trên (danh sách rỗng, một phần tử, phần tử lớn nhất ở các vị trí khác nhau, danh sách chứa số âm/số 0, danh sách tất cả phần tử bằng nhau).

Câu 11: Lợi ích quan trọng nhất của việc chứng minh tính đúng đắn của thuật toán bằng phương pháp toán học so với chỉ dựa vào kiểm thử là gì?

  • A. Giúp chương trình chạy nhanh hơn.
  • B. Cung cấp sự đảm bảo chắc chắn rằng thuật toán hoạt động chính xác cho mọi đầu vào hợp lệ.
  • C. Giảm bớt công sức viết mã chương trình.
  • D. Phát hiện tất cả các lỗi cú pháp trong mã nguồn.

Câu 12: Khi đánh giá hiệu quả của một thuật toán, tại sao cần xem xét cả độ phức tạp thời gian và độ phức tạp không gian?

  • A. Vì cả hai đều ảnh hưởng trực tiếp đến tính đúng đắn của thuật toán.
  • B. Vì một thuật toán tối ưu thời gian chắc chắn cũng tối ưu không gian.
  • C. Vì hiệu quả của thuật toán được đo bằng lượng tài nguyên (thời gian xử lý và bộ nhớ) mà nó tiêu thụ.
  • D. Vì độ phức tạp thời gian và không gian luôn bằng nhau.

Câu 13: Khái niệm "bất biến vòng lặp" (loop invariant) được sử dụng trong phương pháp chứng minh tính đúng đắn của thuật toán có ý nghĩa gì?

  • A. Là một tính chất đúng trước khi vào vòng lặp, được duy trì sau mỗi lần lặp, và khi vòng lặp kết thúc, cùng với điều kiện dừng, nó đảm bảo tính đúng đắn của thuật toán.
  • B. Là một giá trị thay đổi liên tục trong suốt quá trình lặp.
  • C. Là số lần tối đa mà vòng lặp sẽ thực hiện.
  • D. Là điều kiện để thoát khỏi vòng lặp.

Câu 14: Bạn đang kiểm thử một hàm tính giai thừa của một số nguyên không âm N. Trường hợp đầu vào nào sau đây được xem là một "trường hợp biên" (edge case) quan trọng cần kiểm thử?

  • A. N = 100.
  • B. N = 5.
  • C. N = -10 (đầu vào không hợp lệ).
  • D. N = 0.

Câu 15: Một chương trình xử lý chuỗi văn bản nhập từ người dùng. Tại sao việc đưa vào bộ dữ liệu kiểm thử các chuỗi rỗng, chuỗi rất dài, hoặc chuỗi chứa các ký tự đặc biệt lại quan trọng?

  • A. Để chương trình chạy nhanh hơn.
  • B. Để kiểm tra khả năng xử lý các trường hợp bất thường hoặc ngoại lệ mà có thể gây lỗi.
  • C. Để làm cho mã nguồn chương trình ngắn gọn hơn.
  • D. Để đảm bảo chương trình chỉ hoạt động với các chuỗi đơn giản.

Câu 16: Phân biệt rõ ràng nhất về mục tiêu giữa việc kiểm thử chương trình và đánh giá hiệu quả của thuật toán là gì?

  • A. Kiểm thử nhằm tìm lỗi và tăng độ tin cậy, còn đánh giá hiệu quả nhằm đo lường tài nguyên sử dụng (thời gian, bộ nhớ).
  • B. Kiểm thử chỉ làm trên giấy, còn đánh giá hiệu quả phải chạy chương trình.
  • C. Kiểm thử chỉ quan tâm đến thời gian, còn đánh giá hiệu quả quan tâm đến bộ nhớ.
  • D. Kiểm thử chứng minh tính đúng, còn đánh giá hiệu quả tìm lỗi.

Câu 17: Nếu một chương trình đã chạy đúng với tất cả 100 bộ dữ liệu kiểm thử mà bạn đã chuẩn bị, bạn có thể kết luận chắc chắn 100% rằng chương trình đó hoàn toàn không có lỗi không? Tại sao?

  • A. Có, vì 100 bộ dữ liệu là một số lượng lớn đủ để tìm hết lỗi.
  • B. Không, vì số lượng trường hợp đầu vào có thể là vô hạn, và 100 bộ dữ liệu không thể bao quát hết tất cả.
  • C. Có, miễn là 100 bộ dữ liệu đó được chọn ngẫu nhiên.
  • D. Không, trừ khi bạn cũng đã kiểm tra mã nguồn từng dòng.

Câu 18: "Độ phức tạp thời gian" của một thuật toán nói lên điều gì về thuật toán đó?

  • A. Số lượng biến mà thuật toán sử dụng.
  • B. Mức độ khó hiểu của mã nguồn.
  • C. Ước lượng về thời gian thực hiện của thuật toán dựa trên kích thước đầu vào.
  • D. Khả năng phát hiện và sửa lỗi tự động của thuật toán.

Câu 19: "Độ phức tạp không gian" của một thuật toán nói lên điều gì về thuật toán đó?

  • A. Ước lượng về lượng bộ nhớ mà thuật toán cần sử dụng dựa trên kích thước đầu vào.
  • B. Số lượng dòng mã trong chương trình.
  • C. Thời gian cần thiết để chạy thuật toán.
  • D. Số lần lặp tối đa trong thuật toán.

Câu 20: Bạn cần kiểm thử một hàm xác định một năm có phải là năm nhuận hay không. Theo quy tắc (chia hết cho 4, trừ các năm chia hết cho 100 mà không chia hết cho 400), bộ dữ liệu kiểm thử nào dưới đây là cần thiết để bao quát các trường hợp logic quan trọng?

  • A. Chỉ cần các năm chia hết cho 4.
  • B. Chỉ cần các năm không chia hết cho 4.
  • C. Các năm 1900, 2000, 2024.
  • D. Các năm 1900 (không nhuận), 2000 (nhuận), 2023 (không nhuận), 2024 (nhuận).

Câu 21: Một thuật toán được thiết kế để chạy rất nhanh (độ phức tạp thời gian thấp) nhưng lại yêu cầu một lượng bộ nhớ rất lớn (độ phức tạp không gian cao). Thuật toán này có thể gặp vấn đề khi triển khai trên môi trường nào?

  • A. Các thiết bị có bộ nhớ hạn chế (ví dụ: điện thoại thông minh cũ, hệ thống nhúng).
  • B. Máy chủ hiệu năng cao với bộ nhớ dồi dào.
  • C. Máy tính cá nhân thông thường.
  • D. Môi trường phát triển phần mềm.

Câu 22: Trong bối cảnh chứng minh tính đúng đắn của thuật toán, một thuật toán được coi là "đúng" khi nào?

  • A. Khi nó chạy nhanh hơn các thuật toán khác.
  • B. Khi nó tạo ra kết quả đầu ra chính xác theo yêu cầu bài toán cho MỌI đầu vào hợp lệ.
  • C. Khi nó không gây ra lỗi trong quá trình chạy thử.
  • D. Khi mã nguồn của nó ngắn gọn và dễ đọc.

Câu 23: Khi kiểm thử một thuật toán sắp xếp, tại sao việc sử dụng các danh sách đã được sắp xếp và sắp xếp ngược lại thường là các trường hợp kiểm thử quan trọng?

  • A. Vì các trường hợp này dễ tạo dữ liệu kiểm thử.
  • B. Vì các trường hợp này giúp kiểm tra giao diện người dùng.
  • C. Vì đây thường là các trường hợp tốt nhất hoặc xấu nhất (best/worst case) có thể bộc lộ các lỗi logic cụ thể của thuật toán.
  • D. Vì các trường hợp này giúp đo lường độ phức tạp không gian.

Câu 24: Phương pháp nào sau đây cung cấp sự đảm bảo mạnh mẽ nhất về việc một thuật toán sẽ hoạt động chính xác cho tất cả các đầu vào hợp lệ?

  • A. Chứng minh tính đúng đắn bằng lôgic toán học.
  • B. Kiểm thử với một lượng lớn dữ liệu ngẫu nhiên.
  • C. Kiểm thử với các trường hợp biên.
  • D. Chạy thử chương trình trên nhiều máy tính khác nhau.

Câu 25: Một chương trình tính tổng các phần tử trong một mảng số nguyên. Mảng có thể chứa số dương, số âm, và số 0. Để kiểm thử đầy đủ, bạn cần chuẩn bị bộ dữ liệu kiểm thử bao gồm các mảng như thế nào?

  • A. Chỉ cần các mảng chứa toàn số dương.
  • B. Chỉ cần các mảng chứa toàn số âm.
  • C. Chỉ cần một mảng rỗng và một mảng chỉ có một phần tử.
  • D. Các mảng chỉ chứa số dương, chỉ chứa số âm, chứa cả dương/âm/không, mảng rỗng, mảng một phần tử, mảng tất cả phần tử bằng nhau.

Câu 26: Tại sao việc kiểm thử chương trình (thậm chí với rất nhiều bộ dữ liệu) thường không thể mang lại sự chắc chắn tuyệt đối rằng chương trình không còn lỗi?

  • A. Vì kiểm thử làm chậm chương trình.
  • B. Vì không thể kiểm thử với tất cả các trường hợp đầu vào có thể có (phạm vi đầu vào thường là vô hạn hoặc quá lớn).
  • C. Vì kiểm thử chỉ tìm lỗi cú pháp.
  • D. Vì kiểm thử yêu cầu kiến thức chuyên môn rất cao.

Câu 27: Kết quả chính mà chúng ta mong đợi đạt được khi thực hiện kiểm thử chương trình một cách hiệu quả là gì?

  • A. Phát hiện và sửa các lỗi tồn tại, từ đó tăng độ tin cậy của chương trình.
  • B. Chứng minh chương trình chạy đúng cho mọi trường hợp.
  • C. Làm cho chương trình chạy nhanh hơn.
  • D. Giảm chi phí phát triển phần mềm.

Câu 28: Kết quả chính mà chúng ta mong đợi đạt được khi thực hiện chứng minh tính đúng đắn của một thuật toán bằng phương pháp toán học là gì?

  • A. Tìm ra các lỗi trong mã nguồn cụ thể.
  • B. Đo lường thời gian chạy của thuật toán.
  • C. Đánh giá lượng bộ nhớ sử dụng của thuật toán.
  • D. Thiết lập sự chắc chắn về mặt lôgic rằng thuật toán sẽ luôn hoạt động chính xác theo đặc tả.

Câu 29: Một thuật toán sắp xếp cần tạo ra một bản sao tạm thời của toàn bộ dữ liệu đầu vào để thực hiện sắp xếp, dẫn đến yêu cầu bộ nhớ tăng tuyến tính theo kích thước dữ liệu. Thuật toán này có độ phức tạp không gian cao. Điều này có thể trở thành vấn đề nghiêm trọng khi nào?

  • A. Khi cần sắp xếp một lượng dữ liệu rất nhỏ.
  • B. Khi thời gian thực hiện không quan trọng.
  • C. Khi cần xử lý một lượng dữ liệu rất lớn trên một hệ thống có bộ nhớ hạn chế.
  • D. Khi thuật toán chạy rất nhanh.

Câu 30: Khi đánh giá hiệu quả của một thuật toán, đặc biệt là đối với các bài toán xử lý dữ liệu lớn, tiêu chí nào sau đây thường được xem xét là quan trọng hàng đầu?

  • A. Độ phức tạp thời gian.
  • B. Độ phức tạp không gian.
  • C. Tính dễ hiểu của mã nguồn.
  • D. Số lượng biến được sử dụng.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 1: Khi kiểm thử một chương trình tính tổng các số từ 1 đến N, tại sao việc sử dụng các giá trị N = 0, N = 1, và một giá trị N rất lớn lại quan trọng?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 2: Giả sử bạn cần kiểm thử một hàm sắp xếp danh sách các số nguyên. Bộ dữ liệu kiểm thử nào dưới đây có khả năng cao nhất giúp phát hiện lỗi nếu thuật toán xử lý sai các trường hợp đặc biệt?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 3: Điểm khác biệt cơ bản nhất giữa việc kiểm thử chương trình và chứng minh tính đúng đắn của thuật toán bằng lôgic toán học là gì?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 4: Mục đích chính của việc sử dụng một bộ dữ liệu kiểm thử đa dạng khi kiểm thử chương trình là gì?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 5: Tại sao phương pháp quy nạp toán học (mathematical induction) thường được xem là phù hợp để chứng minh tính đúng đắn của các thuật toán có cấu trúc lặp hoặc đệ quy?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 6: Khi kiểm thử một chương trình tính diện tích hình chữ nhật dựa trên chiều dài và chiều rộng nhập vào, bộ dữ liệu kiểm thử nào là cần thiết để đảm bảo chương trình xử lý đúng các đầu vào không hợp lệ?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 7: Một lập trình viên tuyên bố thuật toán tìm kiếm của mình là 'hoàn toàn đúng' vì nó đã vượt qua kiểm thử với hàng triệu bộ dữ liệu ngẫu nhiên. Dựa trên kiến thức về kiểm thử và chứng minh, nhận định này có chính xác không? Tại sao?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 8: Trong ngữ cảnh phát triển phần mềm, 'độ tin cậy' của một chương trình (reliability) chủ yếu liên quan đến điều gì?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 9: So sánh hai thuật toán giải cùng một bài toán, tiêu chí 'độ phức tạp thời gian' (time complexity) cho ta biết điều gì về hiệu quả của chúng?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 10: Một chương trình tìm giá trị lớn nhất trong một danh sách các số nguyên. Để kiểm thử kỹ lưỡng, bạn cần bao gồm các trường hợp nào trong bộ dữ liệu kiểm thử?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 11: Lợi ích quan trọng nhất của việc chứng minh tính đúng đắn của thuật toán bằng phương pháp toán học so với chỉ dựa vào kiểm thử là gì?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 12: Khi đánh giá hiệu quả của một thuật toán, tại sao cần xem xét cả độ phức tạp thời gian và độ phức tạp không gian?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 13: Khái niệm 'bất biến vòng lặp' (loop invariant) được sử dụng trong phương pháp chứng minh tính đúng đắn của thuật toán có ý nghĩa gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 14: Bạn đang kiểm thử một hàm tính giai thừa của một số nguyên không âm N. Trường hợp đầu vào nào sau đây được xem là một 'trường hợp biên' (edge case) quan trọng cần kiểm thử?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 15: Một chương trình xử lý chuỗi văn bản nhập từ người dùng. Tại sao việc đưa vào bộ dữ liệu kiểm thử các chuỗi rỗng, chuỗi rất dài, hoặc chuỗi chứa các ký tự đặc biệt lại quan trọng?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 16: Phân biệt rõ ràng nhất về mục tiêu giữa việc kiểm thử chương trình và đánh giá hiệu quả của thuật toán là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 17: Nếu một chương trình đã chạy đúng với tất cả 100 bộ dữ liệu kiểm thử mà bạn đã chuẩn bị, bạn có thể kết luận chắc chắn 100% rằng chương trình đó hoàn toàn không có lỗi không? Tại sao?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 18: 'Độ phức tạp thời gian' của một thuật toán nói lên điều gì về thuật toán đó?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 19: 'Độ phức tạp không gian' của một thuật toán nói lên điều gì về thuật toán đó?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 20: Bạn cần kiểm thử một hàm xác định một năm có phải là năm nhuận hay không. Theo quy tắc (chia hết cho 4, trừ các năm chia hết cho 100 mà không chia hết cho 400), bộ dữ liệu kiểm thử nào dưới đây là cần thiết để bao quát các trường hợp logic quan trọng?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 21: Một thuật toán được thiết kế để chạy rất nhanh (độ phức tạp thời gian thấp) nhưng lại yêu cầu một lượng bộ nhớ rất lớn (độ phức tạp không gian cao). Thuật toán này có thể gặp vấn đề khi triển khai trên môi trường nào?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 22: Trong bối cảnh chứng minh tính đúng đắn của thuật toán, một thuật toán được coi là 'đúng' khi nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 23: Khi kiểm thử một thuật toán sắp xếp, tại sao việc sử dụng các danh sách đã được sắp xếp và sắp xếp ngược lại thường là các trường hợp kiểm thử quan trọng?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 24: Phương pháp nào sau đây cung cấp sự đảm bảo mạnh mẽ nhất về việc một thuật toán sẽ hoạt động chính xác cho tất cả các đầu vào hợp lệ?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 25: Một chương trình tính tổng các phần tử trong một mảng số nguyên. Mảng có thể chứa số dương, số âm, và số 0. Để kiểm thử đầy đủ, bạn cần chuẩn bị bộ dữ liệu kiểm thử bao gồm các mảng như thế nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 26: Tại sao việc kiểm thử chương trình (thậm chí với rất nhiều bộ dữ liệu) thường không thể mang lại sự chắc chắn tuyệt đối rằng chương trình không còn lỗi?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 27: Kết quả chính mà chúng ta mong đợi đạt được khi thực hiện kiểm thử chương trình một cách hiệu quả là gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 28: Kết quả chính mà chúng ta mong đợi đạt được khi thực hiện chứng minh tính đúng đắn của một thuật toán bằng phương pháp toán học là gì?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 29: Một thuật toán sắp xếp cần tạo ra một bản sao tạm thời của toàn bộ dữ liệu đầu vào để thực hiện sắp xếp, dẫn đến yêu cầu bộ nhớ tăng tuyến tính theo kích thước dữ liệu. Thuật toán này có độ phức tạp không gian cao. Điều này có thể trở thành vấn đề nghiêm trọng khi nào?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình

Tags: Bộ đề 10

Câu 30: Khi đánh giá hiệu quả của một thuật toán, đặc biệt là đối với các bài toán xử lý dữ liệu lớn, tiêu chí nào sau đây thường được xem xét là quan trọng hàng đầu?

Viết một bình luận