클린아키텍처
[클린아키텍처] 28장 테스트 경계
bzerome240
2022. 3. 19. 16:15
인수 테스트, 기능 테스트, Cucumber 테스트, TDD 테스트, BDD 테스트, 컴포넌트 테스트 등등 테스트 종류가 많다.
But 아키텍처 관점에서의 테스트는 모두 동일하다.
시스템 컴포넌트인 테스트
- 테스트는 의존성 규칙을 따른다.
- 테스트는 독립적으로 배포 가능하다. - 테스트는 테스트 시스템에만 배포하며 상용 시스템에는 배포하지 않는다.
- 테스트는 시스템 컴포넌트 중에서 가장 고립되어 있다. - 테스트의 역할은 운영이아니라 개발을 지원한다.
깨지기 쉬운 테스트 문제 Fragile Tests Problem
시스템에 강하게 결합된 테스트라면 시스템이 변경될 때 함께 변경되어야 한다.
시스템의 공통 컴포넌트가 변경되면 수천개의 테스트가 망가진다.
-> 테스트를 고려해서 설계해야 한다.
-> 시스템과 테스트를 설계할 때 GUI를 사용하지 않고 업무 규칙을 테스트할 수 있어야 한다.
테스트 API
- 목표: 테스트 구조를 애플리케이션 구조로부터 분리한다.
- 보안 제약사항을 무시할 수 있으며, 데이터베이스 같은 값비싼 자원은 건너뛰고 시스템을 테스트 가능한 상태로 강제해야 한다.
728x90
반응형