What we have to do is to be forever curiously
testing new opinions and courting new impressions

우리가 해야 할 일은 끊임없이 호기심을 갖고
새로운 생각을 시험해보고 새로운 인상을 받는 것

TDD(Test Driven Development)란 무엇일까

  • TDD의 정의(Definition of Test Driven Development)
  • TDD의 효과(The Effect of Test Driven Development)
  • TDD의 장단점(Advantages and Disadvantages of Test Driven Development)
  • TDD를 잘하는 방법(How to be good at Test Driven Development)


TDD의 정의

TDD_cycle

보통은 SW 개발을 할 때 코드를 다 짜놓고 난 후 테스트를 만드는데,

TDD 방식은 테스트를 먼저 만들고, 테스트를 통과하기 위한 코드를 짜는 것


TDD의 효과

프로젝트의 불확실성이 높을 경우,

피드백과 협력을 통해 불필요한 자원의 낭비를 막고

생산성을 높일 수 있음(애자일 방법론)

tdd-collaboration

  • 코드복잡도가 떨어져 코드가 명확도 증가
    • 버그 감소
    • 공유하고 협력에 용이
    • 유지보수에 들어가는 비용 감소
  • TDD를 통해 피드백의 범위를 집중시키고 수렴시켜 피드백 비용 감소


TDD의 장단점

장점

  1. 피드백과 협력을 증진시키기 때문에 불확실성에 대해 대비 가능
  2. 개발 의도 파악이 수월한 깨끗하고 명확한 코드
  3. 낮은 유지보수 난이도

단점

  1. 개발시간의 증가
  2. 기존 방식과는 다른 개발방식이기 때문에 생소함
  3. 개발자 개인의 작성 기준에 따라 천차만별


TDD를 잘하는 방법

개발자 스스로 어떻게 더 피드백을 수월하게 받을 수 있을지,

어떻게 해야 코드만으로 의도 전달이 쉽고 명확하게 할 수 있을지를 고민하면서 접근

well

예를 들어,

게임을 개발할 때 특정 스테이지(stage 3)에 대한 피드백을 받고자 할 때,

stage 1, stage 2을 클리어할 필요없이,

바로 stage 3을 테스트할 수 있게끔 테스트코드를 작성하면,

피드백을 값싸게 더 자주 받을 수 있음


태그:

카테고리:

업데이트:

댓글남기기