-
4. 좋은 단위 테스트의 4대 요소개발 도서/Unit Testing 2024. 6. 14. 22:42
4.1~4.4 좋은 단위 테스트의 4대 요소
회귀 방지
- 테스트가 얼마나 버그(회귀)를 잘 찾아내는지에 대한 척도로, 테스트가 코드를 많이 실행할 수록 증가하는 경향이 있다.
리팩토링 내성
- 거짓 양성을 내지 않고 애플리케이션 코드 리팩토링을 할 수 있는 정도를 의미한다.
- 거짓 양성은 허위 경보이다. 테스트는 실패하지만 기능은 문제가 없는 상태를 말한다.
빠른 피드백
- 테스트가 얼마나 빨리 실행되는지에 대한 척도이다.
유지 보수성 - 테스트 이해 난이도 : 테스트가 작을 수록 읽기 쉽다.
- 테스트 실행 난이도 : 테스트에 관련된 프로세스 외부 의존성은 적을수록 쉽게 운영할 수 있다.
회귀 방지 - 리팩토링 내성 - 빠른 피드백은 서로 상호 베타적인 존재이다.
테스트는 세가지 특성 중 두가지만 최대화할 수 있다.
- 리팩토링 내성은 타협할 수 없다. 내성을 갖고 있거나, 없거나 둘 중 하나이기 때문이다.
- 때문에 리팩토링 내성은 반드시 가져가야 하며, 회귀 방지와 빠른 피드백 사이의 선택으로 귀결된다.
4.5 대중적인 테스트 자동화 개념
테스트 피라미드는 단위 테스트, 통합 테스트, 엔드 투 엔드 테스트의 일정한 비율을 일컫는다.
피라미드에서는 테스트 유형마다 빠른 피드백과 회귀 방지 사이에서 다른 선택을 한다.
엔드 투 엔드 테스트는 회귀 방지를 선호하는데 반해, 단위 테스트는 빠른 피드백을 선호한다. 통합 테스트는 그 사이에 위치한다.블랙 박스 테스트
- 시스템의 내부 구조를 몰라도 시스템의 기능을 점검할 수 있는 테스트 기법
- 명세와 요구 사항을 중심으로 구축된다.
화이트 박스 테스트
- 시스템의 내부 작업을 검증하는 테스트 기법
- 소스 코드를 중심으로 구축된다.
- 위의 이유로 리팩토링 내성을 챙기기 어려운 단점이 있다.
테스트를 통해 비즈니스 요구 사항으로 거슬러 올라갈 수 없다면, 테스트가 깨지기 쉬움을 의미한다. 그 테스트를 재구성 하거나 테스트 스위트에서 삭제하라.
모든 테스트를 블랙 박스로 보게 만들고, 테스트를 분석할 때 화이트 박스 기법을 사용하라.
즉 블랙 박스로 테스트를 구축하고, 화이트 박스 기법을 이용해 어떠한 코드 분기가 실행되지 않았는지 확인한 다음, 다시 블랙 박스 테스트를 보충하는 조합이 가장 효과적이다.위에서 말하는 화이트 박스 기법이란, Java의 Jacoco와 같은 코드 커버리지 도구와 동일한 역할이다.
'개발 도서 > Unit Testing' 카테고리의 다른 글
6. 단위 테스트 스타일 (0) 2024.06.18 5. 목과 테스트의 취약성 (0) 2024.06.17 3. 단위 테스트 구조 (0) 2024.06.04 2. 단위 테스트란 무엇인가 (0) 2024.06.03 1. 단위 테스트의 목표 (0) 2024.06.01