본문 바로가기
클린아키텍처

[클린아키텍처] 28장 테스트 경계

by bzerome240 2022. 3. 19.

인수 테스트, 기능 테스트, Cucumber 테스트, TDD 테스트, BDD 테스트, 컴포넌트 테스트 등등 테스트 종류가 많다.

But 아키텍처 관점에서의 테스트는 모두 동일하다. 

 

 

시스템 컴포넌트인 테스트

  • 테스트는 의존성 규칙을 따른다.
  • 테스트는 독립적으로 배포 가능하다. - 테스트는 테스트 시스템에만 배포하며 상용 시스템에는 배포하지 않는다.
  • 테스트는 시스템 컴포넌트 중에서 가장 고립되어 있다. - 테스트의 역할은 운영이아니라 개발을 지원한다.

 

깨지기 쉬운 테스트 문제 Fragile Tests Problem

시스템에 강하게 결합된 테스트라면 시스템이 변경될 때 함께 변경되어야 한다.

시스템의 공통 컴포넌트가 변경되면 수천개의 테스트가 망가진다.

-> 테스트를 고려해서 설계해야 한다.

-> 시스템과 테스트를 설계할 때 GUI를 사용하지 않고 업무 규칙을 테스트할 수 있어야 한다.

 

 

테스트 API

  • 목표: 테스트 구조를 애플리케이션 구조로부터 분리한다.
  • 보안 제약사항을 무시할 수 있으며, 데이터베이스 같은 값비싼 자원은 건너뛰고 시스템을 테스트 가능한 상태로 강제해야 한다.

 

728x90
반응형

댓글