이 글에 대해서

8개월간 5개 서비스를 개발, 운영하면서 약 1,000여 개의 테스트 코드를 작성한 경험에 대해 작성하였고 이를 사내에서 공유한 글을 각색한 글입니다. 구체적인 네이밍이나 코드는 컨셉용으로 대체하였음을 밝힙니다.

목차

  1. 개요
  2. 테스트 코드 작성 - why?
  3. 테스트의 종류
  4. 나의 테스트 코드 변천사
  5. 그래서, 어떻게 무엇을?
  6. 조금 더 발전할 수 있는 방법들
  7. 남은 주제들
  8. 부록: 실전 TDD

0. 개요

지금까지 개발을 하면서 테스트 코드를 작성한 경험을 공유한다. 특히 약 4개월 간 진행한 신규 플랫폼 개발에서 작성한 테스트 코드를 중심으로 왜, 어떻게에 대해서 나누고 앞으로 발전할 방안에 대해 화두를 던진다.

1. 테스트 코드 작성 - why ?

먼저 생각해 볼 것

테스트 코드를 짜면 시간이 오래 걸린다?! 커버리지가 높으면 좋은 테스트다?!

1. 테스트 코드 작성이 시간 소모적이라는 인식

흔히 개발 과정에서 테스트 코드 작성이 시간을 많이 소모한다고 여겨지는 것 같다. 테스트를 하면 개발이 오래 걸리는 것은 일반적으로 맞다. 하지만 이는 개발과 테스트를 별도의 과정으로 보았을 때의 관점이다!

개발자의 업무를 어떻게 보느냐의 문제 같다. 개발자의 업무를 내가 맡은 서비스에 대해 코드를 짜고 배포하는 것에서 끝내는 것이 아니라, 그것이 정상 작동하는지 요구 사항에 따라 다른 컴포넌트들과 상호작용하면서 문제가 없는지를 확인하는 것까지를 포함한다면, 즉 테스트하는 것까지를 포함한다면 결론적으로 테스트 코드를 작성하는 것이 작성하지 않는 것보다 오래 걸리는 것 같지는 않다. 오히려 테스트 코드는 필수적인 작업을 사전에 처리함으로써 장기적으로는 시간을 절약할 수 있는 방법이 될 수 있다.