PHPUnitManual:11.2

From 흡혈양파의 번역工房
Jump to: navigation, search
11.2 디버깅 중의 테스트 (During Debugging)

발견된 버그를 서둘러 수정하려는 경향이 있습니다. 하지만 서둘러서 수정하려고 하는 경우, 문제 해결에 시간이 걸리곤 합니다. 버그를 수정한 결과로 새로운 버그를 일으키는 일도 흔합니다.


차분하게 다음과 같이 해 봅시다.

  1. 버그를 재현해 봅니다.
  2. 버그를 발생시키는 최소한의 코드를 발견합니다. 예를 들어, 숫자값이 비정상적인 경우, 이 숫자값을 계산하는 오브젝트를 찾습니다.
  3. 버그로 인해 실패하는 (버그가 수정되면 성공할) 테스트를 작성합니다.
  4. 버그를 수정합니다.


버그를 발생시키는 최소한의 코드를 발견하는 과정에서 버그의 원인을 특정할 수도 있습니다. 테스트를 작성하는 것은 버그를 완벽하게 수정할 수 있는 가능성을 높여 줍니다. 테스트를 통해 같은 실수를 다시 할 가능성을 줄일 수 있기 때문입니다. 지금까지 작성한 모든 테스트는, 부주의로 인해 다른 문제를 발생시킬 가능성을 줄여 줍니다.


단위 테스트에는 많은 이점이 있습니다. (Unit testing offers many advantages)
  • 코드를 작성한 사람과 코드를 평가하는 사람의 인식을 통일시켜 패치 (patch) 의 정밀도를 높인다. (Testing gives code authors and reviewers confidence that patches produce the correct results.)
  • 테스트를 작성하는 것은 많은 예상 밖의 사태에 대응할 수 있는 원동력이 된다. (Authoring testcases is a good impetus for developers to discover edge cases.)
  • 테스트에 의해 역행 (regression) 을 빠르게 발견할 수 있게 되고, 같은 역행이 두 번 다시 발생하지 않게 된다.
  • 단위 테스트는 해당 API 의 사용법의 좋은 예시가 된다. 문서 작성에도 활용 가능하다. (Unit tests provide working examples for how to use an API and can significantly aid documentation efforts.)


즉, 단위 테스트를 충실하게 작성하는 것은 프로그램 변경의 리스크를 감소시킨다. 프로젝트가 (중략) 의 설계에 관한 큰 개선 (중략) 을 빠르고 자신있게 수행하도록 할 것이다.


Notes