1

Я проверил довольно много источников, и мне все еще остается неясным: является ли внедрение в тестовую среду частью CI, или это CI, который просто фиксирует частоту и не поддерживает интеграцию с основной сетью? Некоторые говорят это, некоторые говорят, что развертывание в целевую среду является частью CI.Является ли развертывание в тестовой среде частью непрерывной интеграции?

В противном случае, похоже, я не вижу разницы между CI и Continuous Delivery.

ответ

1

Непрерывная интеграция может потребовать или не потребовать что-то, что вы считаете развертыванием в тестовой среде. Основной момент CI заключается в том, что автоматические тесты запускаются на версии программного обеспечения, чтобы гарантировать, что эта версия i готова к развертыванию на следующем этапе (QA, постановка, производство или что-то еще, что будет в следующем шаге в вашем процессе). Поэтому программное обеспечение развертывается, если это необходимо для тестирования программного обеспечения, а не если нет.

Всегда есть тестовая среда, потому что автоматические тесты должны выполняться на некоторых компьютерах, но код может или не может попасть туда через то, что вы считаете развертыванием. Например, если приложение находится на интерпретируемом языке, для запуска автоматических тестов может потребоваться не что иное, как копирование источника в тестовую среду и запуск сценария, а не фактическое развертывание.

Независимо от того, требуется ли развертывание для автоматического тестирования, зависит от того, какие автоматические тесты имеют приложение. Если он имеет только модульные тесты, развертывание не требуется. Если он имеет тесты интеграции с полным стеком, развертывание может потребоваться или не понадобиться в зависимости от платформы тестирования интеграции. Например, платформа тестирования интеграции, входящая в состав Rails, запускает тестовую версию сервера Rails для тестирования, с тем чтобы эти тесты не требовали развертывания. С другой стороны, другие фреймворки могут не предоставлять эту поддержку, поэтому приложение должно быть развернуто в тестовой среде, чтобы обеспечить интеграцию с полным стеком что-то, что нужно выполнить. Или сборка CI может включать автоматические тесты производительности; они, безусловно, должны будут работать против приложения, развернутого в тестовой среде.

+0

Спасибо. Но что подразумевается под тестом? Автоматизированный? В большинстве систем по-прежнему требуется ручная проверка, выполняемая тестировщиками (например, системы с графическим интерфейсом, где также необходимо проверить доступность, удобство использования и т. Д.). И в чем же разница с доставкой COntinous? – Pietross

+0

Да, автоматизированные тесты. Я сделал это яснее в своем ответе. Приложение может иметь ручные тесты, но это не относится к CI. Что касается CD, если у вашего приложения есть ручные тесты, которые нужно запустить перед развертыванием на производство, вы не делаете CD. Тем не менее, вы можете записывать CD на производство и вручную тестировать. –

+0

Также, если наше приложение (многоуровневое, DB, промежуточное программное обеспечение Java и пользовательский интерфейс Flex) запускает тесты на единицу и интеграцию, он по-прежнему является CI. Затем он развертывается в нашей среде SIT, чтобы наши тестеры выполняли некоторые тесты - развертывание запускается вручную в Jenkins - это все еще часть CI? Некоторые источники, которые я прочитал (например, «Лучшая практика Pro: NET»), упомянули развертывание как шаг в CI. – Pietross

Смежные вопросы