목차

 

테스트 우선하기

많은 개발자들은 빨리 구현해야 한다는 압박에 코드를 충분히 테스트하지 않고 기능을 구현한다.

 

압박 → 스트레스 테스트 안함 

 

시간이 흐르면

  • 코드가 복잡해짐( 가독성 저하)
  • 소프트웨어 품질 저하
  • QA 를 거치면서 버그 발생 
  • 버그 수정으로인한 버그 발생

TDD 를 적용!!

 

이점

  • 회귀테스트로 사용 할 수 있다.
    • 코드를 수정하거나 추가할 때 앞서 작성한 테스트 코드를 사용하여 다른 기능에 문제가 없는비 바로 확인
    • 변경한 코드로 인해 소프트웨어가 비정상적으로 동작하는 것을 사전에 막아줌
  • 버그 수정도 쉬워진다.
    • 버그가 발생하는 상황에 대한 테스트 코드를 추가하고 이를 통과시키면된다.
    • 버그를 고치는 과정에서 발생할 수 있는 새로운 버그를 놓치지 않을까 걱정할 필요가 없어진다.

TDD 전파하기

TDD 가 익숙해지면 오는 효과

  • 결함 감소
  • 스트레스 감소
  • 빠른 피드백

먼저 TDD 에 익숙해 지기위해서 "개인 프로젝트" 를 통해 TDD 연마 필수

 

레거시 코드에 대한 테스트 추가 방법

  • 레거시 코드에 대한 테스트를 많이 해보자
    • 어떻게 테스트 코드를 만들어야 할지 감이 잡힌다.
  • 테스트 코드를 만들기 힘든 부분은 일부 코드를 리팩토링해서 구조 변경
    • 테스트 하고 싶은 일부 코드부분을 분리하여 별도 클래스로 구현 : 범위가 작을수록  수월
    • 분리하려 만든 코드를  테스트 코드로 작성 : 점진적으로 코드를 분리 및 테스트 작성

TDD와 개발 시간

전체 개발 시간을 줄이려면 코딩 시간뿐만 아니라 테스트 시간과 디버깅 시간을 줄여야 한다.

  • 테스트 시간을 줄이는 방법 = 테스트 자동화 ▶ TDD 를 활용한 테스트 자동화
  • 디버깅 시간을 줄이는 방법  = 빠른 버그 발견 ▶ TDD 를 활용하여 초기에 버그 발견
  • 코딩 시간을 줄이는 방법 = 리팩토링을 통한 코드 구조와 가독성 개성 ▶ TDD 를 하면서 리팩토링
    • 리팩토링은 코드의 구조와 가독성을 개선한다. 즉, 미래에 코드 추가나 수정을 쉽게 해준다. 이는 곧 미래의 코딩 시간을 줄여준다.

# 하나의 기능을 구현할 때 테스트를 작성하여 통과할 때까지 구현을 하면 개별 요소에 대한 개발 시간을 단축 할 수 있다. 또한 브라우저를 실행해서 기능을 확인하는 하고 수정하는 과정도 줄일 수 있다. 

+ Recent posts