TDD 개발 절차

CODEDRAGON Security/SecureCoding

반응형


 

TDD 개발 절차

구분

단계

1

테스트 추가

2

테스트 수행(새로운 테스트 실패되도록)

3

코드 작성

4

테스트 수행(모든 테스트 성공할 때까지)

5

코드 리팩토링

6

반복

 

 

 


 

 

Step1 : 테스트 추가

·         추가되는 기능에 대해 구현에 앞서 테스트 케이스를 작성합니다.

·         테스트 케이스로 작성되는 기능은 유닛 테스트 정도의 작은 기능으로 구현합니다.

·         테스트 케이스를 작성하는 개발자는 기능에 대한 상세 요구사항을 파악해야 합니다.

·         테스트 케이스 작성은 JUnit 같은 유닛 테스트 활용합니다.

 

 

 

 

Step2 : 테스트 수행(새로운 테스트 실패되도록)

·         추가한 테스트 케이스를 포함하여 유닛 테스트를 수행합니다.

·         새롭게 추가된 테스트 케이스의 결과는 실패(Fail) 떨어집니다. 새롭게 추가된 테스트 케이스에 대한 코드는 구현되지 않았기 때문에 실패(Fail)하는 것이 당연합니다.

·         추가된 테스트 케이스만 실패하여 개발자에게 구현 테스트에 대한 확신을 있습니다.

 

 

 

 

 

 

Step3 : 코드 작성

·         테스트 케이스 실패 원인이 코드를 작성하는 단계입니다.

·         테스트 케이스 이외의 코드 작성은 금지합니다.

·         테스트 케이스의 결과가 성공(Pass) 수준의 코드로 작성하는 것이 목표입닏.

 

 

 

 

 

 

 

Step4 : 테스트 수행(모든 테스트 성공할 때까지)

·         테스트 케이스를 다시 한번 수행하는 단계입니다.

·         추가된 테스트 케이스 모든 테스트 케이스를 통과(Pass)하는 것이 목표입니다.

·         모두 통과 개발자는 구현사항이 요구사항을 만족한다는 것에 확신할 있습니다.

·         새롭게 추가한 코드가 부작용을 일으키지 않았다는 것을 확인할 있습니다.

·         테스트 케이스가 통과(Pass)하지 않는 경우 추가된 코드에 문제 있음로 수정이 필요하며 수정 단계를 다시 수행합니다.

 

 

 

 

  

Step5 : 코드 리팩토링

·         테스트 주도 개발 프로세스 수행시 정기적 코드에 대한 리팩토링 수행이 필요합니다.

·         신규기능 추가에 의한 코드 규모 확대, 중복 코드 제거, 구조 개선, 식별자의 의미가 명확하게 나타나도록 변경 등의 작업을 수행합니다.

·         리팩토링 후에 지속적으로 테스트 케이스를 실행합니다.

·         모든 테스트 케이스 통과(Pass) 리팩토링이 기존 기능을 변형시키지 않았음을 확인할 있습니다.

 

 

 

 

 

Step6 : 반복

·         요구사항의 새로운 기능 추가 구현시 1번째 단계(테스트 추가)부터 반복하여 수행합니다.

·         단계의 수행은 간결하게 유지합니다.

·         기능을 작은 단위로 쪼개서 수시로 반영합니다.

·         테스트 주도 개발 절차에 의해 반복적으로 수행합니다.