Тест-дизайн — это не «придумывание рандомных тестов», а научный подход к выбору минимального количества тестов, которые найдут максимум багов. Это математика и логика, а не творчество.
Вот полная картина для QA:
---
1. Зачем это нужно?
— Невозможно проверить все значения (например, поле «возраст» от 0 до 150 — это 151 вариант, а если 3 поля — уже миллионы).
— Тест-дизайн сокращает количество тестов в 10–100 раз, сохраняя покрытие критичных сценариев.
---
2. Базовые техники (обязательный минимум)
Классы эквивалентности (Equivalence Partitioning)
— Делим входные данные на группы (классы), где поведение системы одинаково.
— Пример: поле «возраст» (0–120). Классы:
· Валидный: 1–120 (берём 1 тест, например 30).
· Невалидные: отрицательные (‑5), 0, >120 (150), буквы («abc»).
— Итог: 4 теста вместо 121.
Анализ граничных значений (Boundary Value Analysis)
— Баги чаще всего живут на границах (ошибка <= вместо <).
— Пример: возраст 1–120. Границы:
· Минус‑1, 0, 1, 2 (внутренняя граница), 119, 120, 121, 122.
— Важно: проверяем как саму границу, так и соседние значения.
Попарное тестирование (Pairwise Testing)
— Когда много комбинаций параметров (например, Браузер + ОС + Разрешение).
— Основано на теории: большинство багов вызваны взаимодействием всего двух параметров.
— Пример: 3 браузера × 2 ОС × 3 разрешения = 18 комбинаций. Pairwise сжимает до 6–8 тестов, сохраняя все пары значений.
Таблицы принятия решений (Decision Tables)
— Для проверки бизнес-логики с несколькими условиями (например, расчёт скидки).
— Рисуете таблицу: все комбинации «Если А=Да, Б=Нет → Результат X».
— Помогает найти пропущенные правила в требованиях.
Тестирование состояний и переходов (State-Transition)
— Для систем с разными статусами (заказ: Новый → В работе → Доставлен → Отменён).
— Проверяете все разрешённые и запрещённые переходы (нельзя из «Доставлен» вернуть в «Новый»).
---
3. Продвинутые техники (для Middle+)
· Use Case Testing — сценарии от начала до конца по реальным действиям пользователя.
· Error Guessing — «чуйка» баг-хантера (места, где чаще всего ошибаются: кэш, таймауты, кодировки).
· Domain Analysis — комбинация EP + BVA для сложных зависимостей.
---
4. Как это выглядит на практике
1. Вы получаете задачу (например, «фильтр товаров по цене»).
2. Применяете техники → получаете компактный чек-лист:
· Цена от 0 до 1 000 000 (границы: 0, 1, 999999, 1000000, 1000001).
· Пустое поле, отрицательная, дробная, буквы.
· Комбинации: цена + бренд + скидка (Pairwise).
3. Отдаёте чек-лист разработчику до начала кодинга — он сразу видит, о чём не подумал.
---
5. Главные ошибки новичков
· Тестировать «средние» значения (30 лет) — багов там почти нет.
· Проверять все комбинации вручную — выгорание гарантировано.
· Прыгать в тесты без техник — пропускаете критические границы.
---
6. Бонус: память-шпаргалка
Запомните аббревиатуру BECPT:
· Boundary (границы)
· Equivalence (классы)
· Combinations (Pairwise)
· Path (состояния)
· Table (Decision Tables)
Просмотры: 48