TDD(Test Driven Development)
테스트를 기반으로 개발하겠다
-▶︎ 테스트를 먼저 만들고, 기능 만들기
반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
기능이 없으니 실패할텐데 왜 그렇게 만드는지,,,?
-▶︎ 테스트를 나중에 만들려면 바쁘고 귀찮아서 안하게 됨.
그리고 테스트를 통과하게끔 일부러 쉽게 만들수도 있고,,
그래서 아예 테스트 문화를 만들기 위해서 TDD를 한다.
보다 튼튼한 객체 지향적인 코드 생산 :
코드의 재사용 보장을 명시하므로 TDD를 통한 소프트웨어 개발 시 기능 별 철저한 모듈화가 이뤄진다.
이는 종속성과 의존성이 낮은 모듈로 조합된 소프트웨어 개발을 가능하게 하며 필요에 따라 모듈을 추가하거나 제거해도 소프트웨어 전체 구조에 영향을 미치지 않게 된다.
재설계 시간의 단축 :
테스트 코드를 먼저 작성하기 때문에 어떻게 해야하는 개발을 시작하게 된다.
테스트 시나리오를 작성하면 예외사항에 대해 생각해 볼 수 있다.
디버깅 시간의 단축 :
자동화 된 유닛테스팅을 전재하므로 특정 버그를 손 쉽게 찾아낼 수 있다.
테스트 문서의 대체 가능 :
테스팅을 자동화 시킴과 동시에 보다 정확한 테스트 근거를 산출할 수 있다.