что такое позитивные и негативные тесты

Тестировщик «с нуля»

Страницы

1 апреля 2011 г.

“Негативное” и “позитивное” тестирование

“Позитивное” тестирование – это тестирование на данных или сценариях, которые соответствуют нормальному (штатному, ожидаемому) поведению системы.
Основной целью “позитивного” тестирования является проверка того, что при помощи системы можно делать то, для чего она создавалась.

“Негативное” тестирование – это тестирование на данных или сценариях, которые соответствуют нештатному поведению тестируемой системы – различные сообщения об ошибках, исключительные ситуации, “запредельные” состояния и т.п.
Основной целью “негативного” тестирования является проверка устойчивости системы к воздействиям различного рода, валидация неверного набора данных, проверка обработки исключительных ситуаций (как в реализации самих программных алгоритмов, так и в логике бизнес-правил).

Однако предшествовать “позитивному” и “негативному” тестированию должны работы по выполнению “дымового” тестирования.

Почему “позитивное” тестирование считается на порядок более важным, чем “негативное”?

Предположим, что система не слишком устойчива к “плохим” вводимым данным. Это страшно? Зачастую не слишком. Пользователи рано или поздно научатся обходить “подводные камни”, не будут делать “опасные” или “неразрешенные” действия, служба технической поддержки скоро запомнит, какие проблемы обычно возникают у пользователей и будет давать советы типа “ни в коем случае не оставляйте это поле пустым, а то…”.

НО – всего этого не будет вовсе, если система не выполняет свое основное предназначение, если пользователи (заказчики) не могут решить свои бизнес задачи, если они все делают правильно, вводят хорошие данные, но не получают результата. И посоветовать им ничего в этой ситуации нельзя.

Именно поэтому “позитивное” тестирование гораздо, гораздо важнее “негативного”.

Ошибки в нормальном поведении, мешающие пользователям выполнять бизнес задачи обходятся в разы дороже, чем редкие падения системы, связанные с тем, что кто-то ввел некорректные данные.

Впрочем, это не означает, что “негативными” тестами можно пренебречь, т.к. не на всех этапах жизненного цикла ПО приоритеты ценностей сохраняются неизменными.
Негативное тестирование зачастую позволяет найти большее количество ошибок, но это становится важным только когда все положительные тесты уже сделаны.

Источник

Виды тестирования по позитивности сценария

Многие знают, что тестирование бывает негативным и позитивным. Но для чего же нам разделять его на негативное и позитивное? Есть ли в этом смысл? Разберем в статье.

Позитивное тестирование – это тестирование с применением сценариев, которые соответствуют нормальному (штатному, ожидаемому) поведению системы. С его помощью мы можем определить, что система делает то, для чего и была создана.

Негативным называют тестирование, в рамках которого применяются сценарии, которые соответствуют внештатному поведению тестируемой системы. Это могут быть исключительные ситуации или неверные данные.

Прежде всего негативное тестирование направлено на проверку устойчивости системы к различным воздействиям, валидации неверных данных, обработку исключительных ситуаций. Сценарии позитивного тестирования, в свою очередь, направлены на проверку работы системы с теми типами данных для которых, она разрабатывалась.

Реакция продукта на тесты

Какой результат мы ждем от позитивных и негативных тестов?

Позитивное тестирование должно нам всегда давать результат в виде отсутствия багов.

Негативные проверки могут дать 2 результата:
1. На данный ввод у продукта есть ответ в виде сообщения/контроля.
2. Система не знает, как реагировать на введенные данные.

Получается, есть три реакции на действия по вводу данных:
— Действие: создание сущности, переход на новый шаг и т.п.
— Контроль: сообщение с контролем, блокировка дальнейших действий и т.п.
— Отказ: возникает исключение Exception, 404-ой ошибки и т.п.

Для чего важно различать?

Для чего нам различать негативное и позитивное тестирование? Чтобы верно расставлять приоритеты в тестировании в зависимости от ситуации.

Создание позитивных сценариев (тест-кейсов), как правило, предшествует созданию негативных.

Сначала мы проверяем работу системы, когда наш условный пользователь работает с системой «правильно». А уже потом приступаем к проверке отклика системы на пользователя, который допускает различные ошибки (ввод неверных данных, например). И наша система должна быть готова ответить на неверный запрос. Это и есть цель негативного тестирования.

Почему важно сначала провести позитивное тестирование? Большинство пользователей использует наш продукт так, как необходимо. То есть, если в поле ввода просят указать «Имя», то большинство пользователей напишут в него именно имя, а не набор цифр. Если мы не проверим верно ли распознаются корректные данные, то в случае ошибки большинство пользователей не смогут воспользоваться нашим продуктом.

Именно поэтому мы делим все тесты на позитивные и негативные и начинаем тестировать с позитивных. Именно с позитивных, так как они приоритетней. Лучше не останется времени на негативные тесты, чем мы не проверим основной функционал продукта на способность корректно отвечать пользователю на корректные запросы.

Пример позитивных и негативных тестов

Давайте рассмотрим эти виды тестирования немного подробнее на примере формы авторизации на сайте.

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тесты

С помощью позитивных тестов мы проверим, что наша форма регистрации работает верно. Для этого проведем следующие тесты:

К негативным тестам можно отнести следующие сценарии:

Повторюсь, при тестировании очень важно соблюдать приоритет.

Сначала мы выполняем позитивные тесты, а потом негативные.

Это связано с тем, что для продукта и пользователей важно, чтобы все фичи работали правильно, так как задумывались изначально.

К примеру, ошибка при авторизации с правильным логином и паролем гораздо опаснее, чем проблема возникающая, когда пользователь вводит неправильный пароль. А критичные ошибки лучше всегда находить как можно раньше, чтобы было время их исправить и внимательно проверить.

Есть вопросы по тестированию? Задавай тут.
Если что, то я всегда на связи✌

Источник

понедельник, 10 февраля 2014 г.

Позитивное и негативное тестирование

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тесты

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тесты

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тесты

PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков

36 комментариев:

Две из трех основных парадигм расписаны, это хорошо )
Впринципе, можно было бы уложиться в несколько строчек.

1. Тестирование на позитивных значениях.
Обычно используются пользовательские сценарии с корректными значениями.
Проверяем работоспособность заявленного функционала.

3. Тестирование в невозможных конфигурациях.
Своеобразный эд-хок. Проверка того, что система правильно обрабатывает нештатные ситуации и эксепшны.

Впринципе, две последних парадигмы некоторые объединяют в одну, но я бы не стал этого делать.

Да, Андрей, спасибо 🙂
Согласна, что негативные тесты можно разделить на простые ошибки и эксепшены. Это хороший подход 🙂

Кстати, чем отличается тест-дизайнер от проектировщика тестов?
И часто ли приходят люди, проработавшие несколько лет, но не знающие разделения на негативное и позитивное тестирование и претендующие на позиции тест-дизайнера?

Я согласен, что базовые негативные тесты (вроде корня из отрицательного числа, хотя это внезапно может оказаться и позитивным тестом, если вспомнить, что существует мнимая единица :)) стоит прогнать где-то в серединке. И необходимо уметь придумывать негативные тесты. Но прежде чем начинать тестировать квадратные корни из иврита хорошо бы подумать, какие позитивные кейсы были пропущены в базовом наборе.

Да, ты прав, пожалуй, стоит просить дать полный комплект, а не несколько тестов 🙂
Хотя все, что ты тут нафлудил, мы проходим, просто немного дальше, на уроке по классам эквивалентности 🙂 А первые лекции вводные, так, просто чтобы понять, какие виды тестирования вообще существуют ))

Источник

говориМ о тестировании
простым языком

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тесты

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тесты

Виды тестирования по позитивности сценария

Позитивное тестирование – это тестирование с применением сценариев, которые соответствуют нормальному (штатному, ожидаемому) поведению системы. С его помощью мы можем определить, что система делает то, для чего и была создана.

Негативным называют тестирование, в рамках которого применяются сценарии, которые соответствуют внештатному поведению тестируемой системы. Это могут быть исключительные ситуации или неверные данные.

Прежде всего негативное тестирование направлено на проверку устойчивости системы к различным воздействиям, валидации неверных данных, обработку исключительных ситуаций. Сценарии позитивного тестирования, в свою очередь, направлены на проверку работы системы с теми типами данных для которых, она разрабатывалась.

Реакция продукта на тесты

Какой результат мы ждем от позитивных и негативных тестов?

Позитивное тестирование должно нам всегда давать результат в виде отсутствия багов.

Негативные проверки могут дать 2 результата:
1. На данный ввод у продукта есть ответ в виде сообщения/контроля.
2. Система не знает, как реагировать на введенные данные.

Получается, есть три реакции на действия по вводу данных:
— Действие: создание сущности, переход на новый шаг и т.п.
— Контроль: сообщение с контролем, блокировка дальнейших действий и т.п.
— Отказ: возникает исключение Exception, 404-ой ошибки и т.п.

Для чего важно различать?

Для чего нам различать негативное и позитивное тестирование? Чтобы верно расставлять приоритеты в тестировании в зависимости от ситуации.

Создание позитивных сценариев (тест-кейсов), как правило, предшествует созданию негативных.

Сначала мы проверяем работу системы, когда наш условный пользователь работает с системой «правильно». А уже потом приступаем к проверке отклика системы на пользователя, который допускает различные ошибки (ввод неверных данных, например). И наша система должна быть готова ответить на неверный запрос. Это и есть цель негативного тестирования.

Почему важно сначала провести позитивное тестирование? Большинство пользователей использует наш продукт так, как необходимо. То есть, если в поле ввода просят указать «Имя», то большинство пользователей напишут в него именно имя, а не набор цифр. Если мы не проверим верно ли распознаются корректные данные, то в случае ошибки большинство пользователей не смогут воспользоваться нашим продуктом.

Именно поэтому мы делим все тесты на позитивные и негативные и начинаем тестировать с позитивных. Именно с позитивных, так как они приоритетней. Лучше не останется времени на негативные тесты, чем мы не проверим основной функционал продукта на способность корректно отвечать пользователю на корректные запросы.

Пример позитивных и негативных тестов

Давайте рассмотрим эти виды тестирования немного подробнее на примере формы авторизации на сайте.

С помощью позитивных тестов мы проверим, что наша форма регистрации работает верно. Для этого проведем следующие тесты:

К негативным тестам можно отнести следующие сценарии:

Повторюсь, при тестировании очень важно соблюдать приоритет.

Сначала мы выполняем позитивные тесты, а потом негативные.

Это связано с тем, что для продукта и пользователей важно, чтобы все фичи работали правильно, так как задумывались изначально.

К примеру, ошибка при авторизации с правильным логином и паролем гораздо опаснее, чем проблема возникающая, когда пользователь вводит неправильный пароль. А критичные ошибки лучше всегда находить как можно раньше, чтобы было время их исправить и внимательно проверить.

Источник

Стратегия тестирования REST API: что именно вам нужно тестировать?

Общедоступный API, ориентированный на клиента, который делают открытым для конечных пользователей, сам по себе становится продуктом. Если он сломается, это подвергнет риску не только одно приложение, но и целую цепочку бизнес-процессов, построенных вокруг него.

Знаменитая пирамида тестов Майка Кона помещает тесты API на сервисный уровень (интеграционный), что предполагает, что около 20% или более всех наших тестов должны быть сосредоточены на уровне API (точный процент зависит от наших потребностей).

