Ответ
В своей работе я активно применяю классические техники тест-дизайна для создания эффективных и полных тестовых наборов. Вот основные из них с примерами из моего опыта:
-
Эквивалентное разделение (Equivalence Partitioning): Разделение входных данных на группы (классы), где поведение системы ожидается одинаковым. Тестируем по одному значению из каждого класса.
- Пример (поле "Возраст участника"):
- Валидный класс:
[18, 99](например, значение25). - Невалидные классы:
<18(например,17),>99(например,100),не число(например,"abc").
- Валидный класс:
- Пример (поле "Возраст участника"):
-
Анализ граничных значений (Boundary Value Analysis): Тестирование на границах классов эквивалентности и за их пределами. Большинство ошибок возникает именно на границах.
- Пример для того же поля
[18, 99]:- Граничные и вне границ:
17,18,19,98,99,100.
- Граничные и вне границ:
- Пример для того же поля
-
Таблица принятия решений (Decision Table): Отличный инструмент для тестирования бизнес-логики, зависящей от комбинации условий.
-
Пример: Правило предоставления скидки. VIP-клиент? Сумма заказа > 5000? Ожидаемая скидка Да Да 20% Да Нет 10% Нет Да 10% Нет Нет 0% На основе этой таблицы пишутся 4 тестовых случая.
-
-
Попарное тестирование (Pairwise Testing): Метод для сокращения количества тестовых комбинаций. Гарантирует, что каждая пара значений всех параметров будет покрыта хотя бы одним тестом.
- Пример: Тестирование формы с параметрами: Браузер (Chrome, Firefox, Safari), ОС (Windows, macOS), Язык (EN, RU). Полный перебор даст 322=12 комбинаций. Алгоритм попарного тестирования (например, с помощью инструмента
pict) может сократить это до 6-8 тестов, покрывающих все пары.
- Пример: Тестирование формы с параметрами: Браузер (Chrome, Firefox, Safari), ОС (Windows, macOS), Язык (EN, RU). Полный перебор даст 322=12 комбинаций. Алгоритм попарного тестирования (например, с помощью инструмента
-
Предугадывание ошибок (Error Guessing): Основано на опыте тестировщика и знании типичных "узких мест" в приложениях.
- Примеры сценариев:
- Отправка формы без обязательных полей.
- Ввод SQL-инъекции (
' OR '1'='1) в текстовые поля. - Передача
nullили пустой строки в обязательные параметры API. - Одновременная отправка двух одинаковых запросов (проверка на идемпотентность).
- Примеры сценариев:
-
Диаграмма состояний и переходов (State Transition Testing): Используется для систем, поведение которых зависит от состояния.
- Пример: Жизненный цикл заказа в интернет-магазине. Тестируются валидные переходы ("Создан" → "Оплачен" → "Отправлен") и невалидные (попытка перевести заказ из "Отменен" обратно в "Оплачен").
Я комбинирую эти техники в зависимости от тестируемого объекта, чтобы достичь оптимального баланса между покрытием и усилиями на тестирование.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