TDD이론

이한수·2022년 5월 6일
0

TDD란?

  • 테스트 주도 개발 (Test Driven Development) 을 의미 합니다.

쉽게 말해 테스트를 먼저 만들어 놓고 , 이 테스트를 통과하기 위한 코드를 짜는 것을 의미합니다.

보통 일반적으로 개발을 완료한 뒤에 , 자신의 코드가 알맞게 동작하는지 점검하기 위해

테스트를 도입합니다.

반면 , TDD는 이 순서를 뒤집어서 적용합니다.

효과?

  • 피드백의 증진
    • 테스트를 통과하는 것으로 중간 중간 피드백 확인이 가능하다.
  • 협력
    • 남들에게 테스트 코드를 보여주고 , 그 사람들이 해당 코드를 직접 실행해 볼 수 있다.

      즉 , 공유하기가 쉬워진다.

  • 개발자의 의사와 고민이 담겨 있다.
    • 작성자의 테스트 코드를 보고 그 사람의 의사 결정을 확인하기 용이하고 , 테스트를 토대로,

      코드를 왜 그렇게 구상하였는지 파악하기 쉽다.

      정리하자면 , 피드백과 협력을 증진 시킨다.

      그로 인한 불상사가 발생하는 위험을 최소한으로 줄여준다고 볼 수 있다.

장점

  • 코드의 결함이 줄어 든다. (예상치 못한 버그를 줄일 수 있다)
  • 코드의 복잡도를 줄일 수 있다. 이로 인한 파장으로는 클린 코드 , 유지보수비용 절감의 효과

활용하기 어려운 이유

  • 개발 시간의 증가.
    • 단기적인 성과에 집중되어 있는 기업 환경.
    • 고객이 요청한 날짜를 지키기 위해서 등등.
  • 이제까지 해오던 개발 방식의 변화.
  • TDD에 규칙이 있다고 생각.
    • 정해진 규칙에 집착하여 TDD를 작성하려고 시도.

      TDD에 올바른 접근?

    • 나 스스로 ‘어떻게 해야 피드백을 저 자주 받을까?’ , ‘협력이 잘 일어나게 할까?’

      등을 고민한다.

      사실 이 말을 보고 다가오기에 , 처음에 프로젝트를 들어가기 전에 , 요구 사항에 대한 분석 혹은

      JAVA에서 Interface 처럼 하나의 설계도를 구상하는 거구나 라는 생각이 들었다.

    • 중복적으로 하는 테스트들을 자동화하여 쉽게 확인 가능 하다.

profile
성실하게

0개의 댓글