오늘 지인분과 테스트 커버리지에 대해 나눈 이야기를 간단하게 정리해봤습니다.
테스트 커버리지를 측정하는게 필요할까요?
저는 필요하다고 생각합니다. 커버리지를 측정하지 않으면 현재 가진 문제점이 드러나지 않습니다. 현재 얼마나 테스트 코드를 작성하고 있는가에 대한 대답을 할 수 있어야 합니다.
테스트 커버리지를 어떻게 가이드 해야 할까요?
N사에 있을때는 80% 이상이면 Gold, 70% 이상이면 Silver 이런식으로 등급을 나누어서 이를 각 조직에서 달성하도록 했습니다. 그러면 각 팀이 현재 어느수준에 와있고 어떤 노력을 해야 하는지 조금은 명확해 집니다. 아래 그림은 CI 서버를 이용해 자동으로 커버리지를 계산하여 등급을 보여주는 화면입니다.
테스트 커버리지를 높히기 위해서 경쟁하게 될거 같은데요
맞습니다. 그래서 커버리지를 측정한다고 해도 이를 강요해서는 안됩니다. 커버리지는 현재 테스트 코드 수준을 판단하는 한가지 지표일 뿐입니다.
그럼 얼마나 높은 수준을 유지해야 할까요?
80%. 사실 테스트 코드를 작성하는 수준이 높아지면 테스트 커버리지는 의미가 없어집니다. 테스트 커버리지로 테스트 코드의 질을 평가할수는 없기 때문입니다. 어떻게 하면 좋은 테스트 코드를 작성할 수 있을까를 고민하는 개발자에게 '너 왜 코드 커버리지가 이렇게 낮아. 이 부분을 보강해.' 이런 식의 강요는 의미없죠.
너무 테스트 코드가 많으면 테스트 코드를 유지하느라 많은 비용이 들거 같아요.
소스가 변경되었을때 테스트가 실패하는것은 당연합니다. 그게 바로 테스트 코드가 해야하는 일입니다. 테스트 코드를 수정하는 일을 비용으로 보는것은 잘못된 시각입니다. 깨지는것, 버려지는것을 테스트 코드의 라이프 사이클로 보세요.
테스트 커버리지에 대한 논란이 있다는건 아직 테스트 코드 작성에 대한 마인드가 개발조직에 자리잡지 못했다는 징후라고 생각합니다. 숫자에 얽메이지 마세요.
버그를 막아주는 좋은 테스트 코드를 작성하는데 집중하세요.
참고자료
[1] http://googletesting.blogspot.kr/2010/07/code-coverage-goal-80-and-no-less.html
'Work & Study > TechTalk' 카테고리의 다른 글
| 테스트 커버리지를 측정하는게 필요할까요 (0) | 2013/06/03 |
|---|---|
| glu 모델 (0) | 2013/05/27 |
| 배포 모니터링 자동화 플랫폼 glu (0) | 2013/05/20 |
| GTAC 2013 (0) | 2013/05/07 |
| Play2 특징을 소개하는 영상 (0) | 2013/05/01 |
| 나는 프로그래머로서 어느정도 수준인가 (0) | 2013/04/25 |


