Как готовились тестовые данные
Что проверяют
Был ли у вас системный подход: откуда брались данные, как тесты не мешали друг другу, как данные чистились и не утекали ли персональные сведения. Следом обычно спрашивают, что происходило при параллельном запуске автотестов и как вы поддерживали наборы в актуальном состоянии.
Как отвечать
Рассказывайте про свой проект, но по понятному каркасу:
- что нужно покрыть: набор данных вытекает из техник тест-дизайна. Классы эквивалентности и граничные значения дают конкретные случаи: пустая строка, максимальная длина, юникод и эмодзи, спецсимволы, отрицательные числа, 29 февраля, смена часового пояса;
- откуда данные: генераторы (
Fakerв Python, Datafaker в Java), билдеры и фабрики в коде автотестов, SQL-скрипты с фикстурами, создание сущностей через API в подготовке теста, обезличенная выгрузка с прода; - изоляция: каждый тест создаёт свои данные и удаляет их после себя, уникальные значения получают суффикс с UUID или временем. Для интеграционных тестов удобно поднимать чистую базу в контейнере через Testcontainers;
- персональные данные: копия прода попадает на стенд только после маскирования, иначе это нарушение 152-ФЗ и прямой риск утечки;
- хранение: наборы для параметризованных тестов лежат рядом с тестами в репозитории (JSON, CSV), схема тестовой базы меняется миграциями вместе с кодом.
Добавьте цифры из своего опыта: сколько сущностей готовили, сколько времени занимала подготовка до автоматизации и после, какие нестабильные тесты ушли, когда появилась изоляция. Если данные у вас заводились руками через админку, так и скажите, опишите, как вели таблицу тестовых аккаунтов, и объясните, что автоматизировали бы первым делом.
Где спотыкаются
Отвечают общими словами: «использовал генераторы, покрыли все сценарии». Интервьюер ждёт инструменты, конкретные наборы и хотя бы один пример граничного случая.
Используют один общий тестовый аккаунт для всех тестов. Тогда тесты зависят от порядка запуска и падают при параллельном прогоне.
Забывают про очистку. База стенда разрастается, поиск находит мусор от прошлых прогонов, а тесты на пустой список ломаются.