Модуль 4 · Урок 14

Test cases, data і trustworthy oracles

Test design відповідає на «як тестувати». Хороший case не залежить від пам’яті автора: він містить traceable purpose, observable preconditions, контрольовані дані, дії та перевірний expected result.

PreconditionsTest dataExpected resultOracle

Мінімальна анатомія test case

ПолеНавіщо
ID і conditionTraceability та impact analysis.
Title і priorityОднозначна мета та порядок виконання.
PreconditionsСпостережуваний стан до першої дії.
Data і stepsКонтрольований input та відтворювана взаємодія.
Expected result / oracleКритерій рішення, а не «працює правильно».

Рівень деталізації залежить від ризику, стабільності продукту й досвіду виконавця. Critical або рідкісний сценарій потребує більше конкретики, ніж знайомий low-risk check.

Oracle має бути незалежним

Oracle походить з approved rule, contract, model, calculation, trusted reference system або властивості, яку можна перевірити. Якщо expected result просто повторює поточний UI чи ту саму функцію, що тестується, помилка може підтвердити сама себе.

ActionAuthorize sandbox payment and confirm.
ExpectedOne confirmed booking, one reservation, one audit event.
ObserveAPI + state store + ledger + audit, а не лише toast.

Test data — окремий керований артефакт

Використовуйте synthetic або masked data, мінімально потрібні атрибути, явну classification, owner, reset і retention. Test має бути незалежним: після cleanup наступний запуск не повинен успадковувати booking, balance або clock попереднього.

Production data не є зручним shortcut

Не копіюйте реальні ПІБ, email, токени чи платіжні реквізити в кейси, скриншоти й ZIP. Для курсу достатньо синтетичних fixtures.

Практика

  1. Заповніть `test-cases.csv` для трьох conditions.
  2. Опишіть observable preconditions і cleanup.
  3. Винесіть fixtures у `test-data-catalog.csv`.
  4. Замініть vague outcomes на точні state та forbidden side effects.
  5. Проведіть peer review: чи інша людина отримає те саме рішення.

Офіційне джерело

Практична перевірка · урок 14 з 32

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Який набір полів робить test case відтворюваним?
2. Яка precondition є сильною?
3. Що таке test oracle?