인수 테스트, 기능 테스트, Cucumber 테스트, TDD 테스트, BDD 테스트, 컴포넌트 테스트 등등 테스트 종류가 많다.
But 아키텍처 관점에서의 테스트는 모두 동일하다.
시스템 컴포넌트인 테스트
- 테스트는 의존성 규칙을 따른다.
- 테스트는 독립적으로 배포 가능하다. - 테스트는 테스트 시스템에만 배포하며 상용 시스템에는 배포하지 않는다.
- 테스트는 시스템 컴포넌트 중에서 가장 고립되어 있다. - 테스트의 역할은 운영이아니라 개발을 지원한다.
깨지기 쉬운 테스트 문제 Fragile Tests Problem
시스템에 강하게 결합된 테스트라면 시스템이 변경될 때 함께 변경되어야 한다.
시스템의 공통 컴포넌트가 변경되면 수천개의 테스트가 망가진다.
-> 테스트를 고려해서 설계해야 한다.
-> 시스템과 테스트를 설계할 때 GUI를 사용하지 않고 업무 규칙을 테스트할 수 있어야 한다.
테스트 API
- 목표: 테스트 구조를 애플리케이션 구조로부터 분리한다.
- 보안 제약사항을 무시할 수 있으며, 데이터베이스 같은 값비싼 자원은 건너뛰고 시스템을 테스트 가능한 상태로 강제해야 한다.
728x90
반응형
'클린아키텍처' 카테고리의 다른 글
[클린아키텍처] 30장 ~ 32장 데이터베이스, 웹, 프레임워크는 세부사항이다, 33장 사례 연구 (0) | 2022.03.20 |
---|---|
[클린아키텍처] 29장 클린 임베디드 아키텍처 (0) | 2022.03.19 |
[클린아키텍처] 26장 메인 컴포넌트, 27장 크고 작은 모든 서비스들 (0) | 2022.03.16 |
[클린아키텍처] 23장 프레젠터와 험블 객체, 24장 부분적 경계, 25장 계층과 경계 (0) | 2022.03.13 |
[클린아키텍처] 21장 소리치는 아키텍처, 22장 클린 아키텍처 (0) | 2022.03.12 |
댓글