스터디 주제로 "나에게 테스트 코드란?" 나오게 되어서 나의 생각을 정리해 보려고 한다.
나는 실무에서 테스트 코드를 사용하고 있지 않기 때문에 아직은 "실체 없는 뜬구름" 에 가깝다. 테스트 코드 자체도 항해플러스에서 사용해 본 것이 전부이고, 항해를 수료한 뒤에도 "기회가 되면 유닛 테스트 부터 적용해 보자" 정도의 의미다.
가장 큰 문제는 리소스와 일정이다.
실무에서는 테스트 코드를 작성하고 적용하는 것 자체가 큰 시간을 사용하기 때문에, 과연 그만한 여유가 있는지 부터 생각하게 되고, 그렇기에 끝내 사용하지 못하는 것 같다.
그래도 이렇게 글이 끝나면 말이 안되기 때문에, 유닛 테스트, 통합 테스트, E2E 테스트 에 대한 나의 간단한 생각을 써본다.
유닛 테스트
가장 작은 단위의 테스트이고, 코드 변경 시 영향 범위도 작기 때문에 가장 안정적으로 도입할 수 있는 테스트라고 생각한다. 적용 가능 하다면 가장 먼저 적용 해보고 싶다.
통합 테스트&E2E 테스트
두가지 다 유닛 테스트 보다 테스트 시나리오와 코드 작성에 드는 시간과 리소스가 많이 들기 때문에, 시나리오가 정확하게 정해진 시점에 사용하는게 낫다고 생각한다.
결론부터 말하자면, 테스트 코드는 필요하다고 생각한다.
다만 혼자 개발할 때는 도입이 비교적 자유롭지만, 협업에서는 또 다른 장벽이 생긴다.
예를 들어, 꼭 테스트 코드가 아니더라도 코드 컨벤션, 코드 이해도 등등 생각보다 많은 논의와 합의가 필요하다.
정확하게 내가 내린 결론은
“테스트 코드는 필요하지만, 도입 여부는 결국 상황에 따라 유연하게 결정되어야 한다.”
개인적으로 진행하는 프로젝트에는 아까 말했듯이 유닛 테스트부터 차근차근 사용해보고 싶다. 그렇게 내가 익숙해 지고, 효율이 올라가면 협업하는 사람들과도 같이 맞춰서 할 수 있지 않을까?