Functional Test and Unit Test in TDD(Test Driven Development)

TDD와 테스팅 프로세스 소개

Posted by JudeLee on September 21, 2015

Functional Test and Unit Test in TDD(Test Driven Development)

TDD(Test Deriven Development) 란 테스트 주도 개발이다. 서비스의 입장에서 기존의 개발 방법대로 생각을 하였을때의 순서가 기획 -> 개발 일정 선택 & 아키텍쳐 설계 및 디자인 -> 개발 -> 테스팅 -> 출시 와 같은 순서였다면 TDD는 다음과 같다.
어떠한 기능을 테스팅하기 위한 테스팅 코드 작성 -> 이 테스팅을 통과하기 위한 최소한의 테스팅 코드 작성 -> 코드 리팩토링 의 과정을 거친다. 즉 TDD는 프로그램의 점진적인 개선언제든지 지금까지의 결과물이 출시가 가능한 개발이 되도록 하는것이다.

TDD 에서는 기본적으로 Functional Test 와 Unit Test 의 과정을 거친다.

Functional Test : 사용자(고객)의 관점에서 어플리케이션이 해당 목적에 부합하는 기능들을 테스팅 하는 것. (High-Level)

Unit Test -> 개발자의 관점에서 버그가없고 깔끔한 코드가 되었는지를 테스팅 하는 것.

즉 Functional Test 는 고객의 입장에서 요구되는 기능사항들을 기준으로 충실히 이행하고 있는가를 테스팅하는 거라면 , Unit Test 는 그 기능들을 수행하는 코드의 구현과 구현된 코드가 BugFree, Clean code 하는가 등의 사항들을 테스팅 하는것이다. 아래의 그림은 어떠한 프로그램을 만들때 Functional Test 와 Unit Test 의 실행 흐름도를 보여준다.

The TDD process with functional and unit tests

 

출처 : Test Deriven Development with Python book