본문 바로가기

spring

TDD와 단위 테스트의 차이

1.TDD

TDD는 테스트가 주도하는 개발을 이야기한다. 테스트 코드를 먼저 작성하는 것부터 시작한다. 

레드 그린 사이클 : 항상 실패하는 테스트를 먼저 작성하고(RED) 테스트가 통과하는 프로덕션 코드를 작성하고(GREEN) 테스트가 통과하면 프로덕션 코드를 리펙토링한다(Refactor) 

 

2. 단위 테스트 

TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 이야기 한다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야하는 것도 아니고, 리펙토링도 포함하지 않는다. 순수하게 테스트 코드만 작성하는 것을 이야기한다. 

 

3. 테스트 코드를 작성해야하는 이유

1) 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다.

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

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

4) 단위 테스트는 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체를 문서로 사용할 수 있다.

5) System.out.println() 을 통해 눈으로 검증하지 않아도 자동검증이 가능하다.

6) 개발자가 만든 기능을 안전하게 보호해 준다.( b라는 기능이 추가되어 테스트하는데 기존에 잘되던 a 기능에 문제가 생긴 것을 발견하는 경우를 발견하는 경우가 많다. 이렇게 새로운 기능이 추가될 때, 기존 기능이 잘 작동되는 것을 보장해주는 것이 테스트 코드이다.)

4. 테스트 코드 작성을 도와주는 프레임워크들

가장 대중적인 테스트 프레임워크 : xUnit (Java - JUnit, DB - DBUnit, C++ - CppUnit, .net - NUnit) 

 

5. 출처

스프링 부트와 aws로 혼자 구현하는 웹 서비스 - 이동욱 (http://www.yes24.com/Product/Goods/83849117)

'spring' 카테고리의 다른 글

Spring framework 란?  (0) 2019.01.21