TDD란 무엇인가

권민제·2021년 7월 17일
2

TDD

목록 보기
1/3
post-thumbnail

✅TDD란?

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

일반적인 개발


일반적으로 많이 이런 식으로 설계, 코드 작성, 테스트 과정을 거치고 다시 수정 작업을 거치게 된다.

🔄 TDD 개발


하지만 TDD 개발 방식은 설계 이후 테스트코드를 작성하고 테스트를 통과할 때까지 개발과 리팩토링 과정을 거친다

▶ 예시

알고리즘 문제를 풀 때 프로그래머스를 많이 이용했을 것이다
아래처럼 문제 제출을 할 때 테스트케이스가 열심히 돌아가고 통과와 실패가 뜰 것이다

TDD과정을 프로그래머스 알고리즘을 푸는 과정으로 설명하자면

디자인 : 알고리즘 문제
테스트코드 작성 : 프로그래머스에서 제공하는 테스트 케이스
개발 : 테스트 케이스를 통과하기 위한 알고리즘 개발 과정
리팩토링 : 테스트케이스에서 실패가 뜨면 통과하기 위해 다시 코드를 고치는 과정

🤷‍♂️ 테스트 코드를 왜 작성해야 하는가?

👍 장점

피드백

TDD 개발을 하면 피드백이 증가한다
테스트를 통과나 실패하는 것으로 개발이 잘되고 있는지 자주 확인할 수 있다
짧은 개발 주기를 통해 변경,요구사항을 빠르게 수용 가능하다

협력

테스트케이스 없이 남이 짠 코드를 이해하는 것은 쉽지 않다
TDD는 테스트를 통해 Input Output이 확실해 지기 때문에
내가 짠 코드, 남이 짠 코드를 빠르고 쉽게 이해할 수 있다

오류

TDD로 개발한다면 QA과정에서 검출되는 오류가 현저하게 떨어진다
개발단계에서 예상하지 못했던 오류들을 쉽게 고칠 수 있다

Clean Code

많은 리팩토링 과정을 거치기 때문에 코드복잡도가 떨어지기 때문에 Clean Code가 된다

👎 단점

생산 비용 증가

기존 개발 프로세스에서 TDD로 전환 한다면 테스트케이스 설계 및 코드 작성이 추가되므로 생산 비용이 증가한다.

⏹ 마무리

이번 주에는 TDD에서 자료도 많이 찾아보고
내가 쓰는 Nodejs에서 Mocha라는 테스트 프레임워크에 대한 조사를 하고 있고
앞으로 Mocha를 사용해서 TDD를 진행하는 것에 대한 포스팅을 할 것 같다

profile
성장하는 개발자!

0개의 댓글