디버깅은 오류의 근본적인 원인을 규명하여 수정하는 과정으로 초기에 오류를 감지하는 과정인 테스트와는 반대되는 개념이다.

 

디버깅의 이점

  • 여러분이 작업중인 프로그램에 대해서 배울수 있다
  • 자신이 저지른 실수의 종류에 대해서 배울수 있다
  • 자신의 코드를 읽어야만 하는 사람의 관점에서 자신이 작성한 코드의 품질에 대해서 배울수 있다
  • 자신이 문제를 해결하는 방법을 배울수 있다.
  • 스스로 결함을 수정하는 방법을 배울수 있다

 

비효율적인 접근 방법

  • 추측으로써 결함을 찾는다.
  • 문제를 이해하려고 애쓰느라 시간을 낭비하지 않는다
  • 가장 명백한 수정으로 오류를 수정한다 - 오류가 나는 부분과 상관없는 곳을 분석하는데 신경을 쓰지 않는다

 

결함을 찾는데 도움이 되는 팁

  • 가설을 세우기 위해서 사용할수 있는 모든 데이터를 사용하라
  • 오류를 만드는 테스트 케이스를 개선하라
  • 단위 테스트에서 코드를 다루어라
  • 도구를 사용하라 - 디버깅 툴.
  • 여러가지 다양한 방법으로 오류를 재생산하라
  • 보다 많은 가설들을 세우기 위해서 보다 많은 데이터를 만들어라
  • 부정적인 테스트의 결과를 사용하라
  • 가능한 가설에 대한 브레인 스토밍을 해라
  • 연습장을 준비해서 시도해볼 목록을 만들어라
  • 의심스러운 코드 영역을 좁혀라
  • 이전에 결함이 있었던 클래스와 루틴을 의심해라
  • 최근에 변경한 코드를 검사하라
  • 의심스로운 코드 영역을 확장하라
  • 점진적으로 통합하라
  • 일반적인 결함을 검사한다
  • 프로그램에 대해서 다른사람과 이야기를 나누어라
  • 문제로부터 떨어져 휴식을 취하라

이 글은 스프링노트에서 작성되었습니다.

by 무위자연 2008. 2. 11. 11:53