Автоматизация негативных сценариев — неотъемлемая часть полноценной системы тестирования. Это проверки, при которых валидируется устойчивость системы к ошибочным действиям, некорректным данным, отказам сервисов и иным нештатным ситуациям.
История вопроса:
Ранее основное внимание уделялось позитивным сценариям (happy paths), потому что их проще автоматизировать и поддерживать. Однако требования к качеству выросли, и всё больше багов возникает именно на границах, с ошибочными или неочевидно некорректными условиями. Их ручное тестирование быстро устаревает, а автоматизация позволяет отслеживать деградации.
Проблема:
Решение:
Ключевые особенности:
Достаточно ли проверить только какие ошибки возвращаются при негативном тестировании?
Нет. Важно проверить не только содержание ошибки, но и что после ошибки не произошло изменения состояния системы (например, не добавилась некорректная запись в БД).
Нужно ли автоматизировать все возможные негативные сценарии?
Нет. Их может быть бесконечно много; нужно выделять наиболее вероятные и критичные (Boundary Value, Null/Empty, неверный тип, SQL-инъекции и т.п.), а остальные — по мере поступления багов.
Можно ли использовать одинаковую обработку для всех негативных кейсов?
Нет. Разные негативные сценарии требуют разных проверок, обработки исключений и rollback'ов, шаблонных asserts недостаточно.
В системе тестируют только валидные сценарии регистрации. Регистрация с пустым email не проверяется автоматизировано. В итоге, появление проблемы, что можно зарегистрировать пользователя с пустой почтой, замечается только на бою.
Плюсы:
Минусы:
Для каждого негативного сценария (отсутствие email, некорректный формат, sql-инъекция) есть автоматизированный тест, который явно проверяет отсутствие нового аккаунта и содержание сообщения об ошибке.
Плюсы:
Минусы: