TDD(Test Driven Development)
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의 정의
보통은 SW 개발을 할 때 코드를 다 짜놓고 난 후 테스트를 만드는데,
TDD 방식은 테스트를 먼저 만들고, 테스트를 통과하기 위한 코드를 짜는 것
TDD의 효과
프로젝트의 불확실성이 높을 경우,
피드백과 협력을 통해 불필요한 자원의 낭비를 막고
생산성을 높일 수 있음(애자일 방법론)
- 코드복잡도가 떨어져 코드가 명확도 증가
- 버그 감소
- 공유하고 협력에 용이
- 유지보수에 들어가는 비용 감소
- TDD를 통해 피드백의 범위를 집중시키고 수렴시켜 피드백 비용 감소
TDD의 장단점
장점
- 피드백과 협력을 증진시키기 때문에 불확실성에 대해 대비 가능
- 개발 의도 파악이 수월한 깨끗하고 명확한 코드
- 낮은 유지보수 난이도
단점
- 개발시간의 증가
- 기존 방식과는 다른 개발방식이기 때문에 생소함
- 개발자 개인의 작성 기준에 따라 천차만별
TDD를 잘하는 방법
개발자 스스로 어떻게 더 피드백을 수월하게 받을 수 있을지
,
어떻게 해야 코드만으로 의도 전달이 쉽고 명확하게 할 수 있을지
를 고민하면서 접근
예를 들어,
게임을 개발할 때 특정 스테이지(stage 3)에 대한 피드백을 받고자 할 때,
stage 1, stage 2을 클리어할 필요없이,
바로 stage 3을 테스트할 수 있게끔 테스트코드를 작성하면,
피드백을 값싸게 더 자주 받을 수 있음
댓글남기기