Найти в Дзене
QA Way - QA Automation

💬 Основы CI/CD

Существует несколько основных элементов CI/CD, которые помогают обеспечить максимальную эффективность жизненного цикла разработки. Они охватывают разработку и развертывание. Включите эти основы в свой конвейер, чтобы улучшить рабочий процесс DevOps и поставку программного обеспечения. Система управления исходным кодом (SCM), в которой хранятся все необходимые файлы и скрипты для создания сборок, имеет решающее значение. Репозиторий должен содержать все необходимое для сборки. Это включает исходный код, структуру базы данных, библиотеки, файлы свойств и управление версиями. Он также должен содержать тестовые сценарии и сценарии для создания приложений. Как можно раньше и чаще интегрируйте код в свою основную ветку (trunk, mainline или master в зависимости от используемой системы управления исходным кодом). Используйте небольшие фрагменты кода и объединяйте их в ветку как можно чаще. Не объединяйте более одного изменения за раз. Скрипты должны содержать все необходимое для сборки проекта
Оглавление

Существует несколько основных элементов CI/CD, которые помогают обеспечить максимальную эффективность жизненного цикла разработки. Они охватывают разработку и развертывание. Включите эти основы в свой конвейер, чтобы улучшить рабочий процесс DevOps и поставку программного обеспечения.

🔸 Единый репозиторий исходного кода.

Система управления исходным кодом (SCM), в которой хранятся все необходимые файлы и скрипты для создания сборок, имеет решающее значение. Репозиторий должен содержать все необходимое для сборки. Это включает исходный код, структуру базы данных, библиотеки, файлы свойств и управление версиями. Он также должен содержать тестовые сценарии и сценарии для создания приложений.

🔸 Частые интеграции в основную ветку

Как можно раньше и чаще интегрируйте код в свою основную ветку (trunk, mainline или master в зависимости от используемой системы управления исходным кодом). Используйте небольшие фрагменты кода и объединяйте их в ветку как можно чаще. Не объединяйте более одного изменения за раз.

🔸 Автоматизированные сборки

Скрипты должны содержать все необходимое для сборки проекта с помощью одной команды. В них должны быть файлы веб-сервера, скрипты для работы с базой данных и прикладное программное обеспечение. Процессы CI/CD должны автоматически упаковывать код в готовое к использованию приложение.

🔸 Сборки с автоматическим тестированием.

Процессы CI/CD требуют постоянного тестирования. Тестовые сценарии должны быть настроены таким образом, чтобы сбой теста приводил к остановке сборки. Используйте статические сценарии тестирования перед сборкой, чтобы проверить целостность, качество и безопасность кода. Разрешайте включать в сборку только тот код, который успешно проходит статические тесты.

Автотесты для API с Java, REST Assured и TestNG.

Курс знакомит тестировщиков ПО с часто встречающимися задачами при тестировании backend приложений. На примере простого микро сервиса вы увидите что собой представляет REST API. Какие основные подходы для тестирования ПО используются при его проверках. С помощью каких инструментов и библиотек пишутся автотесты и создаются тестовые фреймворки.

🔸 Начать обучение 🔸

🔸 Частые итерации

Частые и небольшие изменения в репозитории помогают избежать конфликтов. Делайте небольшие итерации вместо крупных изменений. Это позволит легко откатить изменения в случае возникновения проблем или конфликтов.

🔸 Стабильная среда тестирования

Код следует тестировать в отдельной, клонированной версии production среды. Не рекомендуется тестировать новый код в production версии. Создайте её точную копию, максимально приближенную к реальной. Используйте подробные тестовые сценарии для выявления и идентификации ошибок, которые могли возникнуть в ходе первоначального тестирования перед сборкой.

🔸 Максимальная наглядность

Каждый разработчик должен иметь доступ к последней версии исполняемых файлов и видеть все изменения, внесённые в репозиторий. Информация в репозитории должна быть доступна всем. Используйте систему контроля версий для отслеживания изменений и управления версиями, чтобы разработчики знали, какая версия является актуальной. Максимальная наглядность позволяет каждому участнику команды отслеживать прогресс и выявлять потенциальные проблемы.

🔸 Предсказуемое развёртывание

Развёртывания должны быть рутинными и малорискованными, чтобы команда могла выполнять их в любое удобное время. Процессы тестирования и верификации CI/CD должны быть строгими и надёжными, чтобы команда могла быть уверена в развёртывании обновлений в любой момент. Частые развёртывания, включающие небольшие изменения, также сопряжены с меньшими рисками и их можно легко откатить назад.

💬 Что такое непрерывное тестирование в CI\CD?

Continuous testing или непрерывное тестирование - это практика тестирования ПО, при которой тесты выполняются непрерывно с целью выявления ошибок, как только они появляются в кодовой базе. В конвейере CI/CD, непрерывное тестирование обычно выполняется автоматически. При этом каждое изменение кода запускает серию тестов. Это позволяет убедиться, что приложение по-прежнему работает должным образом. Такая практика помогает выявить проблемы на ранней стадии процесса разработки и избежать их дальнейшего усложнения и дорогостоящего устранения. Непрерывное тестирование также может обеспечить разработчикам ценную обратную связь о качестве их кода. Оно помогает им выявлять и устранять потенциальные проблемы до того, как они будут выпущены в прод.

При непрерывном тестировании в рамках конвейера CI/CD выполняются различные типы тестов. К ним могут относиться:

🔸 Модульные тесты, которые проверяют, работают ли отдельные блоки кода должным образом.
🔸 Интеграционные тесты, проверяющие, как различные модули или службы в приложении работают вместе.
🔸 Регрессионное тестирование, которое позволяет убедиться, что старые ошибки больше не воспроизводятся, а старая функциональность работает, как и прежде.