이직 텀 동안 국내 / 해외 여행을 계획했는데, 비행기와 다양한 지역의 카페에서 여유있게 읽게 되었습니다.
어떤 책인가?
블라디미르 코리코프가 작성한 책이며, 단위 테스트에 대한 내용을 넘어서 어떻게 '잘' 테스트 할 것인가에 대한 내용을 담고 있습니다. 이 분의 블로그도 아주 알찬 내용이 많은 것 같습니다.
그래서 생각했던 것 보다 디테일한 예제는 많지 않고, 개념을 정리하고 간단한 예제들을 보여주는 식의 전개입니다.
간략하게 어떤 내용들을 담고 있는가를 살펴보면 다음과 같습니다.
테스트가 왜 중요한가?
테스트를 왜 잘 만들어야 하는가?
테스트를 어떻게 해야하는가?
단위테스트를 어떻게 만들어야 하는가?
통합테스트를 어떻게 만들어야 하는가?
서평
이 책을 읽는 시점이 지금보다 가장 좋은 순간은 없었을 것 같습니다.
이전 회사에서 어마어마한 레거시 코드와 싸우며 테스트와 관련된 수많은 이슈를 마주했었기 때문인데요,
테스트 커버리지 20%
@Disabled 처리된 수많은 통합 테스트
무분별한 mocking
알아보기 힘든 테스트
SpringBootTest로 인한 너무 느린 테스트
2년 이상 활발하게 개발되고 있는 프로젝트였으며 꽤나 코드의 볼륨이 컸습니다. 그래서 기능 추가나 변경 하나하나가 두려움의 연속이었고, 일일이 관련된 사이드 이팩트들을 확인해야 했기 때문에 cost 와 risk 가 함께 기하급수적으로 올라가는 불행한 상황이었던 것 같습니다.
그래서 항상 해당 프로젝트에서 테스트를 어떻게 뜯어고치는지가 항상 고민거리였습니다.
이런저런 방법들을 고민해서 테스트 방식들을 도입하고, 결국 코드 베이스까지 다시 점진적으로 리팩토링하는 하는 형태로 다가갔는데 추상적인 접근 방법으로는 시행착오가 너무 많았고 한계가 있었습니다. (물론 많은 것을 배우는 시간이었지만요)