Тестовые окружения
Тестовые окружения
Введение
Представь, что ты тестируешь фичу на своём ноутбуке, всё работает. А в продакшне — падает. Почему? Потому что разные окружения. Понимание того, что такое тестовое окружение и как правильно с ним работать — это базовый навык любого тестировщика.
Что такое тестовое окружение
Тестовое окружение (test environment) — это совокупность программного обеспечения, аппаратного обеспечения, конфигурации и тестовых данных, в которой выполняется тестирование.
Окружение включает:
- Сервер (физический или виртуальный)
- Операционная система
- База данных (версия, конфигурация)
- Приложение (конкретная версия)
- Браузер/клиент
- Сетевые настройки
- Тестовые данные
Типичные окружения в компании
Development (Dev)
Рабочее окружение разработчиков. Код меняется постоянно, стабильность низкая.
- Кто работает: разработчики
- Стабильность: низкая
- Тестировщик: обычно не тестирует здесь
Testing / QA
Окружение для тестирования. Сюда деплоят версию, которую нужно протестировать.
- Кто работает: тестировщики
- Стабильность: средняя
- Тестировщик: основное рабочее место
Staging / Pre-production / UAT
Максимально близкая к продакшну копия. Финальная проверка перед релизом.
- Кто работает: QA + бизнес-пользователи (UAT)
- Стабильность: высокая
- Тестировщик: финальная проверка перед релизом
Production (Prod)
Боевое окружение — реальные пользователи, реальные данные.
- Кто работает: пользователи
- Стабильность: критически важна
- Тестировщик: никогда не тестирует намеренно (только мониторинг)
Путь от разработки до продакшна

Dev → Testing/QA → Staging → Production
↑ ↑
Разработчик Пользователи
Код движется слева направо. Каждый переход — это деплой новой версии в следующее окружение.
Почему нельзя тестировать сразу в продакшне
- Реальные данные. Случайный тест может изменить данные реальных пользователей
- Доступность. Падение продакшна = убытки и недовольные пользователи
- Необратимость. Некоторые действия нельзя откатить (отправленное письмо, списанные деньги)
- Репутация. Пользователи видят «сырые» фичи
Проблемы с окружением как баги
Важный момент: проблемы окружения — это тоже дефекты, и их нужно документировать.
Примеры:
- На staging другая версия базы данных — тест падает
- В тестовом окружении отключены email-уведомления — поведение отличается
- Dev и QA используют разные версии сторонних API
Если тест падает из-за проблемы окружения, а не из-за бага в коде — это называется environment issue, и это тоже нужно репортить, просто иначе.
Управление тестовыми данными
Тестовые данные — это данные, которые используются для выполнения тестов.
Проблемы, которые возникают:
- В QA-окружении нет данных для тестирования (пустая база)
- Тестовые данные не соответствуют реальным (слишком простые)
- Тесты зависят от конкретных данных, которые кто-то удалил
Хорошие практики:
- Создавай нужные данные в начале теста, удаляй в конце
- Используй seed-скрипты для заполнения тестовой базы стандартными данными
- Не полагайся на то, что какие-то данные «всегда там будут»
Конфигурационные различия как источник багов
Очень частая ситуация: «У меня на машине работает!»
Причина — конфигурационные различия:
| Параметр | Dev | QA | Production |
|---|---|---|---|
| База данных | SQLite | PostgreSQL 14 | PostgreSQL 15 |
| Кэширование | Выключено | Включено | Включено |
| Логи | Детальные | Средние | Минимальные |
| Внешние API | Моки | Тестовые ключи | Боевые ключи |
Тестировщик должен знать, чем его окружение отличается от продакшна, чтобы понимать — баг везде, или только в конкретном окружении.
Распространённые ошибки
- «Я протестировал на своём ноутбуке». Локальное окружение разработчика — не QA-окружение.
- «В QA работает, значит и в prod будет работать». Staging максимально близок к prod — именно там финальная проверка.
- «Проблема окружения — не наш баг». Документируй environment issues так же тщательно.
- Ручные изменения в тестовой базе без документирования. Завтра никто не вспомнит, что было изменено.
Что запомнить
- Тестовое окружение — это вся инфраструктура (сервер, БД, конфигурация, данные), в которой выполняется тест
- Типичная цепочка: Dev → QA → Staging → Production
- В продакшне намеренно не тестируют — там реальные пользователи и данные
- Проблемы окружения — это тоже дефекты, их нужно документировать
- Управляй тестовыми данными: создавай, используй, убирай за собой