마이크로서비스란 '독립적으로 배포 가능한 서비스들의 묶음으로 소프트웨어 애플리케이션을 설계하는 방법'을 말합니다. 마이크로 서비스 아키텍쳐 스타일은 작은 서비스들의 집합으로써 애플리케이션을 개발하는 방법이라고 할 수 있습니다. 마이크로서비스 아키텍처의 각 서비스는 서로 분리되어 비동기적으로 동작하게 되고, 이로 인해 런타임 환경에서 마이크로서비스간의 상호작용을 테스트하기는 매우 까다롭습니다.
Contract Testing은 이러한 상호작용을 테스트하기 위해 사용하는 방법으로, 서비스가 다른 서비스와 커뮤니케이션할 수 있는가를 보장합니다. 비용이 크고 취약한 integration 테스트보다 더욱 뛰어난 방법으로 커뮤니케이션이 필요한 두 서비스 사이라면 어느 곳에서나 즉시 적용할 수 있습니다.
마틴 파울러는 Testing Strategies in a Microservice Architecture에서 아래와 같이 테스트를 실시하여 각 서비스의 초기단계에서 최대한 Coverage를 높이고, End-to-End 테스트는 최소화하는 전략을 제시했습니다. Unit > Integration > Component > Contract > End-to-End 순으로 테스트를 진행하여 까다로운 End-to-End 테스를 최소화하는 것입니다.
'Software Test > Contract Test In Microservice' 카테고리의 다른 글
Contract Test using Postman (0) | 2020.06.07 |
---|---|
1. Contract Test? (0) | 2020.06.07 |
댓글