번역: 이시용 선임연구원@C-SCROLL

원문: http://blogs.msdn.com/b/james_whittaker/archive/2009/04/02/testing-sucks.aspx

역주: 개발자라면 누구나 공감할만한 내용이다. 테스트는 정말 대부분의 개발자라면 하기 귀찮은 작업이다. 그러나 테스팅은 소프트웨어 개발과정에서 빠지면 안될 중요한 작업으로, 꼭 해야 한다. 따라서, 창조적인 테스팅 방법을 끊임없이 연구하는 것이 개발자 본인에게도, 소프트웨어 품질에도 도움을 줄 것이다.



버그가 나타날거라는 기대로 테스트 케이스를 몇 번이고 돌리는 것은 정말 귀찮은 일이다. 이러한 작업은 지겹고 전혀 창조적이지 않기 때문에 아무도 테스팅하는 자리를 탐내지 않는 것은 당연한 일이다. 테스팅은 또한 너무나 지루하고 반복적이며 순전히 힘든 작업이다. 도대체 누가 이런 자리에 머물러 있고 싶어할까?

  테스팅 중에서 그나마 흥미로운 부분은 뭘 테스트해야하는지 결정하고, 다양한 feature와 환경들을 어떻게 혼합시켜 하나의 테스트로 만들어낼까 하는 전략적인 부분이다. 특히 테스트케이스를 돌리고 버그를 logging하는 등 테스팅의 전략적인 부분은 꽤 재미있다.

  똑똑한 테스팅 관리자는 이러한 상황을 인지하고 모든 테스터가 테스팅 전략과 전술 사이에서 그들의 시간을 쪼개서 사용하기를 원한다. 테스팅 과정의 지루하고 반복적인 부분은 자동화를 해서 시간을 확보하라. 마이크로소프트사에서 도구 개발은 가장 창조적이며, 보상을 잘 받는 일 중 하나이다.

  무엇을 테스트해야 하는지 결정하고, 테스트 완성 기준을 결정하는 등의 힘든 테스팅 과정들이 있지만, 다른 창조적이고 흥미로운 작업들도 있다. 테스트를 카테고리화 하고 전략을 개발(흥미로운 부분)하는데에 시간을 들이는 테스터는 더욱 테스팅에 집중한다. 그로 인해 테스트를 돌리는데(지겨운 부분)에는 시간을 덜 쓰게 된다.

  테스팅은 미성숙한 과학이다. 좋은 방법을 생각하는 사람은 과도한 노력 없이 해낼 수 있다는 수많은 연구들이 있다. 테스터가 그들의 테스팅 방법을 향상시킬 수 있는 방법을 찾아내면 테스팅하는 시간을 줄일 수 있고, 팀은 도움을 받는다. 이러한 과정은 테스트의 전체 품질을 향상시킬 뿐 아니라, 창조적인 시간은 테스터의 의욕을 향상시킨다.

  그러므로 세상의 모든 관리자들은 그 자신에게 물어봐야한다. 최근에 테스터들을 더욱 창조적으로 만들도록 자신은 무엇을 했는지. 답을 하지 않는다면, 테스팅은 그저 짜증나는 일 만은 아니다.