Разделение входных данных на эквивалентные классы, в пределах которых поведение системы одинаково.
✅ Пример: поле «возраст» принимает от 18 до 60 → классы: <18, 18–60, >60.
Проверка значений на границах диапазонов (минимум, максимум, чуть меньше и чуть больше).
✅ Пример: диапазон 1–10 → тестируем: 0, 1, 2 и 9, 10, 11.
Проверка корректности переходов между различными состояниями системы в ответ на события.
✅ Пример: пользователь → неавторизован → вводит логин/пароль → авторизован.
Используется при множестве комбинаций входных условий.
✅ Пример: доступ к функции зависит от возраста, подписки и роли → таблица условий и ожидаемых действий.
Основано на опыте тестировщика: предположение, где могут быть ошибки, и создание тестов на эти места.
✅ Пример: поле email — попробовать ввести адрес без "@".
Оптимизация количества тестов за счёт покрытия всех возможных пар входных параметров.
✅ Пример: 3 поля по 3 варианта каждое → не 27 тестов, а только 9–10 с попарным покрытием.
Создание тестов на основе реального использования приложения пользователем.
✅ Пример: сценарий покупки в интернет-магазине от выбора товара до оплаты.
Тестировщик исследует систему без заранее написанных сценариев, полагаясь на интуицию и опыт.
✅ Полезно на ранних этапах или при отсутствии документации.
Тестирование по заранее составленному списку проверок, без формальных тест-кейсов.
✅ Быстро и эффективно при частых регрессиях.
Неформальное, случайное тестирование без документации — часто используется в условиях ограниченного времени.
✅ Требует высокого уровня внимательности и интуиции.