Введение
Среда в проектах разработки программного обеспечения не всегда принимается во внимание. Во время разработки проекта — на более поздних этапах — выясняется что для организации тестирования вам нужны дополнительные ресурсы. В конце концов — вы хотите чтобы в рамках проекта у вас на руках был не только код, но и правильно подготовленная рабочая продуктивная версия в продуктивной среде?
Виды сред
- Среда разработки — на чем должны работать разработчики. Используется для разработки и отладки кода. Содержит нестабильный экземпляр решения который часто обновляется.
- Чистая среда — важно для разработки на основе бизнес платформы (например, Microsoft Dynamics или SharePoint). Это среда на которую не устанавливается разрабатываемое решение. Для программистов это среда используется для изучения чистой платформы и ее не изменённого поведения. Так как программисты меняют формы, вендор вносит обновления — полезно иметь под рукой чистый образец для изучения.
- Среда ручного тестирования — среда используется функциональными тестировщиками для выполнения ручного тестирования.
- Среда автоматического тестирования — среда на которой выполняется автотесты — интеграционные, нагрузочные, автоматические тесты для UI тестирования.
- Среда приемочного тестирования — используется редко — но является очень важным компонентом. В идеале эта среда должна быть копией продуктива. Часто на практике во время приемочного тестирования используется чистая тестовая среда.
- Продуктивная среда — если вы создаете абсолютно новое решение и для него нету продуктивной среды – то вы должны включить требования и ожидания по среде в проект.
Рекомендации
- По возможности изолируйте разработчиков друг от друга отдельными средами. Стоит посоветоваться с разработчиками целевой платформы по поводу их ожиданий по средам
- По возможности изолируйте тестировщиков друг от друга отдельными средами.
- В зависимости от планового типа автоматического тестирования рассчитайте количество сред автоматического тестирования
- Среда тестирования должна содержать набор программ с которыми построена интеграция или содержать настройки связи с такими системами вне среды
- Для среды тестирования под нагрузкой может быть важным проверить ее работу на ресурсах близким к продуктивной — чтобы убедится в устойчивости к пиковым нагрузкам. Это может быть полезно даже для облачных решений.
- Хорошая практика держать с тестовой среде или отдельное для нее отдельные тестовые экземпляры систем с которыми нужно проверять интеграцию — но это не всегда возможно для больших legacy систем
- Учтите стоимость лицензий для тестовых сред. Далеко не все вендоры готовы предоставить бесплатные копии программного обеспечения для сред тестирования. Это могут быть существенные затраты.
- Укажите какие legacy системы не могут быть скопированы для использования в тестовых средах. Укажите это как ограничения по средам
- Тщательно проработайте требования к продуктивной среде — обязательно укажите на соответствие нефункциональным требованиям. Проверьте требования к пиковым нагрузкам.
Что нужно писать
- Опишите какие виды сред нужны в проекте — для некоторых сред уточните количество
- Укажите ключевые параметры конфигурации сред
- Какой состав ПО должен быть на среде — особенно важно для сред тестирования
- Какие параметры “железа” ожидаются
- Исключения, особенности
- Укажите кто за них отвечает за создание сред — что готовит разработчик, что готовите вы
- Укажите кто отвечает за лицензирование сред — какие лицензии нужны, кто их обеспечивает
- Укажите ограничения по текущей инфраструктуре и программному обеспечению — что можно использовать, что нет, какие лимиты по физическим ресурсам, что можно разворачивать, что можно копировать