В целом, отрицательное тестирование помогает гарантировать, что система способна корректно и предсказуемо обрабатывать недопустимые или неожиданные данные, а не давать сбои или вести себя хаотично. Это важный аспект тестирования, поскольку он помогает выявлять и исправлять ошибки или уязвимости в системе до негативное тестирование того, как они вызовут проблемы у пользователей. Пользователи бывают часто непредсказуемыми и нужно пробовать разные способы негативного тестирования. Как я упоминала в своей предыдущей статье про тестирование валидации ввода, хорошие валидные данные в базе помогут поддерживать здоровье вашего приложения.
Тест снова прошел, потому что просто удостоверялся в существовании контейнера, а оно всегда возвращалось как истина. Я получила ценный урок – никогда нельзя предполагать, что автотесты правильно работают только потому, что они успешно проходят. Убедитесь, что вы проверили сценарии, при которых ваши тесты обязаны упасть, и проверьте, что они действительно падают.
Негативное и позитивное тестирование
Очень легко – особенно в гонке тестирования новой фичи, дабы успеть к дедлайну – забыть проверить пользовательские сценарии, при которых пользователь нажимает на кнопки отмены или удаления. Однако люди делают это постоянно – подумайте о ситуациях, когда вы хотели что-то заказать онлайн, а затем передумали и удалили товар из корзины. Представьте свое раздражение, если он не удалится, или если кнопка отмены не очистит форму, чтобы дать вам возможность начать заново. Пользовательский опыт в этой области не менее важен, чем при “счастливом пути”.
Несмотря на то, что подход имеет преимущества, такое тестирование не взыскало популярности у тестировщиков. Они избегают его, потому что считают, что другие методы позволяют добиться лучших результатов — и быстрее. Тестовый сценарий (Test Case) — это документ, в котором содержатся условия, шаги и другие параметры для проверки реализации тестируемой функции или её части. Требования — это спецификация (описание) того, что должно быть реализовано.
ГИБДД применила убойный метод борьбы с тонировкой автомобильных стекол
Взлом – важный кейс, который рассматривается в негативном тестировании. Теперь приступим к разработке позитивных и негативных тест-кейсов для этого примера. Негативное тестирование, обычно называемое “Error path testing” (тестирование ошибочного пути) или “Failure testing” (тестирование на отказ), обычно проводится для обеспечения стабильности приложения. На практике же не существует проектов, в которых нужно тестировать со всех сторон единственное поле. Таких полей может быть тысячи и сроки дедлайна (в нашем мире, где они обычно обозначены как «вчера») порой не позволяют провести полностью даже позитивные проверки, не говоря о негативных.
Если мы не проверим верно ли распознаются корректные данные, то в случае ошибки большинство пользователей не смогут воспользоваться нашим продуктом. Негативное тестирование – это тип тестирования программного обеспечения, используемый для проверки поведения приложения при неожиданных входных данных и условиях. Сначала мы проверяем работу системы, когда наш условный пользователь работает с системой «правильно».
Плюсы и минусы негативного тестирования
Обратимся к примерам, используя пользовательский интерфейс для создания некоторых доступов. В форме пользователь должен ввести текстовые значения в одном модальном окне и числовые значения в другом. Допустим, вам нужно написать негативные тест-кейсы о шариковой ручке. Негативное тестирование позволяет гарантировать, что например клиент не получит персональный аккаунт в приложении с уровнем допуска, не предусмотренным его организацией. Базовый, и все еще критически важный метод в QA, документирующий условия, в которых проводится тестирования.
В этом случае вы удостоверитесь, что действительно тестируете то, что планировали протестировать. Мы, как тестировщики и автоматизаторы, часто обдумываем “Счастливый путь” – сценарий, которым пользователь с наибольшей вероятностью воспользуется в нашем приложении. Создавая автоматизированные UI-тесты, мы стремимся убедиться, что эти сценарии автоматизированы, а автоматизируя API, хотим проверить, что каждая конечная точка вернет “200 ОК” или схожий успешный ответ. Также не следует забывать о существовании хакеров, которые ищут возможность разрушить систему.
Советы по написаю позитивных и негативных тест-кейсов
Лучше не останется времени на негативные тесты, чем мы не проверим основной функционал продукта на способность корректно отвечать пользователю на корректные запросы. Прежде всего негативное тестирование направлено на проверку устойчивости системы к различным воздействиям, валидации неверных данных, обработку исключительных ситуаций. Сценарии позитивного тестирования, в свою очередь, направлены на проверку работы системы с теми типами данных для которых, она разрабатывалась.
- Тесты можно разделить на классы согласно трем наборам входных данных.
- Убедиться, что пользователь не может авторизоваться в приложении, если не должен, не менее важно, чем убедиться в возможности авторизации.
- Негативное тестирование позволяет гарантировать, что например клиент не получит персональный аккаунт в приложении с уровнем допуска, не предусмотренным его организацией.
- Данные, не соответствующие ожиданиям, могут заставить страницу упасть или отказаться грузиться, или привести к неправильному отображению информации.
- Метод проверки функциональности, путем группирования тестовых значений по нескольким “классам эквивалентности”.
Негативным называют тестирование, в рамках которого применяются сценарии, которые соответствуют внештатному поведению тестируемой системы. Важно также проверить, что у определенных пользователей нет доступа к определенным областям приложения. Тщательно протестированная и функционирующая панель администратора – штука бессмысленная, если окажется, что доступ к ней может получить кто угодно. Единственное, что беспокоит клиента в отношении негативного тестирования, – это стоимость. Клиент сам решает, проводить его или нет, основываясь на оценке потенциальных рисков. Нужно четко понимать, почему негативное тестирование необходимо.
Негативное тестирование – суть метода и его главные приемы
Это процесс выполнения тестовых сценариев, которые выполнял бы конечный пользователь для использования продукта. Следовательно, позитивное тестирование подразумевает выполнение тестового сценария только с правильными и достоверными данными, при этом проверяется, соответствует ли поведение ПО заявленной спецификации. Основная часть тестов нацелена на проверку и подтверждение соответствия системы заданным требованиям. Этот же тип тестирования, напротив, работает с тем, что система делать не должна.
Негативное тестирование: когда, зачем, сколько? Часть 2.
Кроме того, в обоих случаях вы увидите общую закономерность в том, как сценарии делятся на 2 категории. В обоих приведенных выше случаях есть два основных метода, которые легли в основу разработки достаточного количества как позитивных, так и негативных тест-кейсов. Маршрут 1 – это обычный маршрут, а маршрут 2 – это альтернативный маршрут.