Refactoring (리펙토링)
[Refactoring] 4. 테스트 구축하기 (테스트 코드가 중요한 이유)
jake-kim
2023. 1. 19. 20:11
테스트 코드가 개발 효율을 높여주는 이유?
- 테스트 코드는 디버깅하는데 시간을 줄여줌
- 개발자는 보통 실제로 코드를 작성, 설계하는 시간의 비중은 그리 크지 않고, 대부분의 시간은 디버깅에 소요
- 버그 자체를 수정하는데는 오랜 시간이 걸리지 않지만, 버그를 찾는데 오랜 시간이 소요
- 테스트 코드를 짠 경우 > 버그를 찾을려고 일일이 디버깅하지 않아도, 테스트 코드에 걸리게 되어 쉽게 잘못된 곳이 어디인지 파악이 가능
테스트 코드가 시간이 걸린다는 주장의 이유?
- 테스트 코드를 작성하려면 부가적인 코드를 상당량 작성해야 하는데, 실제로 테스트가 프로그래밍 속도를 높여주는 경험을 하지 않았기 때문에 시간이 걸린다고 느낄 수 있음
- 테스트 코드의 목적은 디버깅하는 시간을 줄여주는 것이므로, 그 관점에서 생각한다면 테스트 코드는 효율적인 수단이 될 것
테스트 코드가 주는 이점
- 버그에 대한 디버깅 시간이 단축
- 테스트를 작성하기 가장 좋은 시점은 코딩을 시작하기 전이고, 이 때 구현체보다는 인터페이스에 집중하게 되는 장점이 존재
- 코딩이 완료되는 시점을 정확하게 판단이 가능 (완료 시점 = 테스트를 모두 통과한 시점)
- 코드를 리펙토링할 때, 해당 코드가 잘 동작하는지 알려면 테스트 코드가 존재해야 검증이 가능하므로 곧 리펙토링 하기 위해선 테스트 코드가 필요
cf) TDD(Test Driven Development)
- 아래의 짧은 주기 반복
- 처음에는 통과하지 못할 테스트 작성 > 이 테스트를 통과하게끔 코딩 > 결과 코드를 최대히 깔끔하게 리펙토링하는 과정
* 테스트 코드 관련 코드는 비동기 테스트 방법 포스팅 글 참고
* 참고
- Refactoring (Marting Flowler)