728x90
테스트 피라미드
테스트의 기본 전제는 만드는 비용이 적고, 유지보수하기 쉽고, 빨리 실행되고, 안정적인 작은 크기의 테스트들에 대해 높은 커버리지를 유지해야 한다는 것이다. 이 테스트는 하나의 '단위'가 제대로 동작하는지 확인 할 수 있는 단위 테스트들이다.
테스트 피라미드가 위로 올라갈수록 비용이 더 비싸지고 실행이 느리며 깨기지 쉽다. 또, 새로운 기능을 만드는 것보다 테스트를 만드는 시간을 더 쓰게 된다. 테스트 피라미드는 테스트의 커버리지 목표를 낮게 잡아야 한다는 것을 의미한다. 맥락에 따라 테스트 피라미드에 포함되는 계층은 달라질 수 있다. '단위 테스트', '통합테스트', '시스템 테스트'의 정의는 맥락에 따라 다를 수 있다.
단위 테스트는 하나의 클래스를 인스턴스화하고 클래스의 인터페이스를 통해 기능들을 테스트한다.만약 클래스가 다른 클래스에 의존한다면 의존되는 클래스들은 인스턴스화하지 않고 테스트하는 동안 필요한 작업들을 흉내내는 목 객체로 대체한다.
통합 테스트는 연결된 여러 유닛을 인스턴스화 하고 시작점이 되는 클래스의 인터페이스로 데이터를 보낸 후 유닛들의 네트워크가 기대한 대로 잘 동작하는지 검증한다. 두 계층 간의 경계를 걸쳐서 테스트 할 수 있기 때문에 객체 네트워크가 완전하지 않은 시점에서는 목 객체로 대체 할 수 있다.
시스템 테스트는 어플리케이션을 구성하는 모든 객체 네트워크를 가동시켜 특정 유스케이스가 전 계층에서 잘 작동하는지 검증한다. UI를 포함한 엔드 투 엔드 테스트 층이 있을 수 있다.
728x90
'Theory > Architecture' 카테고리의 다른 글
애플리케이션 조립하기 (0) | 2022.07.10 |
---|---|
경계 간 매핑하기 (0) | 2022.07.09 |
영속성 어댑터 구현하기 (0) | 2022.07.02 |
웹 어댑터 구현하기 (0) | 2022.06.29 |
유스케이스 작성하기 (0) | 2022.06.21 |
댓글