[SW] TDD란?

SCY·2023년 4월 2일
0

TDD?

: Test-Driven Development (테스트 주도 개발)
처음 들어봤다. 소프트웨어 개발 방법론 중 하나로 선 개발 후 테스트 방식이 아닌, 선 테스트 후 개발 방식의 프로그래밍 방법이라고 한다.

즉, 테스트 코드를 먼저 작성한 후 해당 테스트에 통과하기 위한 코드를 구현하는 방식이다.

TDD의 과정

  1. 테스트 케이스 작성하기
  2. 테스트를 통과하기 위한 코드 작성하기
  3. 작성한 코드 리팩토링

테스트 코드를 작성할 때는 여러 경우를 적용해야 한다.

예를 들어 로그인 기능의 테스트 코드라면

  • 아이디, 비밀번호 일치
  • 아이디, 비밀번호 불일치
    등...

이처럼 반드시 실패를 포함하도록 테스트 코드를 작성해야 한다.

TDD의 특징

단위 테스트를 기반으로 코드를 작성하기 때문에 객체 지향적인 코드 개발이 가능하다. 그러므로 자연스레 수정 및 유지보수(리팩토링)가 용이해진다. 테스트 코드를 먼저 작성하기 때문에 입출력 구조와 기능을 명확히 하게 되므로 설계의 구조적 문제를 쉽게 찾아낼 수 있다.

하지만 TDD를 효과적으로 사용하기 위해서는 많은 노력과 시간이 필요하고 크지 않은 프로젝트에서는 오히려 높은 비용으로 비효율적일 수도 있다.

TDD 방식이 항상 옳은 것만은 아니다. 테스트 코드를 짜는 것 자체가 많은 시간을 소모하기 때문에 TDD 방식으로 얻고 잃게 되는 부분을 잘 생각하여 해당 방식을 채택하는 것이 좋을 것이다.

대표적인 툴에는 JUnit이 있고 JAVA의 표준 단위 테스트 프레임워크이다.

profile
성장 중독 | 서버, 데이터, 정보 보안을 공부합니다.

0개의 댓글