20.11.2020

Мастеркласс "CDC тесты в микросервисной архитектуре" на конференции ArchDays 2020

Трудозатраты на тесты контрактов и end-to-end тесты в долгосрочной перспективе
Если вы уже работаете с микросервисами, то наверняка задавались вопросом чем тестирование в микросервисной архитектуре отличается от привычного классического подхода. Так же наверняка вы сталкивались с проблемой нарушения контрактов между сервисами, бэкендом или фронтендом, что приводило систему в не рабочее состояние. И это ожидаемо так как каждый сервис разрабатывается в разных командах, контракт легко сломать.

В классическом подходе, эту проблему решают end-to-end тестами, но в распределенной системе, написание таких тестов крайне дорогостоящее и малоэффективное занятие. В микросервисной архитектуре предпочтительно применять CDC(тесты контрактов)+Component тесты.

На мастер классе я рассмотрел различные виды тестирования в MSA, затем более детально остановился на CDC тестах(тесты контрактов).

На примере взаимодействия нескольких приложений показано как организовать CDC тесты и встроить их в пайплайн CI/CD, тем самым добиться согласованность контрактов. В мастерклассе мы сломали контракты и проверили помогут нам тесты или нет...

К сожалению код плохо виден на видео(, но основная идея показана на слайдах в течение первых 30 минут.

Итоги

Тесты контрактов экономят время разработки за счет:
  • Предоставления очень быстрой обратной связи разработчикам и тестировщикам, это положительно влияет на скорость доставки программного обеспечения
  • Четко определяют, где проблема
  • Позволяют отлаживать ошибки тестирования локально на машине разработчика, а не полагаться на системные журналы.
  • Сокращения времени, затрачиваемого на ошибки тестирования, вызванные проблемами окружающей среды, а не ошибками интеграции
  • Обеспечение тестирования только тех частей API, которые будут фактически использоваться

Контрактные тесты экономят время и ресурсы вычислений за счет:
  • сокращения количества или даже исключение тестов, которые необходимо запускать в развернутой среде
  • выполняются быстрее, чем интеграционные тесты, которые они заменяют
Эта и другие темы подробно рассмотрены в моем обучающем курсе.

Понравилась статья? Поделитесь в соцсетях!