본문 바로가기

Book review

테스트가 왜 중요할까 (Effective Unit Testing - 한빛미디어)


  한참 업무 개발을 하던 시절 나는 테스트 멍청이였다. 대부분의 프로젝트의 경우 개발하기에도 시간에 쫓겨 단위 테스트는 커녕 모듈 테스트도 놓치는 경우가 종종 있었다. 테스트의 중요성은 물론 알고 있지만 지난날의 내게는 참으로 벅찬 일이 아닐 수가 없었다.

  사내에서는 기본적인 QC가 존재했다. 담당하시는 분도 계셨고 나름 구색이 되어 있다고 생각했다. 그런데 테스터의 역량과 관점에 따라 테스트가 천차만별이었다. 결과적으로 내가 장기간 근무하던 그 기간 중에 인정했던 두명의 테스터만이 내 결함을 잘 찾아주었고 경고해주었다. 다른 분들은 미안하지만 빈틈이 많아서 테스트 프로세스 통과를 위해 케이스를 작성하면 덧붙이는 것 없이 제시한 케이스만 테스트하여 넘어가는 경우도 허다했었다. 

  과연 테스트를 이리해도 좋은 것일까. 일선 개발자들의 고충과 영업적인 이유로 책정되는 허황된 일정등을 생각하면 지금 생각해도 어쩔 수 없는 경우도 생길 수 있다는 생각은 한다. 하지만 이런 상황들이 반복된다면 소프트웨어 제작사의 신뢰도, 소프트웨어 업계 전반적인 품질의 문제에서 자유로워 질 수 없을 것이다. 그렇다면 어떻게 하여야 이런 딜레마를 벗어날 수 있을까.



<출처 : Yes24> 


  개발자는 단위 테스트, 모듈 테스트, 통합 테스트(프로젝트에 따라서 유연하게 할 수 있어야 한다) 등 테스트에 대해서 다시 한번 생각해 보아야 할 것이다. 사실 다양한 테스팅 메서드가 전파되면서 최근에는 많은 개발자 분들이 테스트를 수행하고 계신것으로 알고 있다. 하지만 주니어 개발자들과 만나보면 (혹은 학생 개발자분들) 테스트에 대해서 잘못 생각하고 계신 분들도 가끔 뵙게 된다. 나의 깜냥으로는 개발에 대한 철학을 강요할 순 없지만 테스트의 중요성에 대해서는 말할 수 있다고 생각한다. 그리고 그 발판으로 이 도서를 추천할 수 있을 것 같다.


  처음에는 그저 단위테스트의 방법론적인 이야기를 하는 도서라고 생각했었다. 그런데 읽어보니 아주 오랫만에 저자의 주장이 강하게 녹아있는 책이라는 생각이 들었다. 테스트의 중요성도 효율적인 측면도 정확하게 설명하고 주장하고 있는 것이다. 구절구절 마음에 와서 꽂히는 부분도 많았다. 

아... 나도 분명히 저런 생각한적 있었는데, 왜 실천하지 못했을까...

따지고 보면 내가 성실한 개발자가 아니었기 때문이지 않을까. 개발자로서 노력해야 할 부분 보다는 다른 흥미거리에 빠지는 경우도 많았기 떄문이라는 생각도 들긴한다. 


  내가 자바에 익숙하지 못하기 때문에 뒤에 나오는 [JVM언어를 활용한 테스트 작성] 등 기술적인 부분에서의 이해도는 떨어졌지만 이 책의 가장 중요한 핵심이라 꼽을 수 있는 것이 테스트에 대한 인식 전환에 맞추어져 있기 때문에 전체적인 이해는 어렵지 않았다. 게다가 다양한 관점에서 테스트를 바라보고 보완하는 부분에 대해서 지속적으로 반복되며 나오기 때문에 나름 테스팅 철학적인 부분을 엿볼 수도 있었다. 


  최근 소프트웨어 개발에 있어서 가장 중요한 점을 꼽으라면 철학을 꼽을 수 있을 정도로 본질에 관심을 많이 가지고 있기 때문에 테스팅에 대한 생각도 남다르게 하고 있었다. 전직을 위한 준비를 하면서 테스터 또한 가능성을 열어 놓고 있었던 것도 사실이었다. 물론 준비가 부족했던 것일지 결론적으로는 실패 한것으로 보여지지만 말이다. 근래 들어서는 테스팅 관련 책이 많이 나오지 않고 있었던 것 같다. 혹은 기술적인 부분이나 팁 같은 내용에 집중하는 테스팅 관련 책이 나왔던 것 같다. 그런데 이 책에서는 '왜'라는 의문을 가지고 읽을 수 있을 것이다. 왜 테스팅 인가. 그 물음에 대한 답변을 이 책을 통해서 여러분도 찾을 수 있을 것이라 기대한다. 왜 테스팅 인가?