Сегодня проблема ручного выполнения процессов тестирования является одной из актуальных из-за обнаружения многих ошибок на этапе внедрения.
В данной публикации предлагается подход к автоматизации тестирования OpenStack, который поможет увеличению качества и скорости разработки программного обеспечения на базе OpenStack, а также уменьшению времени внедрения IT продуктов.
В начале описывается сам процесс автоматизации со схемами и диаграммами. После описания процесса рассмотрены инструменты, которые предназначены для автоматизации тестирования OpenStack.
Построение процесса автоматизации тестирования OpenStack
Данный подход построен на основе непрерывного тестирования в рамках непрерывной поставки ПО. Непрерывное тестирование позволяет стабилизировать и улучшить качество кода. Т.к. любое приложение начинается с разработки, то необходимо внедрять полноценное тестирование в циклы разработки.
Этапы:
- Разработчик делает изменение;
- В данном изменении системой контроля версий проверяется синтаксис кода;
- Изменение попадает в ветку разработчика;
- Запускается процесс тестирования на CHECK окружении:
- Разворачивание окружения
- Deploy
- Запуск тестов на проверку синтаксиса кода
- Запуск unit тестов
- Удаление окружения
- Создание запроса к слиянию в основную ветку проекта;
- Изменение попадает в основную ветку системы контроля версий;
- Запускается процесс тестирования на DEV окружении
- Deploy на DEVELOPMENT окружение
- Запуск unit тестов
- Запуск приемочных тестов для нового функционала
- Запуск smoke тестов
- При готовности всего необходимого функционала
- Создание новой версии ПО
- Запускается процесс тестирования на QA окружении
- Deploy на QA окружение
- Параллельная проверка нового функционала инженером по обеспечению качества
- Запуск тестов на проверку инфраструктуры окружения
- Запуск функциональных тестов
- Запуск нагрузочных тестов
- Запуск процесса внедрения новой версии в PRODUCTION окружение
- Deploy на боевое окружение
- Запуск тестов на проверку основного функционала
Схема 1. Процесс автоматизации тестирования OpenStack
Рис.1. Общая диаграмма деятельности процесса автоматизации тестирования OpenStack
Рис.2. Диаграмма деятельности первого pipeline для тестирования на CHECK и DEV окружениях
Рис.3. Диаграмма деятельности второго pipeline для тестирования на QA и развертывания на PRODUCTION окружении
Рис.4. Общая диаграмма последовательности процесса автоматизации тестирования OpenStack
Шаги при неуспешности выполнения одного из этапов тестирования
Прохождение этапов тестирования не гарантирует немедленного успешного результата, т.к. бывает некорректно реализован новый функционал или когда новое изменение повлияло на работу другого функционала ПО. Для более быстрого решения возникших проблем рекомендуется использовать систему уведомлений, а желательно несколько.
В предложенном, в данной работе, методе автоматизации процесса тестирования предлагается использовать следующие способы уведомления:
- через рабочую электронную почту;
- через мессенджер;
Так же кроме использования системы уведомлений будет эффективным применение системы управления задачами, где в автоматическом режиме будет создание задачи об ошибке, если ошибка найдена на этапе проверки ПО на QA окружении, и переоткрытие задачи по новому функционалу на разработчика, если ошибка найдена включительно до этапа проверки функционала на DEV окружении.
Инструментарий
Для автоматизации процесса тестирования OpenStack можно использовать разные инструменты, но после проведения анализа были выявлены следующие инструменты:
Приведенные выше инструменты рекомендованы к построению процесса автоматизации тестирования OpenStack.
Публикация получилась весьма громоздкая, но надеюсь статья поможет кому-либо. В следующей публикации буду описывать пример использования данного подхода в Jenkins CI с детальным руководством по интеграции приведенных выше инструментов.
Автор: Ilusa