В этой статье мы продолжим знакомство с микросервисной архитектурой разработки приложений и повторим основные этапы разработки и тестирования приложений с применением автотестов.
За последнее время произошли значительные изменения техник автоматизации инфраструктуры, упростившие операции построения, разворачивания и функционирования приложений с микросервисной архитектурой.
За счет чего произошли такие изменения? В соответствии с уровнями тестирования, микросервис автоматически разворачивается в тестовом окружении своего уровня:
- тест компиляции приложения, т.е. перевод программного кода из текстового формата в машинный исполняемый код, затем модульное и функциональное тестирование проводятся на тестовом окружении на компьютере разработчика приложения. Это логично: где программа написана, там же проверяется компиляция и функциональность программного модуля;
- приемочное тестирование модуля производится на виртуальной машине разработчика по удаленному доступу к компьютеру. При этом модуль разворачивается в виртуальной среде. Если внутренняя приемка модуля состоялась, далее переходим к интеграционному тестированию;
- интеграционное тестирование происходит в специальной среде для тестирования интеграции, где модуль так же разворачивается автоматически;
- пользовательское приемочное тестирование происходит при автоматическом развертывании микросервиса в промежуточной среде, чтобы основные пользователи могли протестировать его функции до того, как микросервис попадет в производственную среду;
- тестирование производительности производится после автоматического разворачивания микросервиса в специальном окружении для тестирования производительности;
- автоматическое развертывание в производственной среде.
Как Вы уже заметили, все операции, развертывание и тестирование, производятся автоматически. Организовано это с помощью технологий непрерывной доставки и непрерывной интеграции.
Непрерывная доставка Continuous Delivery обеспечивает возможность непрерывного развертывания в любой момент времени. Выполняется эта операция нажатием одной кнопки, т.к. все операции автоматизированы. В современной архитектуре микросервисных приложений могут проводиться сотни развертываний сервисов в день. Автоматическая доставка и развертывание существенно экономят время команде разработчиков и тестировщиков.
Непрерывная интеграция Continuous Integration является еще одной техникой автоматизации инфраструктуры, при которой каждый разработчик, работающий над отдельным микросервисом, выкладывает свой модуль в интеграционную среду один или несколько раз в день. Каждый раз, когда обновленный модуль попадает в тестовую среду, запускаются автотесты для проверки интеграции его с другими модулями. Непрерывная интеграция позволяет быстро обнаружить и исправить ошибки. В этом ее большое преимущество перед ранее применявшимся подходом. Теперь проверка интеграции превратилась в рутинную операцию благодаря автоматизации всего процесса.
Подпишитесь, чтобы узнать больше о работе тестировщика в продуктовой компании, о значимых для тестировщика процессах.