소프트웨어를 작성하다 보면 지속 가능한 소프트웨어 성장을 위해 테스트에 관심을 가지게 되고
그러다 보면 테스트 작성을 장려하기 위해 TDD 또는 특정 테스트 커버리지를 맞추려는 시도를 하게 됩니다..!
테스트 커버리지 추종의 부작용
예전에 소개한 단위 테스트 책이 있는데요.
http://www.yes24.com/Product/Goods/104084175
단위 테스트 - YES24
소프트웨어 개발에 있어 단위 테스트는 이제 선택이 아니라 필수가 됐다. 단위 테스트에 대한 오해를 바로잡고, 올바른 단위 테스트에 대한 원칙, 테스트를 작성하는 스타일과 효과적인 테스트
www.yes24.com
이 책에서는 특정 테스트 커버리지를 추종하는 것은 부작용이 크다고 이야기 합니다.
특정 테스트 커버리지를 추종하면 테스트 커버리지만을 위해 의미없는 테스트 작성하게 되고
해당 테스트들은 오히려 나중에 리팩토링 및 유지보수를 어렵게 한다는 것인데요.
낮은 수준의 테스트 커버리지 추종은 괜찮지 않나?
이에 대해 아마도 어떤 분은 60~100% 높은 테스트 커버리지는 그럴 수 있지만
낮은 수준의 테스트 커버리지는 단점보다는 장점이 많지 않아?라고 생각할 수 있습니다.
20~40% 정도의 낮은 테스트 커버리지를 강제하는 것은 테스트 코드 작성을 어느 정도 장려하면서도 의미없는 테스트 코드에 대한 부작용은 적지 않을까 하는 생각일 것입니다.
하지만 저는 낮은 수준의 테스트 커버리지도 체크할 필요가 없다고 생각합니다.
그 이유는 아래 2가지 입니다.
1. 낮은 수준의 테스트 커버리지라도 충분히 테스트 커버리지만을 위한 의미없는 테스트가 만들어질 수 있다.
2. 테스트 커버리지를 관리하기 위한 비용이 추가적으로 들어가지만 그에 비해 얻을 수 있는 것은 거의 없다.
그렇다면 어떻게 해야하는가?
저는 개별 PR 단위 또는 기능 단위로 필요한 테스트를 체크하고 추가하는 것이 가장 좋은 방법이라고 생각합니다.
이렇게 했을 때 장점은 아래 2가지 입니다.
1. 테스트 커버리지를 관리하는 비용이 전혀 들지 않는다.
2. 기능 추가/수정에 대해 검토를 하면서 필요한 테스트가 추가되기 때문에 추가되는 테스트들은 매우 유용한 테스트일 가능성이 높다.
조금 강제를 한다면 PR 템플릿의 체크 항목에 기능을 위한 적절한 테스트가 작성되었는지 체크박스를 둘 수 있겠습니다.
'생각나눔' 카테고리의 다른 글
AI 시대의 개발자와 조직 (0) | 2024.03.24 |
---|---|
개발자가 조직에 기여하는 법 (1-1) - 조직 관점 중 조직 문화 (2) | 2024.03.18 |
[Spring] Class 단위 RequestMapping 사용하지 않기 (0) | 2022.12.04 |
2022년을 시작하며 - Poem & Focus & Complete (0) | 2022.03.05 |
조금 늦은 2021년 회고 - 2+2 (0) | 2022.02.27 |