Тестирование монолита сфокусировано на тестировании единого, большого приложения. Основные уровни тестирования: компонентное (модульное, если доступен код), интеграционное (внутри монолита и с внешними зависимостями) и системное (сквозное). Инструменты и подходы более стандартны.
Тестирование архитектуры веб-сервисов (например, микросервисов) сложнее и требует иного подхода:
Таблица сравнения:
| Критерий | Монолитный бэкенд | Архитектура веб-сервисов (Микросервисы) |
|---|---|---|
| Размер системы | Единое большое приложение | Множество небольших, независимых сервисов |
| Взаимодействие | Внутри одного приложения, с внешними зависимостями | Между сервисами (по сети), с внешними зависимостями |
| Основной фокус | Внутренняя логика, интеграция компонентов | Взаимодействие сервисов, контракты, отказоустойчивость |
| Сложность окружения | Относительно низкая | Высокая (управление множеством развертываний) |
| Key Testing Types | Unit, Integration (внутри), System | Unit, Component, Integration (между сервисами), End-to-End, Contract, Resiliency |
| Инструменты | Стандартные фреймворки для тестирования | Специализированные для API, распределенных систем |