Техника · Cause-Effect Graphing

Граф причин
и следствий

Cause-Effect Graphing — формальная техника: ты строишь граф связей между входными условиями (причинами) и ожидаемыми результатами (следствиями), а затем преобразуешь его в таблицу решений.

Сценарий — Форма входа

Система проверяет три условия при входе пользователя: существует ли логин, верен ли пароль, не заблокирован ли аккаунт. Из комбинаций этих причин вытекают четыре возможных следствия.

Граф причин и следствий
C1: Логин существует C2: Пароль верен C3: Аккаунт не заблокирован C1 C2 C3 AND NOT E1 E2 E3 E4 Вход выполнен Логин не найден Неверный пароль Аккаунт заблокирован AND / NOT = логические операторы
Таблица решений — получена из графа
Условие / Правило R1R2R3R4R5
C1: Логин существует YYYNN
C2: Пароль верен YYN
C3: Аккаунт не заблокирован YN
E1: Вход выполнен
E2: Логин не найден
E3: Неверный пароль
E4: Аккаунт заблокирован
Вопрос 01
Почему в правилах R2–R5 стоит «—» (прочерк) для некоторых условий?
Это пропуск — тестировщик ещё не заполнил таблицу
«Don't care» — значение этого условия не влияет на следствие при данной комбинации
«—» означает, что нужно протестировать оба значения Y и N
Вопрос 02
Чем Cause-Effect Graphing отличается от обычной Decision Table?
Граф всегда создаёт больше тест-кейсов
Граф явно показывает логические связи между условиями, выявляет невозможные комбинации до построения таблицы
Граф используется только для простых форм с 1–2 условиями
Вопрос 03
Сколько тест-кейсов нужно для полного покрытия таблицы выше?
8 — все бинарные комбинации трёх условий
5 — по количеству правил в таблице, полученной из графа
1 — достаточно одного happy path
Что запомнить
  • Cause-Effect Graphing = граф причин → логические операторы → следствия → таблица решений. Таблица — это продукт графа, а не отдельная техника.
  • Ключевая ценность графа — выявление невозможных комбинаций (constraints): «C2 можно проверять только если C1=Y».
  • Логические узлы: AND (все причины = Y), OR (хотя бы одна = Y), NOT (инверсия причины).
  • «Don't care» (—) в таблице сокращает число тест-кейсов по сравнению с полным исчерпывающим тестированием — это не пробел, а обоснованное сокращение.