테스트 주도 개발(Test-driven development, TDD)를 알아보자

이동훈 (DONG HOON , LEE)·2022년 8월 10일
0

알아보자

목록 보기
5/11

테스트 주도 개발(Test-driven development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다.

  • 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성한다.
  • 그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다.
  • 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다.

왜 단위 별로 테스트(Unit Test)를 해야하는건가?

  • 코드를 수정하거나 기능을 추가할 때 빠른 검증 가능
  • 리팩토링 시에 안정성 확보
  • 개발 및 테스팅에 대한 시간과 비용 절감

테스트 코드를 작성하면 우리가 작성한 코드들에 대해 수시로 빠르게 검증을 받을 수 있으며, 유지보수 및 리팩토링을 할 때에도 안정성을 확보할 수 있다는 장점이 있다.
하지만 그것보다 큰 장점으로 개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다는 점에 주목해야 한다.

우리는 개발이 끝난 뒤에 문제가 없는지 확인하기 위해 애플리케이션을 실행하고, 직접 수동 (통합) 테스트를 진행해야 한다.
단위 테스트를 작성하지 않은 코드들은 테스트를 작성하지 않은 코드들 보다 버그가 있을 확률이 높은데, 문제는 직접 테스트 하는 비용이 너무 크다는 것이다.
그 이유는 통합 테스트를 위해서는 캐시, 데이터베이스 등 외부 컴포넌트들과 연결 등 부가적인 시간이 필요하기 때문이다.

테스트 코드를 작성하지 않았다면 여러 개의 버그가 잠재되어 있을 확률이 있고, 모든 버그들을 수정하고 테스트를 반복하는 비용은 기하급수적으로 늘어나게 된다.
그러므로 우리는 개발 및 테스팅에 대한 비용을 줄이기 위해 단위 테스트를 작성해야 한다.

Reference

https://ko.wikipedia.org/wiki/%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%A3%BC%EB%8F%84_%EA%B0%9C%EB%B0%9C
https://mangkyu.tistory.com/182

profile
기초를 탄탄히

0개의 댓글