TDD (Test-Driven Development)
매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나로, 개발자느 먼저 요구 사항을 검증하는 자동화된 테스트 케이스를 작성 하고 그 후 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. by Wik
위의 사진과 같이 TDD는 요구사항을 받은 후 세가지 절차가 반복된다.
- 실패 : 첫번째 절차는 실패, 실패하는 테스트 케이스를 만든다.
- 성공 : 두번째 절차는 성공, 우리가 작성하는 실패하는 테스트 케이스를 통과시키기 위해 코드를 작성하여 테스트를 통과시키는 것이다.
- 리팩토링 : 세번째 절차는 리팩토링, 우리가 구현한 코드를 더 개선시킬 방법이 생긴다면 리팩토링을 진행한다.
리팩토리을 진행하고 나서 테스트 케이스가 성공하는 지 확인하고 그 절차가 끝나면 다시 다음 기능 구현 테스트 코드 작성을 시작한다.
TDD의 필요성
- 코드 복잡도 감소 : 리팩토링을 위한 Clean Code 지향
- Defect(결함) 감소 : Test Case를 통과하는 코드만 만들기 때문에 결함 발생률 감소
- 피드백 : 테스트를 자주하기 때문에 내 코드에 대한 피드백을 직접적으로 체험
- 협력 : 테스트를 위해 필히 해야 할 협력을 자주 수행
이론은 간단히 정리하고 다음 글 부터 Jest를.