Как проводить тестирование проверок формата и логики и какие тест кейсы писать
Что проверяют
Владеете ли вы техниками тест-дизайна, а не перебором случайных значений. Проверки формата и логики хорошо показывают, умеет ли кандидат разбить ввод на классы и найти границы. Следом часто дают конкретное поле, например дату рождения или телефон, и просят набросать кейсы вслух.
Как отвечать
Разделите два вида проверок. Формат отвечает на вопрос «похоже ли значение на телефон», логика на вопрос «допустимо ли оно по правилам бизнеса». Под каждый вид своя техника:
- классы эквивалентности: для email это валидные адреса, адреса без
@, без домена, с пробелами, пустое поле. Из каждого класса достаточно одного-двух представителей; - граничные значения: для длины от 2 до 50 символов проверяете 1, 2, 50 и 51, а для возраста от 18 лет дату рождения ровно 18 лет назад, на день раньше и на день позже;
- таблица решений: для логики с несколькими условиями, например когда скидка зависит от статуса клиента и суммы заказа. Каждая колонка таблицы становится кейсом;
- попарное тестирование: когда комбинаций слишком много, PICT или похожий генератор сокращает их без потери покрытия пар;
- перекрёстные поля: дата окончания не раньше даты начала, поле становится обязательным при выборе определённой опции.
Отдельно проверяйте обработку: обрезаются ли пробелы по краям, регистр, ведущие нули, кириллица, эмодзи, 29 февраля. И поведение при ошибке: понятный текст, подсвеченное поле, введённые данные не стираются.
Кейс оформляется с предусловием, шагами, данными и ожидаемым результатом, где прямо сказано, какое сообщение появится.
Где спотыкаются
Проверяют только через интерфейс. Валидация на фронтенде обходится прямым запросом, и сервер обязан отклонить те же данные, поэтому кейсы на API для тех же классов обязательны.
Пишут двадцать негативных кейсов из одного класса эквивалентности и пропускают границы. Объём растёт, покрытие нет.
Сверяют формат с RFC или с регуляркой из интернета вместо требований. Если продукт по договорённости не принимает адреса с плюсом, тестировать нужно это правило, а спор с RFC вынести на обсуждение с аналитиком.