Given the following code, which is true: IF A > B THEN C = A - B ELSE C = A + B ENDIF Read D IF C = D Then Print "Error" ENIF
5 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "2 tests for statement coverage, 2 for branch coverage". Đoạn mã có hai lệnh IF. Lệnh thứ nhất: nếu A lớn hơn B thì gán C = A - B, ngược lại gán C = A + B. Sau đó đọc D, lệnh thứ hai: nếu C bằng D thì in Error. Độ phủ câu lệnh (statement coverage) cần mọi lệnh chạy ít nhất một lần. Ca thứ nhất cho A lớn hơn B và chọn D bằng C, chạy lệnh trừ cùng lệnh in. Ca thứ hai cho A không lớn hơn B, chạy lệnh cộng. Không ca nào chạy được cả lệnh trừ lẫn lệnh cộng, nên cần đúng 2 ca. Độ phủ nhánh (branch coverage) cần mỗi quyết định đi cả nhánh đúng lẫn sai: ca thứ nhất cho đúng ở cả hai IF, ca thứ hai cho sai ở cả hai IF nếu chọn D khác C, nên 2 ca đủ phủ bốn nhánh. "1 test for statement coverage, 3 for branch coverage" sai vì một ca không thể chạy cả hai nhánh gán của IF đầu, và nhánh chỉ cần 2 ca. "2 tests for statement coverage. 3 for branch coverage" sai ở số ca nhánh. "3 tests for statement coverage, 3 for branch coverage" và "3 tests for statement coverage, 2 for branch coverage" sai vì câu lệnh chỉ cần 2 ca.
Cùng phần 4
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây