Среда «песочницы» позволяет версиям ветвей взаимодействовать со службами из магистральной/главной версии, что позволяет проводить более реалистичное интеграционное тестирование, чем моделирование.
Переведено с Why Your Microservice Integration Tests Miss Real Problems,Арджун Айер.
В последней сборкемикросервисы В ходе расследования, проведенного нашей инженерной командойbuilding microservices,Выявилась поразительная закономерность: хотя большинство команд понимали важность,Но большинство команд пропускают Служитьвсеобъемлющий уровень Интегрированный тест тест. Дело не в том, что инженеры не ценят тесты — как раз наоборот. Кто настоящий виновник? В распределенной Сложность реализации мощной интегрированной стратегии тестирования в системе может быть огромной.
Как человек, который годами создавал инструменты для разработчиков и работал с командами инженеров, я своими глазами видел, как эта задача влияет на скорость и надежность. Затраты заключаются не только в потенциальных проблемах в производстве, но и в том, что команды тратят бесчисленные часы на отладку проблем интеграции, которые могли быть обнаружены раньше.
Рассмотрим типичныйМикросервисная среда。Ваша команда только что реализовала проект, охватывающий несколько Служитьновые возможности。перед слиянием,Вы хотите убедиться, что он правильно работает со своими зависимостями (базами данных, очередями сообщений и другими). звучит просто,Верно?
Вот как все становится беспорядок.
Традиционные методы интеграционного тестирования часто включают создание сложных сетей имитации зависимостей. Обычно команды идут по одному из двух путей:
Приведенная выше диаграмма иллюстрирует сложность традиционного подхода к интеграционному тестированию, когда каждую зависимость необходимо моделировать в среде CI.
Эти методы дают отличные результаты:
Если мы не с распределенной системаборюсь со сложностью,Но прими это?Этопесочницаконцепция,Облегченная среда обеспечивает интеграцию в «канареечном стиле».
На диаграмме выше показано, как среда «песочницы» обеспечивает реальное интеграционное тестирование, позволяя версиям ветвей взаимодействовать с магистральной/основной версией службы.
Вот как это работает:
Этот подход, который мы реализовали в Signadot, решает основные проблемы традиционного интеграционного тестирования:
Одним из наиболее мощных аспектов этого подхода является возможность проведения комплексного сравнительного тестирования. Запуская тесты для разветвленных и базовых версий службы, команды могут автоматически обнаруживать различные проблемы:
Это AI и области, где машинное обучение показывает свой истинный потенциал. Синадот Недавно запущенный SmartTests Использование функции AI Модель изучает базовое поведение сервиса и автоматически выявляет существенные отклонения.
Эта система, основанная на сравнении, может:
Преимуществом этого подхода является его масштабируемость. Команды могут накладывать дополнительные варианты использования для сравнения поверх основы. Если вы заинтересованы в сравнении ответов API, анализе показателей производительности или мониторинге моделей использования ресурсов, инфраструктура песочницы обеспечивает идеальную основу для такого сложного сравнительного тестирования.
помнить,Цель состоит не только в том, чтобы тестировать больше, но и в том, чтобы тестировать умнее. В современном мире распределенных систем,Это означает принятиеСпособы масштабирования вместе с вашей архитектурой,И предоставляйте разработчикам содержательную обратную связь, когда они в ней больше всего нуждаются.