b

Effective Unit Testing / 한빛미디어 본문

life/book

Effective Unit Testing / 한빛미디어

dev.bistro 2014. 10. 27. 00:21



제목만으로도 이 책은 선택할만한 가치를 가지고 있다. Effective로 시작하는 책들이 가진 무게감이며, 그간의 경험을 통해서 알고 있기 때문이다.

크게 3부분으로 나누고 있다.
Part1에서는 이 책이 말하고자 하는 '좋은 테스트 코드'를 이해하기 위한 기본을 설명해주고 
Part2에서는 샘플코드-개선방법-결과 3단계로서 반복적으로 실 사례를 보여주며,
Part3에서는 좀 더 고급화된 소주제들과 팁들을 공유해주고 있다.

시작부터 중요한 얘기를 들려준다
100퍼센트의 코드 커버리지는 좋겠지만 실제로 중요한 것은 아니라는 점. 어느 점이 지나가면 테스트를 작성하는 비용대비 이점이 거의 없어진다는 얘기를 들려준다. 가장 중요한 제품 코드의 테스트 코드를 먼저 작성하며, 뒤로 갈수록 중요도가 하락하거나, 코드 커버리지를 위한 의미없는 테스트 코드가 작성되기 떄문이다.

이러한 테스트코드의 가치를 유지하는 방법은 제품의 품질을 위한 테스트코드 작성이 아니라, 설계를 위한 테스트코드 작성을 하라 조언해주고 있다. 하지만 이 부분이 말은 쉽다. '실패하는 코드를 작성하고 그걸 왜 완성시켜야 하지? 처음부터 잘 짜여진 코드를 작성하면 되지' 라고 생각하는 많은 개발자 들이 품질관리용에서 설계목표로 넘어가지 못한다. 
(나 역시 너무나도 당연한 '실패 테스트'에서 시작하라는거에 반감이...-ㅇ-)

여튼, 이러한 테스트코드는 제품코드 만큼 중요하다.  품질검증과 설계목적인 테스트코드 역시 제품을 만들어가는데 중요한 요소이며, 이를 관리하는 리소스역시 일정에 포함된다. 좋은 테스트코드가 필요한 이유이다. "어쩌면" 당연한 내용을 2부에 걸쳐서 예제로 보여준다. "당연하지만" 당연하게 하지 않는 것들이다. 그냥 쭉 읽으니 감동이 느껴지지 않아서 만들고 있던 specs2 code들을 대입해보며 읽으니 좀 더 느낌이 왔다.

이후 생각치도 못한 아이디어도 3부에서 얻게되었다.
java로 프로젝트를 진행할 때는 java-junit을... scala 프로젝트에는 specs2로 테스트코드를 작성하였는데, 생각의 전환을 일꺠워 줬다. 왜 groovy를 여기에 쓸 생각을 못했지?


정리하며...
흔히 말하는 TDD를 위한 책은 아니다. 그 부분은 1부에서 잠깐 소개되며, 친절하게도 다른 래퍼런스들을 소개해준다. 이 책은 TDD를 위한 '좋은 테스트 코드를 작성하는 방법'을 위한 책이다.  초급자를 위한 책은 아니며, 어느 정도 테스트 코드의 중요성을 알고있는 사용자에게 적합한 책이라 생각된다. 

책은 300페이지 정도로 결코 두껍지는 않다. 2부가 지겹다면 과감히 스킵하고 1부만을 봐도 좋을듯 하다.
1부를 보고 엉망인 테스트 코드를 직접 적용해나가도 보면 2부의 케이스를 찾아보며 적용하게 될것이다.


링크 : http://www.hanbit.co.kr/book/look.html?isbn=978-89-6848-062-1



Comments