Как тестировать формы? Мини-руководство

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

Зачем тестируют формы?

1. Безопасность

Злоумышленники могут использовать поля формы для получения информации или других вредоносных действий — это может быть сделано с помощью SQL-инъекций и вредоносных скриптов.

2. Стабильность

Когда пользователь вводит данные, которые не могут быть обработаны приложением, оно может среагировать неожиданным образом — например, упасть.

3. Корректное поведение UI и единообразие

Очень важно, чтобы все формы в приложении были единообразны (и по внешнему виду, и по поведению).

4. Чистота базы данных

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

Разделение эквивалентности

Разделение эквивалентности — это разделение набора возможных данных для ввода на классы. Каждый член класса считается идентичным всем остальным.

Давайте разберем это на примере. Предположим, что есть поле для ввода, которое может принимать только числовые значения в промежутке от 1 до 200 000. Вот классы эквивалентности, которые нужно будет проверить:

  • Числа меньше минимального значения промежутка (меньше 1)
  • Числа внутри промежутка (1-200 000)
  • Числа больше максимального значения промежутка (больше 200 000)

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

Кроме классов эквивалентности, нужно протестировать граничные значения. Граничные значения это:

  • Минимальное значение
  • Максимальное значение
  • Выборочные значения из промежутка

Вот пример:

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

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

Дополнительно

Вместе со всем вышеперечисленным нужно попробовать:

  • оставить поле пустым
  • ввести нечисловое значение
  • ввести число больше 32-bit Integer
  • другие варианты, которое подскажет ваш опыт и воображение 🙂

Даже у Google были проблемы с выходом за предел 32-битного промежутка: в декабре 2014 года количество просмотров клипа PSY Gangman Style на YouTube превысило максимальное значение 32-битнгого промежутка. После этого счетчик обновили.

Таблица верификации полей

Вот пример таблицы для верификации полей ввода. Вы можете составить такую же для вашей формы.

Тип данныхКорректный вводНекорректный ввод
Положительные целые числа— только числа
— максимально возможное значение (N)
— числа внутри промежутка (N + 1) / 2
— число больше максимально возможного (N + 1)
— дробные числа
— отрицательные числа
— строковые значения
— числа + строковые значения
— числа + специальные символы
— Unicode (например U+0000, U+0001)
Строки— только символы
— только числа
— только специальные символы
— числа + символы
— числа + спецсимволы
— символы + спецсимволы
Даты— проверить, что при выборе появляется datepicker
— проверить, что поле нельзя изменить с клавиатуры
— проверить, что значение поля можно скопировать, но вставить нельзя
— проверить, что при выборе значения в datepicker, оно появляется в поле
— проверить, что в феврале 29 дней в високосных годах
— проверить, что в феврале 28 дней не в високосных годах

Бонус: BugMagnet

Для тестирования форм есть отличный плагин для Chrome и Firefox — BugMagnet. После установки кликните правой кнопкой мыши по любому полю формы и у вас появится возможность выбора значений для заполнения из огромного списка данных. Вот видео, на котором показано, как работаем BugMagnet:

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

2 КОММЕНТАРИИ

Подписаться
Уведомить о
guest

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алекс
Алекс
2 лет назад

прикольная штука — BugMagnet, поставил — удобно этими автодополнениями пользоваться, но список доступных вариантов надо расширять.

aviator
aviator
2 лет назад
Ответить на  Алекс

Не понял эту таблицу для верификации, ну составлю я ее и что дальше делать с ней? Тесткейсы по ней писать?

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас