Непрерывная интеграция (CI) — это методология разработки программного обеспечения, при которой разработчики часто интегрируют свой код в общий репозиторий, обычно несколько раз в день. Каждая такая интеграция автоматически проверяется автоматизированными сборками и тестами.
Основные цели CI:
- Снижение рисков интеграции.
- Выявление ошибок на ранних стадиях.
- Повышение качества кода.
- Сокращение времени цикла разработки.
Типичный рабочий процесс CI:
- Разработчик вносит изменения в код.
- Код отправляется (commit) в общий репозиторий (например, Git).
- CI-сервер (например, Jenkins, GitLab CI, GitHub Actions) обнаруживает изменения.
- Запускается автоматический процесс сборки проекта.
- Выполняются автоматизированные тесты (юнит-тесты, интеграционные тесты и т.д.).
- В случае успешной сборки и прохождения тестов, код считается интегрированным.
- При сбое сборки или тестов, ответственные лица немедленно уведомляются для быстрого устранения проблемы.
Ключевые элементы CI:
- Система контроля версий (Git, Subversion).
- CI-сервер для автоматизации сборки и тестирования.
- Автоматизированные тесты, покрывающие разные уровни.
- Дисциплина команды по частому коммиту и интеграции.
Преимущества CI для QA:
- Более стабильные сборки для тестирования.
- Быстрое получение фидбека по изменениям.
- Снижение количества дефектов, связанных с интеграцией.
- Возможность сосредоточиться на исследовательской и более сложных видах тестирования.