История вопроса:
Ручное тестирование изначально базировалось на привычке тестировать только те сценарии, которые соответствуют требованиям и ожидаемому поведению системы (так называемые "позитивные сценарии"). Со временем стало ясно, что ПО часто выходит из строя именно при неожиданных или ошибочных условиях, на которые не рассчитывали.
Проблема:
Только позитивные сценарии не гарантирую устойчивость и надежность приложения. Если не тестировать негативные сценарии (например, неверный ввод, недопустимые действия), можно упустить серьезные дефекты, которые проявятся у реальных пользователей.
Решение:
Проводить оба вида тестирования:
Ключевые особенности:
Можно ли пренебречь негативным тестированием, если продукт проходит полный набор позитивных сценариев?
Нет. Ошибки, возникающие на негативных сценариях, часто оказывают критическое влияние на безопасность и надежность продукта.
Обязательно ли негативные тесты должны приводить к ошибкам программы?
Нет, хорошо реализованная программа на негативных сценариях должна корректно обрабатывать ошибочные данные, не "падать" и не выдавать некорректный результат.
Одинаково ли важно писать позитивные и негативные тесты для всех частей системы?
Нет, иногда для неключевых или устоявшихся частей систем можно сократить объем негативных сценариев, но для уязвимых и критических мест — это необходимость.
В компании при тестировании формы регистрации на сайте проверяли только корректные значения (допустимый email, пароли и т. д.), не учитывая ошибочные варианты.
Плюсы:
Минусы:
Тестировщик добавил тесты на ввод недопустимого email, слишком коротких и длинных паролей и специальных символов во все поля.
Плюсы:
Минусы: