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

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

В предыдущих статьях мы уже рассматривали такие виды тестирования, как функциональное, санитарное, дымовое, интеграционное, регрессионное, альфа– и бета-тестирование, тестирование доступности и т.д. Однако независимо от того, какой вид тестирования проводится, все сценарии тестирования можно разделить на две категории: позитивные и негативные.

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание:

Что такое позитивное тестирование?

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

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

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

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

Это можно понять из схематичного примера, описанного ниже:

Негативное и позитивное тестирование. Маршрут

A – это начальная точка, а B – конечная точка. Существует два пути из точки А в точку В. Маршрут 1 – это обычный путь, а маршрут 2 – альтернативный. Таким образом, в этом случае для тестирования “счастливого пути” (Happy Path Testing) нужно пройти от точки A до B по маршруту 1, а для тестирования альтернативного пути нужно пройти от A до B по маршруту 2. Заметьте, что результат в обоих случаях одинаков.

Что такое негативное тестирование?

Негативное тестирование (Negative Testing), также называемое “Error path testing”, “Failure testing”, обычно проводится для обеспечения стабильности приложения.

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

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

Рассмотрим пример. Допустим, вам нужно написать негативные тест-кейсы для проверки шариковой ручки. Основное предназначение ручки – возможность писать на бумаге.

Тест-кейсы негативного тестирования могут быть следующими:

  • Смените материал, на котором должна писать ручка, с бумаги на ткань или кирпич, и посмотрите, будет ли она по-прежнему писать.
  • Опустите ручку в жидкость и проверьте, пишет ли она.
  • Замените стержень ручки на пустой и проверьте, перестанет ли она писать.

Практические примеры

В формах ниже пользователь должен ввести текстовые значения в одном окне и числовые значения в другом.

Первое окно

В первом окне пользователь должен ввести текстовые значения:

Окно с двумя полями для ввода текста: Name* и Description

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

Требования:

  • Текстовое поле “Name” является обязательным.
  • “Description” не является обязательным.
  • Поле “Name” может содержать только символы a-z и A-Z. Цифры и специальные символы не допускаются.
  • Длина поля “Name” – не более 10 символов.

Теперь приступим к разработке позитивных и негативных тест-кейсов для этого примера.

Позитивные сценарии тестирования:

  1. ABCDEFGH (проверка верхнего регистра в пределах лимита символов).
  2. abcdefgh (проверка нижнего регистра в пределах лимита символов).
  3. aabbccddmn (проверка лимита символов).
  4. aDBcefz (проверка сочетания букв в верхнем и нижнем регистре в пределах лимита символов).
  5. … и так далее.

Негативные сценарии тестирования:

  1. ABCDEFGHJKIOOOOOKIsns (превышение лимита в 10 символов для поля “Name”)
  2. abcd1234 (числовые значения, введенные в поле “Name”)
  3. В поле “Name” ничего не введено
  4. sndddddwwwww_ (специальные символы в поле “Name”)
  5. … и так далее.

Второе окно

Во втором окне пользователь должен вводить только числовые значения.

Окно для введения ID  с пометкой (1-250)

Давайте и здесь установим некоторые основные правила.

Требования:

  • ID должен быть числом в диапазоне 1-250
  • ID является обязательным.

Вот несколько позитивных и негативных сценариев тестирования для этого конкретного окна.

Позитивные сценарии тестирования:

  1. 12 (ввод действительного значения в указанном диапазоне).
  2. 1, 250 (ввод граничных значений указанного диапазона).

Негативные сценарии тестирования:

  1. Ab (ввод текста вместо чисел).
  2. 0, 252 (ввод значений вне допустимого диапазона).
  3. Пустой ввод.
  4. -2 (ввод значений вне диапазона).
  5. +56 (ввод допустимого значения со специальным символом).

Советы по написаю позитивных и негативных тест-кейсов

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

Кроме того, вы могли заметить закономерность в том, как сценарии делятся на 2 категории. В обоих приведенных выше случаях есть два основных метода, которые легли в основу разработки достаточного количества как позитивных, так и негативных тест-кейсов:

Анализ граничных значений

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

Таким образом, если входные данные находятся в пределах граничных значений, то это считается позитивным тестированием, а входные данные, выходящие за пределы граничных значений, считаются частью негативного тестирования.

Например, есть определенное приложение, принимающее значения в диапазоне от 0 до 255. Следовательно, здесь 0 и 255 будут являться граничными значениями. Любой ввод значений менее 0 или более 255 будут считаться недопустимым и, следовательно, будет представлять собой тест-кейс негативного тестирования.

Негативное и позитивное тестирование. Положительный результат тестирования. Граничные значения.

Эквивалентное разбиение

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

Поэтому очевидно, что классы валидных данных будут относится к позитивному тестированию, а классы недопустимых данных – к негативному.

В примере, приведенном выше, значения можно поделить, скажем, на два класса:

  • Значения от -255 до -1 в одном классе
  • Значения от 0 до 255 в другом классе
Недопустимые классы данных и допустимые классы данных

Заключение

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

В то время как позитивное тестирование гарантирует, что бизнес-показатели продукта валидны, негативное тестирование гарантирует, что поставляемое программное обеспечение не имеет дефектов.

Разработка точных и эффективных сценариев негативного тестирования требует от тестировщика творческого подхода и мастерства. Большинство из этих навыков можно приобрести с опытом, поэтому продолжайте раскрывать свой потенциал!

Перевод статьи “What Is Negative Testing And How To Write Negative Test Cases?”

2 комментария к “Позитивное и негативное тестирование”

  1. Пингбэк: Тест-кейсы для проверки одноразовых паролей

  2. Пингбэк: Как тестировать электрический чайник

Оставьте комментарий

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