목차
테스트 우선하기
많은 개발자들은 빨리 구현해야 한다는 압박에 코드를 충분히 테스트하지 않고 기능을 구현한다.
압박 → 스트레스 ⮂ 테스트 안함
시간이 흐르면
- 코드가 복잡해짐( 가독성 저하)
- 소프트웨어 품질 저하
- QA 를 거치면서 버그 발생
- 버그 수정으로인한 버그 발생
TDD 를 적용!!
이점
- 회귀테스트로 사용 할 수 있다.
- 코드를 수정하거나 추가할 때 앞서 작성한 테스트 코드를 사용하여 다른 기능에 문제가 없는비 바로 확인
- 변경한 코드로 인해 소프트웨어가 비정상적으로 동작하는 것을 사전에 막아줌
- 버그 수정도 쉬워진다.
- 버그가 발생하는 상황에 대한 테스트 코드를 추가하고 이를 통과시키면된다.
- 버그를 고치는 과정에서 발생할 수 있는 새로운 버그를 놓치지 않을까 걱정할 필요가 없어진다.
TDD 전파하기
TDD 가 익숙해지면 오는 효과
- 결함 감소
- 스트레스 감소
- 빠른 피드백
먼저 TDD 에 익숙해 지기위해서 "개인 프로젝트" 를 통해 TDD 연마 필수
레거시 코드에 대한 테스트 추가 방법
- 레거시 코드에 대한 테스트를 많이 해보자
- 어떻게 테스트 코드를 만들어야 할지 감이 잡힌다.
- 테스트 코드를 만들기 힘든 부분은 일부 코드를 리팩토링해서 구조 변경
- 테스트 하고 싶은 일부 코드부분을 분리하여 별도 클래스로 구현 : 범위가 작을수록 수월
- 분리하려 만든 코드를 테스트 코드로 작성 : 점진적으로 코드를 분리 및 테스트 작성
TDD와 개발 시간
전체 개발 시간을 줄이려면 코딩 시간뿐만 아니라 테스트 시간과 디버깅 시간을 줄여야 한다.
- 테스트 시간을 줄이는 방법 = 테스트 자동화 ▶ TDD 를 활용한 테스트 자동화
- 디버깅 시간을 줄이는 방법 = 빠른 버그 발견 ▶ TDD 를 활용하여 초기에 버그 발견
- 코딩 시간을 줄이는 방법 = 리팩토링을 통한 코드 구조와 가독성 개성 ▶ TDD 를 하면서 리팩토링
- 리팩토링은 코드의 구조와 가독성을 개선한다. 즉, 미래에 코드 추가나 수정을 쉽게 해준다. 이는 곧 미래의 코딩 시간을 줄여준다.
# 하나의 기능을 구현할 때 테스트를 작성하여 통과할 때까지 구현을 하면 개별 요소에 대한 개발 시간을 단축 할 수 있다. 또한 브라우저를 실행해서 기능을 확인하는 하고 수정하는 과정도 줄일 수 있다.
'TDD > 테스트 주도 개발 시작하기' 카테고리의 다른 글
[ TDD ] [ 책 ] 9 장 테스트 범위와 종류 (0) | 2024.10.31 |
---|---|
[ TDD ] [ 책 ] 8 장 테스트 가능한 설계 (0) | 2024.10.30 |
[ TDD ] [ 책 ] 7 강 대역 (0) | 2024.10.28 |
[ TDD ] [ 책 ] 5 장 JUnit 5 기초 (0) | 2024.10.22 |
[ TDD ][책] 4장 TDD 기능명세 설계 (0) | 2024.10.11 |