테스트 피라미드
층의 너비: 테스트 스위트에서 해당 테스트가 얼마나 보편적인지를 나타낸다.
층의 높이: 최종 사용자의 동작을 얼마나 유사하게 흉내내는지 나타낸다.
상단은 회귀 방지에 유리한 반면, 하단은 실행 속도를 강조한다.
테스트 유형 간의 정확한 비율은 각 팀과 프로젝트마다 다를 것이다.
그러나 일반적으로 피라미드 형태를 유지해야 한다.
엔드 투 엔드 테스트가 적어야하는 이유는 회귀 방지, 리팩터링 내성, 빠른 피드백의 곱셈 규칙에 있다.
엔드 투 엔드 테스트는 빠른 피드백 지표에서 매우 낮은 점수를 받기 때문이다. 또한 유지 보수성이 결여되어 있다.
블랙박스 테스트 vs 화이트박스 테스트
블랙박스 테스트: 시스템의 내부 구조를 몰라도 시스템의 기능을 검사할 수 있는 소프트웨어 테스트 방법이다. 일반적으로 명세와 요구 사항, 즉 애플리케이션이 어떻게 해야 하는지가 아니라 무엇을 해야 하는지를 중심으로 구축된다.
화이트박스 테스트: 애플리케이션의 내부 작업을 검증하는 테스트 방식이며, 테스트는 요구 사항이나 명세가 아닌 소스 코드에서 파생된다.
화이트박스 테스트 특징
- 소스 코드를 분석하면 외부 명세에만 의존할 때 놓칠 수 있는 많은 오류를 발견할 수 있다.
- 테스트 대상 코드의 특정 구현과 결합돼 있기 때문에 깨지기 쉽다.
- 거짓 양성을 많이 내고 리팩터링 내성 지표가 부족하다.
- 비즈니스 담당자에게 의미있게 보이지 않는데, 이는 화이트박스 테스트가 취약하고 큰 가치가 없음을 증명하는 것이다.
화이트박스 테스트 대신 블랙박스 테스트를 기본으로 선택하라.
테스트를 작성할 때는 블랙박스 테스트가 바람직하지만, 테스트를 분석할 때는 화이트박스 방법을 사용할 수 있다.
코드 커버리지 도구를 사용해서 어떤 코드 분기를 실행하지 않았는지 확인한 다음 코드 내부 구조에 대해 전혀 모르는 것처럼 테스트하라.
'독서찰기(讀書札記) > 단위 테스트' 카테고리의 다른 글
함수형 아키텍처 (0) | 2023.03.10 |
---|---|
단위 테스트 스타일 (0) | 2023.03.10 |
이상적인 테스트를 찾아서 (0) | 2023.02.21 |
회귀 방지와 리팩터링 내성의 관계 (0) | 2023.02.21 |
좋은 단위 테스트의 4대 요소 (0) | 2023.02.21 |