Какие знаешь техники тестирования дизайна
Техники тестирования дизайна — это, по сути, техники тест-дизайна, то есть методы проектирования тестовых сценариев для эффективного покрытия функциональности продукта. Вопрос часто формулируют как «техники тестирования дизайна», но корректнее говорить о техниках тест-дизайна, которые помогают определить, какие тесты писать, как их комбинировать и как минимизировать количество тестов при максимальном покрытии рисков. Эти техники делятся на две большие группы: статические (анализ требований и документации без выполнения кода) и динамические (основаны на выполнении тестов). На собеседовании важно показать понимание основных техник и умение применять их на практике.
Основные техники тест-дизайна
1. Классы эквивалентности (Equivalence Partitioning)
Суть: входные данные разбиваются на классы, для которых поведение системы предполагается одинаковым. Достаточно протестировать одно значение из каждого класса, чтобы покрыть все варианты.
Пример: поле «Возраст» принимает значения от 0 до 120. Классы: валидные (0–120), невалидные отрицательные (<0), невалидные больше 120 (>120). Тестируем по одному значению из каждого класса: -1, 0, 50, 121.
2. Граничные значения (Boundary Value Analysis)
Суть: ошибки чаще всего возникают на границах допустимых диапазонов. Тестируются значения на границах и сразу за ними.
Пример: для диапазона 0–120 проверяем: -1, 0, 1, 119, 120, 121. Это дополняет классы эквивалентности.
3. Таблица решений (Decision Table)
Суть: для комбинаций условий (входных данных) определяются ожидаемые действия. Таблица помогает систематизировать проверку бизнес-логики.
Пример: для логина: условие «логин верный» и «пароль верный» — результат «вход разрешен»; если одно из условий ложно — «вход запрещен». Таблица с условиями и действиями.
4. Попарное тестирование (Pairwise Testing)
Суть: комбинаторика приводит к огромному числу вариантов. Попарное тестирование сокращает набор до комбинаций всех пар значений параметров, так как большинство дефектов вызывается взаимодействием двух параметров.
Пример: три параметра (браузер: Chrome, Firefox; ОС: Windows, Linux; разрешение: 1920x1080, 1366x768). Полный перебор — 8 комбинаций, попарное — 4.
5. Переходы состояний (State Transition)
Суть: система рассматривается как конечный автомат. Тестируются переходы между состояниями, включая недопустимые.
Пример: заказ может быть в состояниях «новый», «оплачен», «отправлен», «доставлен». Проверяем переходы: из «нового» в «оплачен» — допустим, из «оплачен» в «новый» — нет.
6. Сценарии использования (Use Case Testing)
Суть: тесты строятся на основе реальных пользовательских сценариев, описанных в требованиях. Проверяется, что система выполняет ожидаемые действия в типичных ситуациях.
Пример: сценарий «пользователь покупает товар»: выбор товара, добавление в корзину, оформление заказа, оплата, получение подтверждения.
Как применять техники на практике
Выбор техники зависит от типа системы и доступной документации:
- Если есть требования с четкими диапазонами — используйте классы эквивалентности и граничные значения.
- Если логика зависит от комбинаций условий — таблицы решений.
- Если много параметров конфигурации — попарное тестирование.
- Если система имеет явные состояния — переходы состояний.
- Если есть пользовательские сценарии — сценарии использования.
Комбинируйте техники: например, сначала определите классы эквивалентности, затем для граничных значений примените анализ границ, а для сложных бизнес-правил — таблицу решений.
Подводные камни и частые ошибки
- Путаница между «тестированием дизайна» (проверка внешнего вида) и «тест-дизайном» (проектирование тестов). На собеседовании уточните, что имеется в виду.
- Недооценка статических техник: анализ требований и документации часто выявляет больше дефектов, чем динамическое тестирование.
- Применение только одной техники: это снижает покрытие. Лучше комбинировать.
- Игнорирование приоритизации: не все тесты одинаково важны, используйте риск-ориентированный подход.
Коротко
- Техники тест-дизайна помогают систематизировать создание тестов и повысить покрытие без избыточности.
- Основные техники: классы эквивалентности, граничные значения, таблицы решений, попарное тестирование, переходы состояний, сценарии использования.
- Выбор техники зависит от типа системы и доступной информации.
- Комбинируйте техники и не забывайте о статическом анализе требований.
