TDD란?
TDD는 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나입니다. 우선 개발자는 요구되는 새로운 기능에 대한 자동화된 테스트케이스를 작성하고, 그 후에 해당 테스트를 통과하는 가장 최소한의 코드를 작성합니다. 마지막으로 상황에 맞도록 리팩토링합니다.
TDD 과정
1) 테스트를 추가한다
테스트 주도 개발에서는 새로은 기능 개발을 시작할 때 테스트를 작성하는 것으로 시작합니다. 이 때, 개발자는 기능의 사양과 요구 사항을 명확하게 이해해하고 테스트를 작성하여야 합니다.
2) 모든 테스트를 실행하고 새로운 테스트가 실패하는지 확인한다
요구되는 사항이 이미 존재하여 새로운 테스트를 통과하는 가능성을 배제하기 때문에 새롭게 추가한 테스트는 새로운 코드가 없이는 통과하지 못할 것입니다.
3) 코드를 작성한다
테스트를 통과할 코드를 작성합니다. 이 단계에서의 코드는 완벽하지 않을 수도 있지만 5단계에서 개선될 것입니다.
4) 테스트를 실행한다
새 코드가 테스크 요구사항을 충족하면 모든 테스트 케이스가 통과 될 것입니다. 그렇지 않을 경우 테스트를 통과될 때 까지 새로운 코드를 조정하여야 합니다.
5) 코드를 리팩토링한다
갈수록 늘어나는 코드는 정기적으로 리팩토링하여 정리해야합니다.
6) 반복
위의 1 ~ 5의 과정을 반복하여 수행합니다.
TDD의 장점
1. 코드의 품질이 좋아진다
기능 하나하나에 테스트 코드를 작성하여 개발하기 때문에 에러와 버그가 줄어듭니다. 주기적인 리펙토링을 통해 각 기능들이 객체, 메소드화 되어서 코드의 재사용성과 가독성이 좋아집니다.
2. 프로그래밍 시간이 단축된다
테스트 코드를 작성하는데 시간을 할애하지만 전체적인 작업 시간은 줄어듭니다. 프로그래밍의 대부분의 시간이 디버깅에 사용되는데 TDD는 디버깅의 범위를 테스트 단위로 제한하여 디버깅에 드는 시간을 단축시킵니다.
'Dev > Etc' 카테고리의 다른 글
자가 서명 인증서 생성 (0) | 2020.03.03 |
---|---|
정규표현식 (0) | 2019.08.04 |
콘솔 창 없이 배치파일 실행하는 방법 (0) | 2019.06.28 |
메소드 체이닝 (Method Chaining) (0) | 2019.06.28 |
WEB서버와 WAS 비교 (0) | 2019.06.28 |