TDD란 무엇인가?

minch·2021년 10월 14일
0

Programming

목록 보기
2/4
post-thumbnail

TDD

TDD란?

  • TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
  • 위 그림은 TDD 개발주기를 표현한 것이다.
    • 실패하는 테스트 코드(Failing Test)를 작성한다.
    • 테스트 코드를 성공시키기 위한 코드(Test Pass)를 작성한다.
    • 중복 코드 제거, 일반화 등의 리팩토링(Refactor)을 수행한다.




  1. 디자인(설계) 단계에서 프로그래밍 목적을 반드시 미리 정의해야만 하고, 또 무엇을 테스트해야 할지 미리 정의(테스트 케이스 작성)해야만 한다.

  2. 테스트 코드를 작성하는 도중에 발생하는 예외 사항(버그, 수정사항)들은 테스트 케이스에 추가하고 설계를 개선한다.

  3. 이후 테스트가 통과된 코드만을 코드 개발 단계에서 실제 코드로 작성한다.


TDD에서 중요한 개념이 무엇인지?


TDD의 목표는 작동하는 깨끗한 코드(Clean code that works(중복이 없고 명확한 코드))를 작성하는 것이다.

  • TDD는 TDD Cycle이라는 반복적인 주기가 발생한다.

    Clean code that works의 실현은 TDD Cycle 중 RGR 주기의 리펙토링 통해 이루어진다.
    이 과정에서 테스트 코드는 중복 제거가 이루어지는데 여기서 중복 제거는 단순한 코드의 중복 제거를 넘어서 반복적인 기능을 하나의 클래스(또는 인터페이스)로 묶는 과정을 뜻하기도 한다. 즉 구조가 재설계 되기도 하는데 이러한 결과에서 우리는 TDD가 코드뿐만이 아닌 Clean Architecture를 실현하는 개발 방법론으로 사용할 수 있다는 점을 알 수 있다.

    또한, 반복적인 자동화된 검증 과정을 통해 개발자에게 코드에 대해 신뢰를 하게 해줄뿐더러 더 나아가 소프트웨어의 버그 발생률을 감소시키고 품질 향상에 도움을 준다.

참고자료

TDD(Test-Driven-Development) 방법론에 대해서
선택이 아닌 필수 TDD

0개의 댓글