The RED : TDD
테스트 주도 설계?
테스트 주도 설계라는 말을 사용하려면 TDD를 하게 되면 좋은 설계가 되어야 하는데 그렇지 않다.
- 단위 테스트는 책임 분산을 유도하지 않는다.
- 낮은 응집에 대한 피드백을 주지 않는다.
- 의도 노출을 요구하지 않는다.
설계 관점에서는 TDD에서 힌트는 얻을 수 있지만 해결책은 아니라는 생각이 들었다. 양질의 경험과 함께 DDD, MSA를 학습하면 좋은 설계를 만들 수 있지 않을까 라는 생각을 했다.
테스트 주도 개발의 한계
은탄환은 없다.
브레드 브룩스의 논문에 다오는 내용으로 소프트웨어 프로젝트에 은총알이란 없다는 뜻이다.
TDD 역시 좋은 개발 방법론이지만 모든 것을 해결해 주지는 않는다.
테스트가 힘든 경우
- 예측하기 어려운 코드(랜덤값, 동시성 문제 등등)
- 시간이 오래 걸리는 코드
이번기회에 랜덤 값의 경우 이규원 님이 만든 AutoParams 라는 것을 사용해봐야겠다는 생각을 했다.
테스트 시간이 오래걸려 해결하기 위한 고민을 많이 했었다. 그 당시에는 스프링 컨텍스트를 많이 사용해서 슬라이스 테스트, 단위 테스트를 활용해서 시간을 줄였는데, 하나의 단위가 테스트가 오래 걸릴 경우 어떻게 처리할지는 좀 더 고민해봐야 할 것 같다.
'TIL' 카테고리의 다른 글
2022/01/30 TIL (0) | 2022.01.31 |
---|---|
2022/01/29 TIL (0) | 2022.01.30 |
2022/01/27 TIL (0) | 2022.01.28 |
2022/01/26 TIL (0) | 2022.01.27 |
2022/01/25 TIL (0) | 2022.01.25 |