본문 바로가기

Knowledge/Software Design

TDD (Test Driven Development)

오늘날 소프트웨어는 비행기, 철도, 자동차등 인명피해로 이어질만큼 다양한 곳에서 쓰이며 그만큼

오류가 적은 고품질의 소프트웨어를 만들어내야 한다.


현재 좋은 소프트웨어를 개발하기 위한 개발방법들은 많이 존재하지만, 오늘은 그 중에서

테스트와 개발을 같이 진행하여 개발 초기의 오류를 발견하고, 수정하는 개발론을 알아보고자한다.


TDD

TDD란 Test Driven Development의 줄임말로 테스트 주도 개발이라 한다.

TDD는 또한 매우 짧은 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다.


TDD는 먼저 테스트 케이스를 작성하고 실제코드를 개발하여 리팩토링하므로 Test First Development라고도 한다.



TDD의 장점

  • 작업과 동시에 테스트를 진행함으로써 실시간으로 오류상황을 파악하여 시스템 결함을 방지한다.
  • 짧은 개발 주기를 통해 고객의 요구사항을 빠르게 수용하거나 피드백을 줄 수 있고 현재 진행상황을 쉽게 파악한다.
  • 자동화 도구를 이용해 TDD의 테스트 케이스를 단위테스트로도 이용가능하다.
  • 테스트 자동화 도구로는 JUnit(Java), CppUnit(C/C++) 등이 존재한다.



TDD의 단점

  • 기존의 개발프로세스에 테스트케이스 설계까지 추가되므로 코드 생산 비용이 높아진다.
  • 어떻게 테스트를 진행해야하는지 여러 부분에 대한 고려사항이 추가된다.






참조 : http://blog.naver.com/PostView.nhn?blogId=suresofttech&logNo=221039173819