TDD

Mixer·2023년 5월 30일
0

  • 항상 실패하는 테스트를 먼저 작성한다 (red)
  • 테스트가 통과하는 프로덕션 코드를 작성하고 (green)
  • 테스트가 통과하면 프로덕션 코드를 리팩토링한다 (blue)
단위 테스트는 개발계 초기에 문제를 발견하게 도와준다

단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 
기존 기능이 올바르게 작동하는지 확인 할 수 있다 ex. 회귀 테스트

단위 테스트는 기능에 대한 불확실성을 감소 시킬수 있다.

단위 테스트는 시스템에 대한 실제 문설흘 제공한다.
즉, 단위 테스트 자체가 문서로 사용될 수 있다.

왜 사용하는가?

우리가 TDD를 사용해야 하는 이유를 알면 더욱 잘 활용할 수 있지않을까 ?

TDD 사용하지 않는 상황은

  1. 코드 작성
  2. 프로그램(Tomcat)을 실행한 뒤
  3. Postman과 같은 API 테스트 도구로 HTTP 요청
  4. 요청 결과를 System.out.println()으로 눈으로 검증
  5. 결과가 다르면 다시 Tomcat 중지하고 코드 수정

원하는 결과가 나올때 까지 2~5번을 반복

하지만 TDD를 사용하면 사람이 눈으로 검증하지 않게 자동검증이 가능이며, 작성된 단위 테스트를 실행만 하면 더는 수동검증이 필요치 않다.

또한 개발자가 만든 기능을 안전하게 보호해준다.
예를 들어 B라는 기능이 추가되어 테스트를 한다
B 기능이 잘 되어 오픈했더니 A 기능에 문제가 발생한것을 발견한다
이런 일은 규모가 큰 서비스에서 비일비재하게 발생하는 일이다
하나의 기능을 추가할 때마다 너무나 많은 자원이 들기 때문에 서비스의 모든 기능을 테스트 할 수 없다.

이렇게 기능이 추가 될 때, 기존 기능이 잘 작동되는 것을 보장해 주는것이 테스트 코드이다.

테스트 코드를 작성하는데 도와주는 프레임워크

xUnit
JUnit - Java
DBUnit - DB
CppUnit - C++
NUnit - .net
profile
Minthug'life

0개의 댓글