TDD: Test Driven Development으로 테스트를 먼저 작성함으로써 즉각적인 피드백을 얻을 있고 프로그램의 품질을 높이고 안정성을 확보할 있는 방법.
Junit같은
도구를 이용한다 든가 CI서버라든가 리펙토링 테스트를 만들었을때 지속적으로 이점을 느낄수 있게 하는 도구가 많다. MAIN 메소드 이외에서 단위 테스트가 가능하다는 점에서 핵심로직을 분리해서 테스트 할 있다.단점있다. 단점: 개발속도가 느려진다. 테스트를 만들기 떄문에 속도가 줄어듭니다. 개발 Cost 가하는 것뿐 다른 단점은 없다.

장점
: 테스트를 먼저 작성하다보니 개발하고자 하는 의도가 명확해져 프로젝트 투입에 전체에 대한 그림을 다그리지 못했음에도 차근차근 이해하면서 개발할 있다.
생각지 못한 타이밍에 fail 빨간 막대는 스트레스라기 보단 안심을 주는 장치이다.
그로 인해안심하고 진행할 있다.

Unit test: 단위테스트로
Junit 같은 도구가 있다.

장점: 테스트케이스를 작성함으로써 영향을 끼치는 구조를 파악할 있다.
테스트 케이스들로 안심하고 리팩토링을 있점이 좋다.
개발과정 미리 문제를 파악할 있다.
테스트 자동화를 통해서 항상 딜리버리가 가능한 소프트웨어 제품을 만들 있다.
새로운 입력이 팀에 합류 했을때, 개발 스타일, 표준 ,컨벤션등을 공유하기에 좋다.
페어 프로그래밍할 때, 테스트케이스 작성하고 개발하는 역할 핑퐁을 통해서 개발을 페어로 중해서 진행할 수 있다.
TDD + Pair Programming 한다면, 테스트케이스 작성한 사람의 설계를 공유하면서 소스 개발까지 이어질 수있어 집중도가 높아진다.

단점: 시간이 많이 걸린다.
개발 cost 많이 들기 떄문에 개발팀 전체가 규칙을 세우고 관심을 가져야 한다.

결론: TDD 한다고 나쁜 냄새가 나는 코드나 구조를 만드는 것은 아니다.
테스트 한다는 
것은 어렵다. 하지만 점진적으로 해나가다보면 적응할  있다.
junit 같은 도구를 사용하여 테스트를 먼저 작성함으로써 개발과 동시에 서비스 로직을 이해하는 방법이 TDD이다. 

'TDD, Test, Git' 카테고리의 다른 글

깃허브(Github) 이슈(Issue)기반 branch 생성  (0) 2020.06.19

+ Recent posts