Тестовые окружения
Сегодня поговорим о тестовых стендах, для чего они нужны?
Тестировать в проде, конечно, весело, и эффективно, но не все пользователи хотят работать тестировщиками. Поэтому используют тестовые стенды для обкатки нового функционала и уверенности, что не сломался старый, как это часто бывает.
Можно выделить такие популярные окружения как
- 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).