본문 바로가기

Book

[책] xUnit 테스트 패턴 - 에이콘


테스트에 대한 바이블이라고 할 정도로 1062쪽이나 되는 두껍고 무거운 책이다.

바이블 책들은 보통 소장용으로 (예. 비야네스트룹이 쓴 The C++ programming) 가지고 있지 끝까지 읽어 본 책은 김상형씨의 윈도우API정복 정도이다.

 왜냐하면 보통 레퍼런스 식으로 사전식으로 필요할 때에 찾아보거나 관심있는 주제를 읽는 식으로 구성이 되어 있기에 처음부터 정독한 다는 것은 국어사전이나 영어사전, 혹은 백과사전을 읽는 다는 것과 비슷하기 때문이다.


하지만 이 책은 처음에 과소평과 했던 것과는 달리 나름 짜임새 있고 정독을 할만한 책인 것 같다. 번역하신 박일 님 역시 나름 번역에 신경을 쓰셔서 보통 '원서를 보는게 차라리 나아요' 같은 원서지상주의에서 벗어날 수 있을 것 같다. 아직 158쪽(6장)까지 읽은 상황에서 미리 쓰는 것은 오타가 있어서 기록을 위함이다.


[정오표]

p.133 속성->특성 (p.135는 특성으로 번역)

p.152-153 그림 6.7에서는 '가짜 객체'라는 말로 썼고 그림 6.8에서는 '모의 객체'라는 말로 번역했다. 둘 다 Mock Objects로 동일한 것 같은데 일관되게 번역 요망.

p.159 xUint 기초 -> xUnit 기초 (오타)


[읽기 기록]

  1. 10/15 ~p.50
  2. 10/16 ~p.96
  3. 10/22 ~p.97
  4. 10/23 ~p.158
  5. 10/

[책 안에서]

p.149 테스트 나중 - 각오가 돼 있는가?

 기존 애플리케이션에 단위 테스트를 도입하려고 해본 사람이라면 누구든지 엄청 고생했을 것이다. 이것은 테스트 자도오하 중 가장 힘들 뿐만 아니라 생산성도 가장 낮다. 지동 테스트의 많은 장점이 소프트웨어의 '디버깅 단계'에서 가장 잘 드러난다. 이때 이런 테스트들은 디버깅 툴과 씨름하느라 보내는 시간을 줄여줄 수 있다.

p.150 테스트 주도 테스트 용이성

 테스트 주도로 소프트웨어를 개발하면 따로 테스트하기 쉽게 설계하지 않아도 된다는 점이 좋다. 그냥 테스트를 작성하다보면 어쩔 수 없이 테스트 용이성을 감안할 수밖에 없고 SUT가 제공해야 하는 제어 위치와 관찰 위치를 정의하게 된다. 일단 테스트를 통과하고 나면 테스트하기 쉽게 설계햇다는 걸 알 수 있다.

p.213

 의도를 잘 드러내는 코드를 작성하려면 거꾸로 작업해보는 것도 좋다. 이는 스티븐 코비(Stephen Covey)의 "끝을 생각하며 시작하라"를 적용한 것이라 볼 수 있다. 함수의 가장 마지막 줄을 먼저 작성해본다던지, 테스트를 먼저 작성해보자. 함수의 존재 이유는 어떤 값을 리턴하는 것이고, 프로시저의 존재 이유는 뭔가를 변경해 부수효과(side effect)를 발생시키는 것이고, 테스트의 존재 이유는 기대 결과 값이 나왔는지 검증하는 것이다.