Тестовые окружения

Сегодня поговорим о тестовых стендах, для чего они нужны?

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

Можно выделить такие популярные окружения как

  • dev - сюда сливают все изменения из feature-branch и тестируют на тестовом наборе данных
  • stage (он же staging) - а тут тестируют уже в максимально приближенном к проду окружении, в идеале даже на копии базы данных из прода
  • production - ну а тут тестируют на пользователях то, что не выловилось на более ранних стадиях =)

Кроме этого часто тестируют отдельные ветки (feature branch) где добавлена только одна какая-то фича.

По URL можно придерживаться такой схемы:

  • dev: dev.mycompany.com
  • stage: stage.mycompany.com
  • prod: mycompany.com
  • Одна фича: feat-123.mycompany.com

✔️ Таким образом тестировщики знают что именно они тестируют и в каком окружении

Конечно создание и обновление окружений должно быть автоматизировано, особенно это касается динамических фиче-окружений, ведь не будешь же под каждую задачу вручную все создавать. Существуют разные подходы для автоматизации в зависимости от платформы которую вы используете для деплоя. Проще всего это реализовать в контейнерной среде (docker/kubernetes).