모나리자몽
75
2020-10-16 18:13:48
4
181

간단한 부분부터 세세하게 테스트 주도 개발 해야되나요?


안녕하세요 이제막 스프링 책 한권 떼고 인터넷여러군데 돌아다니면서 주운 지식으로 감을잡아 스프링 부트로 개발을 하고있습니다.

제가 궁금한 것은 간단한 컨트롤러나 서비스 레파지토리 전부 mock객체 만들어서 stub하고 테스트 굴리고 일부러 실패하게 만들어서 성공하게끔 개발하고... 등등 그냥 개발하는 속도보다 너무 답답하고 느리다는 느낌이 듭니다.

물론 제가 테스트를 잘한다, 테스트주도 개발을 잘안다, 이것은 절대아닙니다. 그런데 이걸 모든 기능을 만드는데 하려니 과연 이게맞나 싶을때가 있습니다.

선배 개발자 분들에게 의견을 여쭙고싶습니다. 테스트 주도 개발을 한다 -> '모든(대부분의) 기능 추가는 테스트를 통해 이루어 져야 한다' 인가요?

1
  • 답변 4

  • 곰개발ㅈ ㅏ
    369
    2020-10-16 19:28:29

    소프트웨어를 만드는 일은 어떻게 반복되는 테스트나 체크 리스트들을 자동화 시키는데 있습니다. 물론 만들때는 시간이 좀 더 들어서 불필요하다고 생각할 수 있으나, 이것이 쌓이고 쌓여 코드 커버리지가 95프로 이상을 넘어섰을 때 진정 그 힘이 나옵니다.

    그래서 괜찮은 기업의 경우 기능을 만들때는 유닛 테스트가 같이 포함되어 있는 것이 기본입니다. 

  • 모나리자몽
    75
    2020-10-16 19:40:16

    #곰개발ㅈ ㅏ

    제가 지금 체감하기에는 아직 프로젝트가 너무 작아서 느껴지지 않은 것인가 보네요

    습관이란게 한번 들여놔야 나중에 애먹질 않으니 그냥 지금 부터 잘해놔야 될것같습니다

  • 엡실론
    1k
    2020-10-17 09:09:58

    테스트 주도 개발는 꼭 안해도 됩니다. 테스트 코드는 해야합니다. 굳이 실패 -> 수정 -> 성공을 안거쳐도 됩니다. 코드 작성 -> 테스트로 해도 됩니다. 전자가 조금 더 장점이 있긴 하지요. 그런데 글을 보니 TDD문제보단 테스트 코드를 쓰는 것 자체의 문제인것 같네요.

    프로토타입이나 PoC 같은건 테스트를 생략하기도 하지만, 곰개발자님 말대로 덩치가 커지면 커질수록 테스트 코드가 정말 중요해집니다.

  • 모나리자몽
    75
    2020-10-22 18:58:43

    #엡실론 

    조언감사합니다. 테스트코드를 짜는것도 계속 하다보니 익숙해져가서 어떨때는 편리함도 느끼고 있습니다.

    규모가 커질수록 테스트코드가 중요해진다고 말씀해주셨는데 정확히 왜 중요한지, 어떤부분에서 중요해지는지 잘 모르겠습니다. 혹시 예시를 들어주실 수 있으신가요? 아직 제가 경험해보지 못한 부분이라 경험을 해보신 분들의 이야기를 듣고싶습니다.

  • 로그인을 하시면 답변 을 등록할 수 있습니다.