일반적으로 많이 이런 식으로 설계, 코드 작성, 테스트 과정을 거치고 다시 수정 작업을 거치게 된다.
하지만 TDD 개발 방식은 설계 이후 테스트코드를 작성하고 테스트를 통과할 때까지 개발과 리팩토링 과정을 거친다
알고리즘 문제를 풀 때 프로그래머스를 많이 이용했을 것이다
아래처럼 문제 제출을 할 때 테스트케이스가 열심히 돌아가고 통과와 실패가 뜰 것이다
디자인 : 알고리즘 문제
테스트코드 작성 : 프로그래머스에서 제공하는 테스트 케이스
개발 : 테스트 케이스를 통과하기 위한 알고리즘 개발 과정
리팩토링 : 테스트케이스에서 실패가 뜨면 통과하기 위해 다시 코드를 고치는 과정
TDD 개발을 하면 피드백이 증가한다
테스트를 통과나 실패하는 것으로 개발이 잘되고 있는지 자주 확인할 수 있다
짧은 개발 주기를 통해 변경,요구사항을 빠르게 수용 가능하다
테스트케이스 없이 남이 짠 코드를 이해하는 것은 쉽지 않다
TDD는 테스트를 통해 Input Output이 확실해 지기 때문에
내가 짠 코드, 남이 짠 코드를 빠르고 쉽게 이해할 수 있다
TDD로 개발한다면 QA과정에서 검출되는 오류가 현저하게 떨어진다
개발단계에서 예상하지 못했던 오류들을 쉽게 고칠 수 있다
많은 리팩토링 과정을 거치기 때문에 코드복잡도가 떨어지기 때문에 Clean Code가 된다
기존 개발 프로세스에서 TDD로 전환 한다면 테스트케이스 설계 및 코드 작성이 추가되므로 생산 비용이 증가한다.
이번 주에는 TDD에서 자료도 많이 찾아보고
내가 쓰는 Nodejs에서 Mocha라는 테스트 프레임워크에 대한 조사를 하고 있고
앞으로 Mocha를 사용해서 TDD를 진행하는 것에 대한 포스팅을 할 것 같다