몇일전에 들었던 podcast를 다시 들으며 언급했던 내용들을 찾아봤습니다. agile toolkit podcast에서 최근에 올라온 Psychology of Build Times에서 언급된 내용입니다.
현재 Unit Test 제대로 적용한 프로젝트를 못했었는데 이미 프로젝트 시작한지도 오래된것도 있고, 모두 네트워크와 디비 연결 같은것이 있어서 어떻게 유닛 테스트를 작성해야 할지 막막하더군요. 라이브러리화 된 몇개의 소스 파일들만 유닛 테스트 코드가 조금 들어있을뿐입니다. 특별한 유닛테스트 라이브러리를 쓴것도 아니고 그냥 ifdef 입니다. –;
podcast를 듣고, Michael Feathers의 A Set of Unit Testing Rules를 읽어보니 유닛테스트로 어떤 정도를 테스트하는지 좀더 감이 오는거 같습니다. 유닛테스팅하는데 걸리는 시간이 길어지면 개발자들이 잘 하지 않고, 하더라도 기다리다 딴일하게 된다는군요. 그래서 10초 이내로 모든 유닛테스트가 되게하고, 오래걸리는 테스트는 따로 분류해서 유닛테스팅에서 구별해 내라고 하네요. 다음은 블로글 글에서 나온 유닛 테스트의 조건입니다.
1. 디비와 연결하지 말것
2. 네트워크를 통한 통신이 없을것
3. 파일시스템에 손데지 말것
4. 다른 유닛테스트와 의존성이 없을것 (독립적으로 테스트 가능)
5. 설정파일을 만드는 등의 별도의 환경설정이 필요하지 않을것
다시 cppunit을 적용해보도록 노력해봐야겠네요.