1-1. TDD 개념
작은 단위의 테스트 케이스를 작성하고, 이를 통과하는 코드를 추가함으로써 안정감을 주는 코드 작성 방법
'테스트 주도 개발'이라고 함.
QA 전에 개발자 수준에서 코드 품질과 동작 안정성을 보장하는 방법
1-2. TDD 특징
일반 개발 방식
일반적인 개발 주기는 요구사항 분석 -> 설계 -> 개발 -> 테스트(QA) -> 배포 형태로 이루어진다.
기존 코드는 자체적으로 버그를 검출하는 능력이 없어서 소스 코드의 품질이 좋지 않다.
TDD를 적용한다는 것은 테스트 코드를 먼저 작성한 후에 실제 코드를 작성하는 것이다.
즉, 요구사항 분석 -> 설계 -> *(테스트 코드 작성 -> 개발) -> 테스트(QA) -> 배포 형태로 이루어진다
무엇을 테스트하면 좋을지 디자인(설계) 단계에서 테스트 케이스를 미리 정의한다.
테스트 케이스마다 테스트 코드를 작성하고, 작성 중에 발생한 예외사항(버그)은 테스트 케이스에 추가하면 된다.
테스트가 통과된 코드만 실제 코드에 반영한다.
TDD를 적용함으로써 코드의 품질을 높이고, 리팩토링을 쉽게 할 수 있게 하며, 개발 과정에서 발생할 수 있는 버그를 미리 방지하는 데 도움을 준다.
이러한 과정을 반복적으로 거치면 코드가 모듈화되고 정리되고 버그도 현저히 줄일 수 있다는 장점이 있다.
단점은 일반 개발 방식보다 개발 시간이 늘어나 시간이 부족한 프로젝트에선 적용하기 어렵다는 점이다.