다년간 여러 회사의 크고 작은 프로젝트를 참여하면서 만났던 개발자 중 대다수는 테스트 코드를 작성하는 것을 귀찮아 하고 싫어했었다. 나조차 바쁜 일정에 쫓겨 테스트는 우선순위에 있어 항상 뒤로 미루기 일쑤였다. 프로젝트 초기에 의욕적으로 작성하다가도 프로젝트 막바지에 달했을 때 기존에 있던 테스트 코드를 삭제하는 동료도 종종 봤다. 테스트를 작성하지 않고 이후에 운영 환경에서 커다란 장애를 맞거나 데이터 정합성이 깨져 데이터 복구하는데 고군분투했던 경험이 개발자라면 한 번씩 있었을 것이다.
이 책을 통해 저자는 독자의 입장에서 실무적인 환경에 입각해 독자의 공감을 얻고 이해하는데 도움이 되도록 공을 들였다. 수많은 테스트 관련 책들이 테스트의 본질에 접근했다면, 이 책은 맹목적인 테스트 노력에서 벗어나 실용적인 테스트 구성에 대한 방법론으로 접근한다. 클린 아키텍처 등 자칫 이론으로만 치부할 수 있는 내용을 실무에서 접했을 만한 예제로 어떻게 구성할 수 있는지, 그리고 이 합리적인 구성이 어떻게 테스트를 효과적으로 작성하고 유지할 수 있는지를 하나씩 톺아볼 수 있다. 또한 저자가 생각하는 바를 수학적 접근으로 증명하려는 과정에서 저자의 노력이 돋보인다.
이 책을 읽고 이론에 머물지 않고 실천함으로써, 공학적인 사고로 합리적인 테스트를 작성해서, 독자들이 만드는 소프트웨어의 품질과 생산성이 좋아지고, 더 나아가 소프트웨어 산업의 수준을 한 층 더 높일 수 있기를 기대한다.