본문 바로가기
DevOps

테스트 주도 개발(TDD, Test-Driven Development)

by 박다소니 2024. 10. 6.

 

테스트 주도 개발

테스트 케이스가 코드의 설계 및 개발을 주도함

시스템 내부 작동 박식의 세부사항에 초점을 맞춤

 

 

테스트가 개발을 주도한다.. 이게 무슨 말일까? 이해가 잘 가지 않는다.

순서를 살펴보면 다음과 같다는 건데,, 

- 코드 작성 -> 테스트 (X)

- 테스트 케이스 작성 -> 코드작성 (O)

원하는 코드에 대한 테스트를 먼저 작성하고, 이 테스트를 통과하도록 코드를 작성하는 것이다.

좀 더 자세히 알아보자!

 

 

테스트 케이스는 코드에 적용하려는 동작을 설명한다.

어떠한 동작을 해내는지를 검사하는 거니까 코드를 어떠한 동작, 즉 목적에 맞는 코드를 개발하는데 집중하게 한다는 것이다.

무슨 코드를 작성해야하는지 명확하게 하는 느낌..! 고객의 입장에서 개발을 바라보는 것이다.

 

 

기본 TDD 워크플로우는 다음과 같다.

레드-그린-리팩터

1. 원하는 동작을 수행하지 못하는 테스트 케이스를 작성한다.

2. 테스트를 통과하는 코드를 작성한다. 우선 원하는 동작을 하도록 만드는데 집중하는 것이기에 완벽하지 않아도 괜찮다.

3. 작성한 코드의 품질을 높인다.

4. 1~3 과정을 반복한다.

 


 

테스트 주도 개발을 따르면 코드가 예상대로 동작하고 있음을 보장할 뿐 아니라, 새 기능을 추가하거나 기존 기능을 수정할 때 테스트 케이스를 통해 문제를 빠르게 확인할 수 있다.

테스트 코드를 먼저 작성하는게 시간낭비라고 생각한다면 아니라는 말씀. 오히려 개발시간은 단축된다.