Тестовые данные в тестировании

21 июня 2024
Дата публикации
Тестовые данные в тестировании
  • Тестирование ПО
  • Обеспечение качества
При тестировании программного обеспечения большое значение имеют тестовые данные, которые QA-специалисты используют при своей работе. Если они будут некачественными или некорректными, то это может сказаться на конечном ИТ-продукте и на пользовательском опыте.

В блоге мы разберём их виды и типы, приведём примеры тестовых данных и рассмотрим инструменты для их генерации.

Что такое тестовые данные при тестировании

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

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

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

Генерация тестовых данных

Генерацию тестовых данных можно проводить несколькими способами:

Вручную

Создание тестовых данных происходит вручную в соответствии с требованиями к ИТ-продукту. Например, вводят данные в форму, загружают файлы, создают аккаунты и т.д.

Автоматически

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

Внедрение внутренних данных

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

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

1. Повышение эффективности тестирования

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

2. Экономия времени и ресурсов

Использование корректных тестовых данных с начала тестирования помогает избежать лишних исправлений и проведения повторных тестов из-за ошибочных данных.

3. Уменьшение вероятности ошибок

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

Виды тестовых данных в тестировании

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

Производительность:

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

Безопасность:

  • Данные с вредоносным кодом или подозрительными соединениями.
  • Данные, имитирующие атаки типа «отказ в обслуживании» (DoS).

Локализация и интернационализация:

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

Интеграция:

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

Регрессия:

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

Пользовательский интерфейс (UI):

  • Данные, которые проверяют визуальные элементы, такие как цвета, шрифты и расположение объектов на сайте.
  • Данные, которые проверяют доступность и удобство использования для разных пользователей.

Типы тестовых данных в тестировании

  1. Валидные тестовые данные соответствуют допустимому формату и ожидаемым значениям согласно требованиям спецификации ПО. Например, если поле должно содержать только числа, то валидными данными будут числа, а не текст.
  2. Невалидные тестовые данные не соответствуют допустимому формату или ожидаемым значениям. Если программа ожидает дату в формате "ДД.ММ.ГГГГ", то невалидными данными будут другие форматы.
  3. Случайные данные генерируются случайным образом. Такие данные позволяют проверить работоспособность программы при различных входных значениях и условиях.
  4. Пустые данные не содержат никакой информации. Тестирование с использованием пустых данных может позволить обнаружить ошибки связанные с обработкой отсутствия данных.
  5. Данные с высокой нагрузкой характеризуются большим объемом, интенсивностью или сложностью. Проведение тестирования с использованием данных с высокой нагрузкой позволяет оценить производительность, надёжность и масштабируемость ПО.
  6. Дублирующиеся данные повторяются или уже присутствуют в системе. Тестирование с использованием дублирующихся данных позволяет выявить проблемы, связанные с уникальностью, целостностью и обработкой дубликатов.

Примеры тестовых данных

Пример использования тестовых данных при ручном тестировании.

Функция регистрации:

  • Валидные данные: действительный адрес электронной почты, надёжный пароль, корректное имя пользователя.
  • Невалидные данные: недопустимый адрес электронной почты, слабый пароль, пустое имя пользователя.
  • Крайние значения: максимально короткое имя пользователя, максимально длинный пароль.
  • Нестандартные данные: имя пользователя с пробелами, пароль с необычными символами.

Функция корзины покупок:

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

Функция оформления заказа:

  • Валидные данные: действительный адрес доставки, действительные платёжные данные, корректный адрес электронной почты.
  • Невалидные данные: недопустимый адрес доставки, недействительные платёжные данные, некорректный адрес электронной почты.
  • Крайние значения: максимально длинный адрес доставки, минимально короткий адрес доставки.
  • Нестандартные данные: адрес доставки с пробелами, платёжные данные с необычными символами.

Инструменты генерации тестовых данных

Существует множество инструментов для генерации тестовых данных. Ниже мы привели несколько их примеров:

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

2. Faker представляет собой библиотеку с языками программирования (например, Python, PHP, Ruby). Она позволяет генерировать различные типы случайных данных.

3. Databene Benerator позволяет создавать сложные тестовые сценарии и комбинировать различные генераторы данных для создания объектов.

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

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

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

Проблемы поиска источников тестовых данных

При поиске источника данных тестировщик может столкнуться с несколькими проблемами:

1. Достоверность данных

Некорректные или неточные данные могут привести к неправильному тестированию и неверным выводам по нему. Тестировщик всегда должен проверять достоверность источника данных.

2. Доступность данных

У QA-специалистов не всегда есть доступ к реальным данным, особенно если они конфиденциальны. Поэтому поиск доступных данных, которые подходят для проекта, может быть сложным.

3. Репрезентативность

Данные должны быть репрезентативными, то есть покрывать ключевые характеристики тестируемого ИТ-продукта. Неправильно подобранные данные могут выявлять не все дефекты.

4. Формат данных

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

Подведём итоги

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

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