ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머] 버그 리포트 사용법
    97가지 시리즈/프로그래머 2018.11.06 20:20

    #프로그래머가_알아야_할_97가지 vol.37

    버그 리포트 사용법 by. Matt Doar


    소프트웨어에는 반드시 버그가 있습니다. 상황에 따라 코드 불량, 설계상의 문제와 같이 다르게 부르기도 하지만, 어쨌든 모두 버그라고 할 수 있습니다. 프로젝트를 원활히 진행하기 위해서는 이 버그에 관한 버그 리포트의 작성이 필수입니다.


    버그 리포트에는 무엇이 요구되는지 어떻게 쓰면 좋을지 알아 두는 것은 매우 중요합니다. 버그 리포트에는 반드시 다음 3가지 사항을 써야 합니다.


    - 버그의 재현방법(가능한 한 상세하게)과 발생빈도


    - 본래의 사양(제대로 된 동작. 혹은 이래야 한다는 내용. 자신의 의견이라도 상관없음)


    - 지금의 동작(완전하지 않더라도, 자신이 기록한 범위내로 자세하게)


    버그 리포트를 보면 그것을 쓴 사람이 어떤 사람인지도 동시에 전해집니다. 상세하고 질 좋은 리포트를 쓰면 쓴 사람에 대한 평가도 높아질 것이고 반대로 퉁명스럽고 짜증 담긴 리포트("이 함수는 쓰레기"라고 밖에 쓰여 있지 않다든지)를 쓰면 쓴 사람의 인격이 의심받게 됩니다. 짜증이 담긴 리포트는 쓴 사람이 아주 불쾌하다는 것만큼은 제대로 전달되겠지만, 대부분 거의 도움이 되지 않는 내용이 담겨 있을 때가 많습니다. 버그 리포트를 작성하는 건 누군가와 대화하기 위함입니다. 대화하려면 그 버그가 발생한 과정 모두를 상대방에게 설명해야 합니다. 같은 정보를 공유하지 않으면 대화가 성립되지 않기 때문입니다. 버그 리포트는 결코 누군가를 비난하거나 코드를 비판하기 위한 것이 아닙니다. 버그에 대해 더 많은 정보를 얻는 것, 자신이 몰랐던 사실을 아는 것, 그것이 버그 리포트의 목적입니다.


    버그의 상태를 '미해결'에서 '해결 완료'로 변경한다는건 다른 사람에게 '나는 이 버그가 문제가 없다고 생각한다'는 무언의 메세지가 됩니다. 그 메세지에는 시간과 노력을 들여서라도, 상태를 바꾼 이유를 적어 두어야 하겠지요. ("왜 해결 완료라고 생각했는지") 그렇게 해 두면 관리자와 고객을 짜증나게 할 일도 사라지고 나중에 그들을 설득하기 위해 시간을 쓸 필요도 없어집니다. 마찬가지로 버그의 우선도를 변경했을 때도 역시 다른 이에게 무언의 메시지가 됩니다. 주의해야 할 것은 버그의 우선도를 바꾼다고 해서 버그가 해결된 것도 아니고 더이상 시스템에서 그 문제가 발생하지 않게 되는 것도 아니라는 사실입니다.


    버그 리포트를 쓸 때는 주의할 점은 하나의 입력란에 이것저것 정보를 너무 많이 담지 않도록 해야 합니다. 예를 들어, 딱히 규칙도 없는데 '제목' 란에 'VITAL:'(치명적)이라고 마음대로 붙이는 행동은 피해야 합니다. 버그의 중요도를 나타낼 수 있고, 정렬하기 쉽게 될지는 모르겠지만 다른 사람이 흉내를 낼 수가 있고 그때 미묘하게 표기를 바꿔서 대문자, 소문자를 바꿔 쓰거나 콜론을 한 칸 띄우거나 하는 일이 반드시 일어나게 됩니다.


    다른 리포트에 옮겨 쓸 때, 내가 적은 "VITAL:"을 하나하나 지워가며 옮겨 써야 할지도 모릅니다. 뭔가 정보를 추가로 주고 싶을 때는 새로 입력란을 추가하는 것이 좋습니다. 그리고 그 입력란의 용도도 주석으로 잘 남겨 두도록 합니다. 다른 사람이 중복해서 만드는 일이 없도록 말이죠.


    버그 리포트의 수가 증가하면 프로젝트 구성원 전원이 필요한 리포트를 제대로 찾아낼 수 있는 수단도 마련해야 합니다. 일반적으로 리포트 검색을 위한 쿼리를 만들게 됩니다. 쿼리는 누가 봐도 알 수 있는 이름을 붙이고 모두가 같은 걸 사용하도록 해야 합니다. 쿼리를 변경할 때는, 그때마다 팀 전원에게 무엇을 어떻게 변경했는지를 전달합니다.


    가장 중요한 것은 버그에 대한 인식 입니다. 버그 수는 어떤 단위, 기준이 아니다라는 것입니다. 코드의 길이가 노력의 정도를 나타내지 않는 것처럼 말이죠.



    저자: Matt Doar

    버전 관리툴(CVS、Subversion), 빌드 시스템(make、SCons), 백트랙커(Bugzilla、JIRA)등 소프트웨어툴에 관한 컨설턴트

    고객의 대부분은 실리콘밸리의 소규모 벤처 기업이다.


    [프로그래머] 버그 리포트 사용법


    [출처] プログラマが知るべき97のこと (O'Reilly Japan)

    이 글은 [CC-by-3.0-US]에 의해 라이센스 되었습니다.




    댓글 0

Designed by Tistory.