• 리팩토링을 실시하기 위한 필수 전제조건은 반드시 견고한 테스트를 해야한다.
  • 적절한 테스트를 작성하면 설령 리팩토링을 하지않더라도 프로그래밍 속도가 월등히 왜 빨라지는 가에 대해서 설명

1. 자가 테스트 코드의 가치

  • 버그를 찾는 데 시간을 많이 소요하는 프로그래머들이 존재
  • 모든 테스트를 완전히 자동화하고 결과를 자체적으로 검사하게 하자.
  • 테스트 스위트(하나의 테스트)는 버그를 찾는 시간을 획기적으로 줄여주는 강력한 버그 감지 도구이다.

2. JUnit 테스트 프레임 워크

  • 예제 소스

3. 단위 테스트와 기능 테스트

  • 단위 테스트(Unit Test) -> 부분적인 단위만 테스트 한다. 한정적이다
  • junit 의 경우 단위테스트용 도구이다
  • 기능 테스트(Functional Test): 소프트웨어 전체가 제대로 동작하는 지 확인하기 위해 작성한다.
  • 보통 전체 시스템을 하나의 블랙박스처럼 취급한다. GUI를 통해 테스트를 하고 특정 입력에 대해서 데이터가 어떻게 변하는 지를 본다.
  • 버그 발견 시 코드를 수정해야 하고 버그를 볼수 있게 표시하는 단위테스트를 작성한다.

4. 테스트 추가

  • 완벽한 테스트를 작성하려다 아예 테스트를 포기하느니, 차라리 불완전한 테스트를 작성해 실행하는 편이 낫다.