JavaScript is required

Cho đoạn code sau đây, hãy chọn đáp án đúng nhất:float foo(int a, int b, int c, int d){float e;if (a==0) return 0;int x = 0;if ((a==b) || (c==d)) x = 1;e = 1/x;return e;}Chúng ta cần bao nhiêu testcase để đảm bảo phủ cấp 3.

A. 1
B. 2
C. 3
D. 4
Trả lời:

Đáp án đúng: C


Đề bài yêu cầu số lượng test case để đảm bảo phủ cấp 3 (còn gọi là branch coverage). Đoạn code có các nhánh sau: 1. `if (a == 0)`: Cần 2 test case (true/false) 2. `if ((a == b) || (c == d))`: Cần các test case để phủ các trường hợp sau: - a == b là true - a == b là false và c == d là true - a == b là false và c == d là false Tuy nhiên, nếu x = 0, chương trình sẽ bị lỗi chia cho 0 (`e = 1/x`). Vì vậy, chúng ta cần thêm một test case để đảm bảo x != 0. Vậy ta cần các test case sau: 1. a = 0 (để phủ nhánh `if (a==0)` là true) 2. a != 0, a = b (để phủ nhánh `(a==b) || (c==d)` là true và `a==b` là true) 3. a != 0, a != b, c = d (để phủ nhánh `(a==b) || (c==d)` là true và `a==b` là false, `c==d` là true) 4. a != 0, a != b, c != d (để phủ nhánh `(a==b) || (c==d)` là false) Như vậy cần tối thiểu 4 test case để phủ hết các nhánh.

Câu hỏi liên quan

Lời giải:
Đáp án đúng: C
Độ phức tạp Cyclomatic (Cyclomatic Complexity) có thể được tính bằng công thức V(G) = E - N + 2, trong đó E là số cạnh của đồ thị và N là số nút của đồ thị.

Trong đồ thị đã cho:
- Số cạnh (E) = 9
- Số nút (N) = 8

Áp dụng công thức: V(G) = 9 - 8 + 2 = 3

Vậy độ phức tạp Cyclomatic của đồ thị là 3.
Câu 17:

Công thức tính độ phức tạp cyclomatic M của một đoạn mã lệnh:

Lời giải:
Đáp án đúng: A
Độ phức tạp Cyclomatic (Cyclomatic Complexity) là một thước đo độ phức tạp của một chương trình. Nó được tính bằng công thức M = E - N + 2P, trong đó:

* M là độ phức tạp Cyclomatic
* E là số cạnh (edges) trong đồ thị luồng điều khiển.
* N là số nút (nodes) trong đồ thị luồng điều khiển.
* P là số thành phần liên thông (connected components). Trong hầu hết các trường hợp, P = 1 (một chương trình/hàm). Nếu đoạn code có nhiều điểm bắt đầu/kết thúc riêng biệt, thì P > 1.

Do đó, đáp án A là đáp án đúng.
Câu 18:

Cho sơ đồ sau. Xác định chuỗi trạng thái đúng cho biến e

 Cho sơ đồ sau. Xác định chuỗi trạng thái đúng cho biến eA. ~ddukB. ~dukC. ddukD. Tất cả đều sai (ảnh 1)

Lời giải:
Đáp án đúng: A
Để xác định chuỗi trạng thái đúng cho biến e, ta cần theo dõi sơ đồ trạng thái đã cho.

- Ban đầu, e ở trạng thái 'd' (từ trạng thái ban đầu).
- Khi có đầu vào 'u', e chuyển sang trạng thái 'u'.
- Khi có đầu vào 'k', e chuyển sang trạng thái 'k'.

Vậy chuỗi trạng thái của e là: dduk.

Do đó, đáp án đúng là C. dduk
Câu 19:

Trong kiểm thử dòng dữ liệu tĩnh, người kiểm thử phải chạy mã nguồn để xác định các sai sót có thể xảy ra.

Lời giải:
Đáp án đúng: B
Kiểm thử dòng dữ liệu tĩnh là một kỹ thuật phân tích mã nguồn mà không cần thực thi chương trình. Nó tập trung vào việc theo dõi luồng dữ liệu qua mã để phát hiện các vấn đề như biến chưa được khởi tạo, sử dụng biến trước khi gán giá trị, hoặc các đường dẫn dữ liệu không hợp lệ. Do đó, việc chạy mã nguồn là không cần thiết trong kiểm thử dòng dữ liệu tĩnh.
Câu 20:

Trong kiểm thử dòng dữ liệu tĩnh, người kiểm thử không cần chạy mã nguồn để xác định các sai sót có thể xảy ra.

Lời giải:
Đáp án đúng: A
Trong kiểm thử dòng dữ liệu tĩnh, người kiểm thử phân tích mã nguồn mà không cần thực thi nó. Mục tiêu là để tìm ra các vấn đề tiềm ẩn như biến chưa khởi tạo, sử dụng biến trước khi định nghĩa, hoặc các đường dẫn dữ liệu bất thường. Vì vậy, khẳng định rằng người kiểm thử không cần chạy mã nguồn là đúng.
Câu 21:

Kiểm thử hộp đen là chiến lược kiểm thử yêu cầu người kiểm thử phải hiểu rõ mã nguồn của phần mềm.

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Câu 22:

Một textbox chỉ nhận giá trị ký tự từ [A-Z], [0-9]. Chỉ ra một giá trị thuộc lớp tương đương không hợp lệ:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Câu 23:

Trong kỹ thuật phân tích giá trị biên, nội dung nào sau đây là đúng:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Câu 24:

Bài toán: Nhập mật khẩu có thể chứa bất kỳ ký tự nào, với điều kiện chiều dài mật khẩu ít nhất là 6 ký tự và nhiều nhất là 14 ký tự. Chúng ta cần chọn bao nhiêu bộ test case cho bài toán trên dựa theo kỹ thuật phân tích giá trị biên?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Câu 25:

Kiểm thử hộp trắng được áp dụng chủ yếu vào giai đoạn nào của kiểm thử phần mềm?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP