TDD (Test Driven Development)

이유석·2022년 5월 12일
0
post-thumbnail

TDD : 테스트 주도 개발

정의

  • 테스트케이스를 작성 후 실제 코드를 개발하여 리팩토링 하는 절차를 따른다.

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

우리는 보통 개바할 때, 설계(디자인)를 한 이후 코드 개발과 테스트 과정을 순서대로 거치게 된다.

하지만 TDD는 기존 방법과는 다르게, 테스트 케이스를 먼저 작성한 이후에 실제 코드를 개발후 리팩토링 절차를 밟는다.

이러한 반복적인 테스트와 수정을 통해 고품질의 소프트웨어를 만들어 낼 수 있다.

장점

  • 시스템 결합 방지 : 작업과 동시에 테스트를 진행하면서 실시간으로 오류 파악이 가능함

  • 짧은 개발 주기를 통해 고객의 요구사항을 빠르게 수용 가능

  • 피드백이 가능하고 진행 사항 파악이 쉽다.

  • 자동화 도구를 이용한 TDD 테스트케이스를 단위 테스트로 사용이 가능하다.
    ex) JAVA의 JUnit, C&C++의 CppUnit

  • 개발자가 기대하는 앱의 동작에 관한 문서를 테스트가 제공해준다.

단점

  • 기존 개발 프로세스에 테스트 설계가 추가되므로 생산 비용 증가

  • 테스트의 방향서, 프로젝트 성격에 따른 테스트 프레임워크 선택 등 추가로 고려할 부분의 증가

필요한 이유

TDD를 활용하면, 처음 시작하는 단계에서 테스트케이스를 설계하기 위한 초기 비용이 더 들게 된다.
하지만 개발과정에 있어서 '초기비용' 보다 '유지 보수 비용'이 더 클 수 있다는 것을 명심하자.

또한 안전성이 필요한 소프트웨어 프로젝트에서는 개발 초기 단계부터 확실하게 테스트를 다져놓고 가는 것이 중요하다.

profile
https://github.com/yuseogi0218

0개의 댓글