JavaScript is required

Trong kỹ thuật phân chia lớp tương đương (equivalence class partitioning), phát biểu nào sau đây là đúng:

A. Kỹ thuật phân chia lớp tương đương phân chia các giá trị của dữ liệu nhập thành các nhóm dữ liệu, mỗi nhóm dữ liệu là một lớp tương đương.
B. Chọn một test-case cho mỗi lớp tương đương.
C. Mỗi test-case là đại diện cho một lớp tương đương.
D. Tất cả các nội dung trên đều đúng.
Trả lời:

Đáp án đúng: D


Kỹ thuật phân chia lớp tương đương là một kỹ thuật kiểm thử hộp đen. Nó chia dữ liệu đầu vào thành các lớp tương đương sao cho các thành viên trong mỗi lớp tương đương được xử lý theo cùng một cách. Do đó, việc chọn một test case từ mỗi lớp tương đương sẽ đại diện cho toàn bộ lớp đó. Vì vậy, tất cả các phát biểu A, B, và C đều đúng.

Câu hỏi liên quan

Lời giải:
Đáp án đúng: C
Bài toán yêu cầu kiểm tra mật khẩu với độ dài từ 6 đến 14 ký tự. Kỹ thuật phân lớp tương đương chia miền giá trị đầu vào thành các lớp tương đương sao cho việc chọn một giá trị trong một lớp sẽ tương đương với việc chọn bất kỳ giá trị nào khác trong cùng lớp. Trong trường hợp này, chúng ta có thể chia thành các lớp sau:

1. Mật khẩu có độ dài nhỏ hơn 6 ký tự (ví dụ: 5 ký tự).
2. Mật khẩu có độ dài nằm trong khoảng từ 6 đến 14 ký tự (ví dụ: 6, 10, 14 ký tự).
3. Mật khẩu có độ dài lớn hơn 14 ký tự (ví dụ: 15 ký tự).

Như vậy, chúng ta cần ít nhất 3 test case để bao phủ các lớp tương đương này.
Câu 15:

Một đầu vào nhận giá trị năm sinh trong đoạn [1000, 2000]. Các giá trị biên để kiểm thử là:

Lời giải:
Đáp án đúng: B

Câu hỏi này kiểm tra kiến thức về kiểm thử biên (boundary value testing). Kiểm thử biên là một kỹ thuật kiểm thử hộp đen, trong đó các trường hợp kiểm thử được thiết kế để bao gồm các giá trị ở biên của miền giá trị đầu vào. Trong trường hợp này, miền giá trị đầu vào là [1000, 2000]. Các giá trị biên sẽ là 1000 và 2000, cùng với các giá trị lân cận của chúng.

Phương án A không đúng vì chỉ bao gồm 1000 và 1999, thiếu giá trị 2000 và các giá trị gần biên hơn.

Phương án B là đáp án đúng vì nó bao gồm cả hai giá trị biên 1000 và 2000.

Phương án C không đúng vì chứa các giá trị nằm ngoài phạm vi [1000, 2000].

Phương án D không đúng vì chứa các giá trị nằm ngoài phạm vi [1000, 2000] và thừa giá trị.

Câu 16:

Phát biểu nào sau đây không đúng về kiểm thử hệ thống:

Lời giải:
Đáp án đúng: C

Kiểm thử hệ thống là giai đoạn kiểm tra toàn bộ hệ thống sau khi đã tích hợp tất cả các thành phần. Mục tiêu là đảm bảo hệ thống đáp ứng các yêu cầu chức năng và phi chức năng đã được xác định. Việc phát hiện lỗi ở giai đoạn này cho thấy các lỗi thiết kế hoặc tích hợp nghiêm trọng và do đó tốn kém để sửa chữa, người dùng cuối nên tham gia vào kiểm thử hệ thống (ví dụ: kiểm thử chấp nhận người dùng - UAT), và việc kiểm thử thường được thực hiện bởi các nhóm độc lập để đảm bảo tính khách quan. Kiểm thử chức năng thường được sử dụng nhiều hơn kiểm thử cấu trúc trong kiểm thử hệ thống, vì mục tiêu chính là xác minh chức năng và hiệu suất của toàn bộ hệ thống từ quan điểm của người dùng cuối. Vậy nên đáp án không đúng phải là B.

Câu 17:

Cho đoạn mã giả sau, số ca kiểm thử tối thiểu cần có để phủ tất cả các cung?

int kiemTra (int k) {

if (k <= 1)

return -1;

for (int i = 2; i < k; i++)

if (k % i == 0)

return -1;

return 1;

}

</></=>

Lời giải:
Đáp án đúng: B
Để phủ tất cả các cung (branch coverage) của đoạn mã, chúng ta cần các trường hợp kiểm thử đi qua tất cả các nhánh có thể có của các câu lệnh điều kiện. Trong đoạn mã này, có hai câu lệnh điều kiện chính:

1. `if (k <= 1)`: Điều này tạo ra hai nhánh: `k <= 1` (true) và `k > 1` (false).
2. `if (k % i == 0)` (trong vòng lặp for): Điều này tạo ra hai nhánh: `k % i == 0` (true) và `k % i != 0` (false).

Để phủ tất cả các nhánh, chúng ta cần ít nhất các trường hợp sau:

* Trường hợp 1: `k <= 1`. Ví dụ, `k = 1`. Nhánh này sẽ trả về -1.
* Trường hợp 2: `k > 1` và vòng lặp `for` không tìm thấy ước số nào của `k` ngoài 1 và chính nó (k là số nguyên tố). Ví dụ, `k = 5`. Nhánh này sẽ trả về 1.
* Trường hợp 3: `k > 1` và vòng lặp `for` tìm thấy một ước số của `k`. Ví dụ, `k = 4`. Nhánh này sẽ trả về -1.

Vậy cần tối thiểu 3 ca kiểm thử để phủ hết các cung.
Câu 18:

Trong quá trình phát triển phần mềm, quá trình kiểm thử có thể bắt đầu vào thời điểm nào?

Lời giải:
Đáp án đúng: B
Quá trình kiểm thử phần mềm nên bắt đầu sớm nhất có thể trong vòng đời phát triển phần mềm (SDLC). Trong các phương án trên, phương án "Khi các yêu cầu phần mềm đã được phê duyệt" là thời điểm sớm nhất và thích hợp nhất để bắt đầu các hoạt động kiểm thử. Việc kiểm thử sớm giúp phát hiện và sửa lỗi ngay từ đầu, giảm chi phí và thời gian sửa lỗi sau này. Kiểm thử có thể bắt đầu bằng việc xem xét các yêu cầu để đảm bảo tính đầy đủ, rõ ràng và nhất quán.
Câu 19:

Một hộp thoại trong chương trình chỉ cho phép nhận các giá trị ký tự và chữ số. Giá trị nào sau đây thuộc lớp tương đươ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 20:

Độ phức tạp Cyclomatic được biểu thị bằ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 21:

Lỗi phần mềm trong quá trình viết mã được gọi 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 22:

Trình tự thực hiện bình thường của các hoạt động trong kiểm thử phần mềm truyền thống gồm: a. Integration testing; b. System testing; c. Unit testing; d. Acceptance testing. Hãy chọn thứ tự đú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 23:

Lỗi nào sau đây không nên được kiểm tra khi xử lý lỗi được đánh giá?

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