[xUnit 테스트 패턴] 17장 - 프로젝트 냄새
17장 - 프로젝트 냄새
버그투성이 테스트
증상 : 버그투성이 테스트
- 테스트에 버그가 있어 제품 코드의 에러를 잡아내지 못했다.
미치는 영향 : 버그투성이 테스트
- 테스트에 대한 신뢰가 떨어진다.
- 테스트 경고를 무시하게 된다.
원인 : 버그투성이 테스트
- 깨지기 쉬운 테스트
- 인터페이스에 민감함, 동작에 민감함, 데이터에 민감함, 문맥에 민감함으로 발생
- 애매한 테스트
- 테스트하기 힘든 코드
해결 패턴 : 버그투성이 테스트
- 테스트를 적절하게 작성하는 방법 배우기
- 리팩토링
- 테스트 먼저 작성하기
테스트를 작성하지 않는 개발자
증상 : 테스트를 작성하지 않는 개발자
미치는 영향 : 테스트를 작성하지 않는 개발자
원인 : 테스트를 작성하지 않는 개발자
- 부족한 시간
- 테스트하기 힘든 코드
- 잘못된 테스트 자동화 전략
문제 해결을 위한 조언 : 테스트를 작성하지 않는 개발자
높은 테스트 유지 비용
증상 : 높은 테스트 유지 비용
- 깨지시 쉬운 테스트
- 꺠지시 쉬운 픽스처
- 변덕 스러운 테스트
미치는 영향 : 높은 테스트 유지 비용
원인 : 높은 테스트 유지 비용
- 깨지기 쉬운 테스트
- 애매한 테스트
- 테스트하기 힘든 코드
문제 해결을 위한 조언 : 높은 테스트 유지 비용
- 개발 속도를 조절하고
테스트 리팩토링 스토리
기간을 만들어야 한다.
제품 버그
- 공식 테스트나 제품에서 버그가 너무 많이 나온다.
미치는 영향 : 제품 버그
원인 : 제품 버그
- 드문 테스트 실행
- 테스트 안 된 코드
- 원인 : DOC를 동기적으로 호출하고, DOC는 특정 값을 리턴하거나 예외 발생 시
- 놓친 테스트
- 빠진 단위 테스트
- 증상 : 단위 테스트는 전부 통과하는데 고객 테스트는 실패
- 테스트 안 된 요구 사항
- 증상 : 테스트 주고 개발 도중 요구 사항을 처리하기 위한 코드 추가 시 발생
- 근본 원인 :
부수효과
같은 간접 출력에서 발생
- 해결책
- 충분한 고객 테스트
- 비즈니스 로직 레이어에서 프레젠테이션 레이러 분라
- 모의 객체로 동작 검증
- 절대 실패하지 않는 테스트