что такое позитивные и негативные тесты. Смотреть фото что такое позитивные и негативные тесты. Смотреть картинку что такое позитивные и негативные тесты. Картинка про что такое позитивные и негативные тесты. Фото что такое позитивные и негативные тестыПирамида тестов

Когда у нас уже есть прочный фундамент из модульных тестов, охватывающих отдельные функции, тесты API обеспечивают более высокую надежность. Они проверяют интерфейс, более близкий к пользователю, но не имеют недостатков тестов пользовательского интерфейса.

Стратегия тестирования API

Основными задачами функционального тестирования API являются:

гарантировать, что реализация API работает в соответствии со спецификацией требований (которая позже становится нашей документацией по API).

предотвратить регрессий между написанным кодом(merge) и релизом.

эндпоинты правильно именованы;

ресурсы и их типы правильно отражают объектную модель;

нет отсутствующей или дублирующей функциональности;

отношения между ресурсами правильно отражаются в API.

Если у вас общедоступный API, ориентированный на клиента, такое тестирование может быть вашим последним шансом убедиться, что все требования соглашения выполнены. После публикации и использования API любые внесенные вами изменения могут внести ошибки в код клиента.(Конечно, когда-нибудь вы сможете опубликовать новую версию API (например, /api/v2 /), но даже в этом случае обратная совместимость скорее всего будет обязательной).

Итак, какие аспекты API мы должны протестировать?

После того как мы проверили соглашение API, мы можем поразмышлять о том, что тестировать. Независимо от того, думаете ли вы об автоматизации тестирования или ручном тестировании, наши функциональные тест-кейсы имеют одинаковый набор тестовых действий. Они являются частью более широких категорий тестовых сценариев и их можно разделить на три потока тестирования.

Этапы тестирования API

Каждый тест состоит из тестовых шагов. Это отдельные атомарные действия, которые тест должен выполнять в каждом потоке тестирования API. Для каждого запроса API тест должен будет выполнить следующие действия:

Проверьте корректность кода состояния HTTP. Например, создание ресурса должно возвращать 201 CREATED, а запрещенные запросы должны возвращать 403 FORBIDDEN и т. Д.

Проверьте полезную нагрузку ответа. Проверьте правильность тела JSON, имен, типов и значений полей ответа, в том числе в ответах на ошибочные запросы.

Проверьте заголовки ответа. Заголовки HTTP-сервера влияют как на безопасность, так и на производительность.

Проверьте правильность состояния приложения. Это необязательно и применяется в основном к ручному тестированию или когда пользовательский интерфейс или другой интерфейс можно легко проверить.

Проверьте базовую работоспособность. Если операция была завершена успешно, но заняла неоправданно много времени, тест не пройден.

Категории тестовых сценариев

Наши тест-кейсы делятся на следующие общие группы тестовых сценариев:

Основные позитивные тесты (прохождение успешного сценария по умолчанию)

Расширенное позитивное тестирование с дополнительными параметрами

Негативное тестирование с валидными входными данными

Негативное тестирование с недопустимыми входными данными

Тесты безопасности, авторизации и доступности (которые выходят за рамки этой статьи)

Тестирование успешного сценария по умолчанию проверяет базовую функциональность и критерии приемки API. Позже мы расширим положительные тесты, чтобы включить дополнительные параметры и дополнительные функции.

Тестовые потоки

Давайте разделим и обозначим три вида потоков тестирования, которые составляют наш план тестирования:

Мы выполняем запросы через API и проверяем действия через пользовательский интерфейс веб-приложения и наоборот. Цель этих потоков проверки целостности состоит в том, чтобы гарантировать, что, хотя на ресурсы влияют различные механизмы, система по-прежнему поддерживает ожидаемую целостность и согласованный поток данных.

Пример API и тестовая матрица

Теперь мы можем отобразить все в виде матрицы и использовать ее для написания подробного плана тестирования (для автоматизации тестирования или ручных тестов).

Предположим, что подмножеством нашего API является конечная точка /users, которая включает следующие вызовы API:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *