Тестовые данные: где брать, как готовить и почему это половина работы

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

Почему это важнее, чем кажется

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

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

Пять способов получить данные

СпособКогда подходитМинус
Через интерфейсОдиночная проверка, простое состояниеДолго, не масштабируется
Через APIНужно много однотипных записейНадо знать методы и авторизацию
Запросами к базеНужно редкое или невозможное состояниеЛегко нарушить целостность
Скрипт-генераторРегулярно нужен один и тот же наборНадо написать и поддерживать
Копия боевых данныхНужен реалистичный объёмОбязательно обезличивание

На практике комбинируют: базовый набор наливают скриптом при развёртывании стенда, частные случаи добирают через API, а совсем экзотические состояния правят запросом.

Каким должен быть хороший набор

💡 Приём, экономящий часы

Заведите себе набор эталонных значений и держите его под рукой: длинное имя, имя с апострофом, эмодзи, строка с HTML, очень большое число, дата 29 февраля. Вставляйте их в каждое поле, которое проверяете. Через неделю такой привычки вы находите вдвое больше.

Боевые данные на тестовом стенде

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

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

Ошибки, из-за которых проверки врут

  1. Проверять на своём давнем аккаунте. У вас там особое состояние, накопленное за полгода. У нового пользователя всё иначе — и половина дефектов живёт именно там.
  2. Использовать один аккаунт на всех. Коллега меняет данные параллельно, и вы получаете необъяснимое поведение.
  3. Править базу напрямую там, где есть бизнес-логика. Поменяли статус заказа запросом — и обошли расчёты, уведомления и историю. Результат проверки бессмысленный.
  4. Не чистить за собой. Через месяц на стенде тысячи мусорных записей, и поиск нужного превращается в отдельную задачу.
  5. Забывать про справочники. Проверили на трёх категориях товаров, а в проде их триста — и на трёхсотой вёрстка ломается.

Отдельная тема: даты и время

Самый коварный вид тестовых данных. Набор, где заказ создан «вчера», через месяц превращается в набор, где заказ создан месяц назад, — и проверки, завязанные на срок, начинают падать без всякой причины.

Если в продукте есть что-то, зависящее от времени — подписки, сроки доставки, отчётные периоды, — попросите у разработчиков способ подменить дату на стенде. Это экономит недели ожидания «когда наступит нужный день».

Как автоматизировать подготовку

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

Коллекция в Postman. Соберите последовательность запросов: создать пользователя → авторизоваться → создать заказ → оплатить. Запуск через Runner создаёт нужное состояние за секунды. Как это устроено — в разборе Postman для тестировщика.

Набор SQL-запросов. Файл с готовыми выборками: найти пользователя без заказов, найти заказ в нужном статусе, посмотреть, что записалось. Пополняйте его каждый раз, когда пишете новый запрос, — см. шпаргалку по SQL.

Можно ли тестировать на проде?

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

Где брать реалистичные имена и адреса?

Есть генераторы синтетических данных, в том числе с поддержкой русских имён и адресов. Главное — чтобы данные выглядели как настоящие: с дефисами, апострофами и разной длиной.

Кто отвечает за тестовые данные?

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