2007/10/02 00:56

[junit]Code Coverage Java

Clover - Test with Confidence

테스트의 질을 향상시키고, 생산성을 증가시켜라!!
Improve test quality. Increase testing productivity.

솔직히 테스트 클래스는 작성을 하지만,
이게 얼마만큼의 효용이 있는지, 얼마만큼 테스트를 잘 수행했는지 알기 쉽지가 않다.
많은 조건문과 반복문, null 처리  그리고 예외처리 등..
테스트 클래스는 단순히 메소드만을 호출하는게 의미가 있는게 아니라,
조건문에 잘 맞게 분기하는지, 예외발생시 적절한 예외메시지를 뿌려주는지 통합테스트 전 최대한 많은 단위 테스트를 해보는데에 있다.
또한 개발 후에도 문제 발생시 또는 요구사항 변경시, 필요부분만 우선 테스트할 수 있는 준비가 항상 되어 있다는 장점이 있다.

하지만 개발은 혼자 하는것도 아니고, 팀원이 같이 하는데,
누가 얼마나 테스트 케이스를 작성했는지, 얼마만큼의 코드를 커버하고 있는지를 알기는 더더욱 어려운데,
Clover 리포트는 이런 고민을 말끔하게 씻어준다.

더군다나, 해당 메소드가 얼마나 자주 호출이 되는지까지도 보여줌으로써,
결과를 보고 있노라면, 의외로 숨어있는 버그까지 보이는 행운도 거머쥘 수 있다.

아래의 그림을 보면 녹색으로 된 부분이 코드에 대한 테스트를 한 부분이다.
현재 내가 하고 있는 프로젝트에서는 저 커버리지를 60프로가 되게 해야 하는데,
말처럼 쉽지는 않았다. 그렇다고 어려운것도 아니었지만(조금만 부지런하다면..^^),
테스트 할 수 없는 부분이 있기에 100프로가 될 수 없다는 걸 안다.


다음 그림은 해당 클래스를 선택하면 전체 테스트 케이스에서 몇번이나 수행이 되었으며,
분홍색으로 나타나는 부분은 테스트가 되지 않았음을 보여준다.



물론 저기에 0이 기록되고, 분홍색이 기록되었다고 테스트 코드가 작성이 안되었다고 볼 수는 없다.
어떤 코드냐에 따라서, 예를 들면 외부와의 인터페이스 모듈이라면,
상황에 따라서, 연결이 끊기기도 하고, 타임아웃이 나기도 하고, 때로는 잘 되기도 하고~
저 레포트를 제출해야 했을때 유난히도 외부장애요소가 많았었다.
(물론 사진은 sourceforge의 사이트이다. 복사만 살짝 했다..^^)
궁금하면 이 주소로 가면 된다, http://ehcache.sourceforge.net/clover/index.html


clover 사이트의 주소는 아래와 같다.
http://www.atlassian.com/software/clover/

프로젝트에서는 설치된 결과만을 조회해서 보아서 이 사이트는 검색해서 찾았다.ㅎㅎㅎ
담번엔 설치하는 법과, 빌드서버에 연결하는 방법을 연구해서(?) 올려야겠다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://ilovejava.egloos.com/tb/815490 [도움말]

덧글

덧글 입력 영역

라이프로그