Kiểm thử phần mềm

Tìm cặp ca cho từng điều kiện trong biểu thức logic

Thay đúng một điều kiện để quan sát ảnh hưởng độc lập lên quyết định.

Thực hànhThực hành4 phút đọcPython

Thích và đánh giá Bình luận và hỏi đáp
Bốn đầu vào khác nhau. Đoản mạch cần kiểm tra cách ghi nhận đánh giá.
Bốn đầu vào khác nhau. Đoản mạch cần kiểm tra cách ghi nhận đánh giá. Mở hình lớn ↗

1. Đề bài

Hệ thống cho nộp bài khi có tài khoản và thỏa ít nhất một trong hai điều kiện đã đăng ký lớp hoặc có mã mời. Gọi ba điều kiện là A, B, C. Tìm các cặp ca để mỗi điều kiện có một lần tự làm đổi kết quả của A và (B hoặc C).

2. Chọn bộ ca nhỏ

Bắt đầu từ 110. Đổi A tạo 010 và làm kết quả đổi. Đổi B ở 110 tạo 100 và cũng làm kết quả đổi. Để chứng minh vai trò của C, dùng 100 và 101. Ba cặp dùng tổng cộng bốn bộ dữ liệu khác nhau.

3. Đối chiếu lời giải

Mẫu kiểm tra rằng trong mỗi cặp chỉ thay một vị trí và quyết định đổi giá trị. Đây là bài tập về ảnh hưởng độc lập theo giá trị logic. Với chương trình dùng đoản mạch, cách công cụ ghi nhận điều kiện được đánh giá cần kiểm tra riêng.

Chạy ví dụ bằng python hoc_test_cap_ca_mcdc.py.

Môi trường thực hành. Python 3.10 trở lên. Ví dụ dùng thư viện chuẩn Python.

Python · hoc_test_cap_ca_mcdc.pyTải mã nguồn
def quyet_dinh(bo):
    a, b, c = bo
    return a and (b or c)

cap = [
    ((1, 1, 0), (0, 1, 0)),
    ((1, 1, 0), (1, 0, 0)),
    ((1, 0, 0), (1, 0, 1)),
]
for i, (x, y) in enumerate(cap):
    assert [j for j in range(3) if x[j] != y[j]] == [i]
    assert quyet_dinh(x) != quyet_dinh(y)
print("Ba điều kiện có cặp ca kiểm tra ảnh hưởng độc lập.")

4. Bài tập mở rộng

Đổi biểu thức thành A và B và C. Chọn một ca đúng và ba ca sai, mỗi ca sai đúng một điều kiện. Sau đó giải thích vì sao một ca có hai điều kiện sai khó chỉ ra ảnh hưởng riêng của từng điều kiện.