Digital MarketingSeptember 10, 202510 min read
    ER
    Elena Ross

    완벽한 버그 보고서를 작성하는 방법 - 팁, 트릭, 그리고 모범 사례

    완벽한 버그 보고서를 작성하는 방법 - 팁, 트릭, 그리고 모범 사례

    완벽한 버그 보고서 작성 방법: 팁, 트릭 및 모범 사례

    브랜드 제목과 구조화된 본문을 가진 명확하고 재현 가능한 버그 보고서를 작성하세요. 관찰된 동작을 한 문장으로 설명하는 간단한 텍스트로 시작하고 전문 용어를 피하세요. 팀원들이 오늘 데이터를 접근할 수 있도록 환경에 대한 약간의 맥락을 제공하세요. 보고서를 다른 사람들이 html 블록에서 빠르게 훑어보고 영향을 파악할 수 있는 공유-준비된 아티팩트로 취급하세요.

    재현을 위한 여섯 가지 구체적인 단계를 나열하세요. 각 단계는 동사로 시작하며 정확한 작업, 입력 및 상태를 설명합니다. 단계를 간결하게 유지하세요; 긴 단계는 명확성을 줄이고 오류를 증가시킵니다. 버그가 특정 창 크기에 의존하는 경우, 너비 x 높이(예: 1280x720)를 포함하세요. 상태 변화를 설명하기 위해 작업 전, 중, 후의 주요 지점에 스크린샷을 첨부하세요. 오해를 방지하고 쉽게 반복할 수 있도록 단계에서 일반 텍스트를 사용하세요.

    예상 결과와 실제 결과를 정확한 값이나 메시지로 대비하세요. 로그나 콘솔에서 텍스트 스니펫을 포함하고 실패가 발생하는 시간을 참조하세요. 타임스탬프를 포함하는 경우, 날짜를 파싱하기 위해 python-dateutil을 사용했다고 언급하세요. 캡처된 필드가 undefined인 경우 모호성을 피하기 위해 명시적으로 undefined로 표시하세요. 이 보고서는 트리아지와 해결에 중요합니다.

    환경 스냅샷: 운영 체제, 브라우저, 앱 버전, 로케일 및 기능 플래그. 정확한 버전 번호를 기록하세요(예: 앱 3.14.2, python-dateutil 2.8.1). 문제가 나타나는 하드웨어 또는 인스턴스와 관련 사용자 역할을 기록하세요. 이 정보는 트리아지를 가속화하고, 왕복을 줄이며, 팀이 관찰에서 행동으로 더 빨리 이동할 수 있게 본질적으로 합니다.

    버그를 실제 아이디어의 위험에 연결하여 비즈니스 용어로 영향을 전달하세요. 보고서를 브랜드화하고 접근 가능하게 유지하세요; 적절한 노드 소유자와 이해관계자에게 공유하세요. 단계와 결과를 설명하기 위해 텍스트 블록을 사용하세요; 재현 창이 명확한지 확인하세요. 알려지지 않은 데이터가 있는 경우 추측하는 대신 플레이스홀더를 포함하세요; 다른 사람들이 오늘 검증과 팀 간 공유를 위해 재사용할 수 있는 정확하고 읽기 쉬운 데이터에서 많은 가치가 나옵니다.

    Instagram 스토리 필터 버그 재현 단계

    재현 가능한 스크립트를 사용하세요: 장치 모델, OS 버전, Instagram 앱 버전 및 정확한 필터 이름을 캡처하세요; 정확한 탭, 지속 시간 및 카메라가 전면인지 후면인지 로그하세요. 버그를 타임스탬프로 설명하는 짧은 비디오 클립을 포함하세요. repro 스크립트라고 불리는 가이드가 일관성을 유지하는 데 도움이 됩니다. 로그와 증거를 하나로 연결하여 검토자가 실행할 수 있는 보고서로 만드세요.

    보고서 내에서 단계를 트리거 상태별로 그룹화하고 테스트 환경이 제공하는 상수에 매핑하세요. 둘째, 맥락 혼란을 피하기 위해 로그를 단일 파일에 유지하세요. 실패로 이어지는 가장 일반적인 다섯 가지 경로를 식별하세요: 필터 열기, 효과 토글, 녹화, 저장 및 공유. 테스터의 역할은 각 경로의 결과를 검증하고 실행이 예상 상태에서 벗어나는 위치를 찾는 것입니다.

    기억에 의존하지 마세요; 여기에는 추측이 없습니다. 버튼 레이블, 제어 상태 및 UI 지연을 포함한 모든 작업을 정확한 세부 사항으로 문서화하세요. 강력한 증거의 예로는 정확한 필터 이름, 장치 모델, OS 버전, 타임스탬프 및 문제 없이 문제를 보여주는 짧은 사전 제작 비디오가 있습니다. 로그를 확인한 경우, 관련 상수와 UI의 프로그래밍 실수를 기록하세요. 이러한 세부 사항은 검토자가 결과를 빠르게 검증하는 데 도움이 됩니다. 누락된 단계가 없는지 확인하기 위해 라이트하우스 체크리스트를 따르고, 이름을 명확하게 유지하기 위해 자신의 테스트를 라벨링하세요. 이러한 노트는 맥락 부족을 방지합니다.

    단계작업상태/트리거증거예상 결과
    1Instagram 스토리를 열고 영향을 받는 필터 선택필터 로드; 유휴필터 이름 스크린샷; 장치/시간필터가 정상적으로 로드되며 글리치 없음
    2짧은 클립(5-10초) 녹화녹화 시작보고서에 첨부된 비디오 클립크래시 없이 녹화 진행
    3녹화 중 효과 토글 또는 노출 조정화면 제어 활성콘솔 로그, 화면 녹화검토 시 별칭 없음; 예상 효과 유지
    4스토리 저장 또는 게시상태가 저장/게시로 전환갤러리 저장 자산, 타임스탬프성공적으로 저장; 필터 안정 유지
    5스토리 다시 열고 보기앱 재로드; 상태 복원시청 시퀀스; 재확인버그 재현 여부; 불일치 기록

    환경, 장치 및 필터 버전 세부 정보 캡처

    환경, 장치 및 필터 버전 세부 정보 캡처

    문제를 재현할 때 사용된 정확한 필터 버전과 펌웨어/빌드 버전, 장치 모델, 운영 체제를 즉시 전체 환경으로 캡처하세요.

    템플릿 데이터 클래스를 사용하여 주요 필드를 수집하세요: 환경, 장치, 빌드, filter_version, 타임스탬프 및 변경 사항. 테스트 시작 시 초기화하고 완료 시 업데이트하세요. 데이터 클래스로 깨끗한 데이터 모델을 만드는 것은 타이핑을 더 엄격하게 유지하고 직렬화를 예측 가능하게 하여 검토와 팀 간 공유를 돕습니다.

    환경 항목을 장치와 구성의 반복 가능한 목록으로 저장하세요. 항목별 세부 사항을 로그하세요: 모델, OS 버전, 앱 빌드 및 사용된 필터. 파싱을 단순화하기 위해 env_ 또는 device_와 같은 일관된 접두어를 사용하고, 문제가 특정 운영자 설정에 의존하는 경우 간결한 운영자 노트를 제공하세요.

    필터 버전 세부 사항을 별도의 섹션으로 기록하세요: 이름, 버전 태그, 커밋 해시 및 빌드 날짜. 버그와 상관관계가 있는 변경을 식별하기 위해 이전 버전과의 비교를 포함하고, 트리아지를 안내하기 위해 빠른 검증 테스트 결과를 첨부하세요.

    경량 완료 체크리스트를 제공하세요: 별칭에 대한 역 조회로 초기화를 검증하고, 수집된 데이터를 검토하며, 템플릿이 테스트 계획과 일치하는지 확인하세요. 성공적인 실행 후 환경 스냅샷이 완료되었다고 항목에 명시하고, 요약이 검토 준비가 되었습니다.

    적응할 수 있는 예시 구조: BugContext라는 데이터 클래스를 정의하고 필드를 포함하세요: environment: str, devices: list[str], filter_versions: list[str], timestamp: str, items: list. 이는 단일 초기화 단계와 관련 로그에 대한 역 조회로 결과를 캡처하고 재현하는 가장 빠른 경로를 지원합니다. 또한 일관된 검토 추적과 신뢰할 수 있는 기준을 제공하여 프로그래밍 변경을 추적할 수 있게 합니다.

    버그 명확히 설명: 단계, 예상 vs 실제 결과 및 영향

    버그 명확히 설명: 단계, 예상 vs 실제 결과 및 영향

    권장 사항: 무엇이 실패했는지, 어디서 발생했는지, 누가 영향을 받았는지 명시하는 간결한 한 줄 요약으로 시작하세요. 그런 다음 세 섹션을 제공하세요: 재현 단계, 예상 vs 실제 결과, 영향. 트리아지를 가속화하기 위해 환경과 로케일 같은 배경 세부 사항을 포함하세요.

    재현 단계: 1) 영어 로케일에서 게시물 페이지 열기. 2) 프로필에 이름과 생년월일이 비공개 필드에 포함된 고객으로 로그인. 3) 새 게시물 양식의 시작 버튼 클릭. 4) 8–12자 제목 입력하고 여러 문자열과 내용이 포함된 본문을 입력하여 총 100자 이상. 5) 게시물 제출. 6) 페이지와 분석에서 결과 관찰.

    예상 결과: 게시물이 오류 없이 저장되고, 작성된 대로 페이지에 나타나며, 내용이 동일한 문자 순서로 렌더링됩니다. 비공개 데이터가 공개 보기으로 유출되지 않으며, 분석은 올바른 페이로드와 함께 단일 post-created 이벤트를 발생시킵니다.

    실제 결과: 저장 작업이 오류를 반환하거나 페이지에 변경된 내용이 표시됩니다. 게시물이 잘린 텍스트로 나타나거나 다른 게시물이 표시됩니다. 생년월일 같은 비공개 필드가 UI나 로그에 나타날 수 있으며, 분석은 일치하지 않는 이벤트 이름이나 누락된 페이로드를 보고합니다; 입력 문자열과 저장된 내용 간 비교가 일부 경우 평균 값만큼 벗어나 포맷팅 단계 오류를 나타냅니다.

    영향 및 위험: 이는 고객의 사용자 흐름을 방해하고 정확한 게시, 검토 및 분석에 의존하는 작업자의 작업을 지연시킵니다. 비공개 데이터를 노출할 수 있으며, 비즈니스 신뢰를 약화시키고 출시나 게시 주기를 지연시킬 수 있습니다. 여러 페이지나 구성 요소가 동일한 함수 세트를 재사용하거나 내용이 페이지 간 복사될 때 심각도가 상승합니다. 예를 들어 비공개 노트에서 공개 게시물로. 엔지니어를 위한 빠른 작성과 이해관계자를 위한 별도의 댓글 스레드를 준비하여 상태와 결정을 추적하세요.

    증거 및 맥락: 배경 세부 사항 포함: 환경 버전, 페이지 경로 및 관련 코드 경로. 실패 창의 로그와 입력 문자열과 페이지에 끝나는 불일치를 보여주는 작은 대표 샘플을 첨부하세요. 정확한 입력(제목, 본문, 문자)을 관찰된 내용에 매핑하는 비교 테이블을 제공하고, 문제를 재현하는 두 번째 실행을 기록하세요. 관련 분석 이벤트를 캡처하고 이름과 생년월일 같은 비공개 필드가 출력으로 유출되지 않도록 확인하세요. 비공개 테스트 계정을 사용하는 경우, 민감한 필드를 삭제하고 댓글에서 계정 이름을 참조하여 팀원들이 게시물이나 분석에서 데이터를 노출하지 않고 재현할 수 있게 하세요.

    수정할 내용 및 검증 방법: 내용을 빌드하는 함수와 코드의 저장 경로로 버그를 좁히세요. 문자열 길이, 다중 바이트 문자 및 페이지 간 복사를 다루는 회귀 테스트를 추가하세요. 예상과 실제 결과 간 비교가 두 번째 시도와 다른 작업자에서 유지되는지 확인하세요. 대상 페이지에 공개 콘텐츠만 렌더링되고 시작 후 분석 페이로드가 올바른지 확인하세요.

    증거 수집: 스크린샷, 화면 녹화 및 로그

    각 단계에 타임스탬프가 찍힌 증거를 캡처하세요: 각 작업 직후 스크린샷을 찍고 기능이 잘못 동작할 때 화면 녹화를 시작하세요. 이는 문제를 분석하기 위한 명확한 추적을 만들고 정확한 사용자 입력과 UI 상태를 보여줌으로써 트리아지를 가속화합니다.

    증거 유형: 스크린샷, 화면 녹화 및 로그. 스크린샷은 시간의 특정 순간 UI를 보여줍니다; 화면 녹화는 시퀀스, 입력 및 오류 대화 상자를 캡처합니다; 로그는 이벤트와 타이밍을 드러냅니다. 증거를 맥락에 배치하기 위해 메타데이터에 앱 버전, OS 및 장치 모델을 포함하고, 문제를 트리거한 정확한 작업을 기록하세요.

    일관된 명명 체계로 파일을 준비하세요. 기록을 위한 데이터 클래스 같은 구조 사용: 시간, 작업, 예상 결과, 실제 결과, 메모리 스냅샷 및 주요 상수. 나중에 필터링과 교차 참조를 단순화하기 위해 스크린샷, 비디오 및 로그용 하위 폴더가 있는 단일 버그 폴더에 데이터를 배치하세요.

    기록할 내용 및 길이: 오류 메시지의 명확한 텍스트를 캡처하고 전체 스택 트레이스를 복사하며 관련 네트워크 요청을 포함하세요. 전체 명령 시퀀스와 각 단계에서 입력된 정확한 문자를 기록하세요. 시퀀스가 뒤로 가기나 반복 작업을 포함하는 경우, 실패가 일관되게 재현될 때까지 반복하세요; 진행 상황과 단계 사이에 나타나는 임시 상태를 기록하세요.

    안전하게 삭제하고 공유: 공유 전에 로그와 메모리 덤프에서 민감한 데이터를 제거하세요. 메모리가 관련될 때 실패 시 MB 단위의 풋프린트를 로그하고 연속 시도 간 변경을 추적하세요. 비기술 독자를 위해 Canva 템플릿을 사용하여 간결한 한 페이지 요약을 내보내고 원시 증거를 별도로 첨부하세요. 가독성을 개선하기 위해 프레젠테이션을 보고서 구조와 일치시키세요.

    분석 및 조직: 사건 주변의 좁은 시간 창이나 오류 수준 항목만 드러내는 필터를 적용하세요. 시퀀스 분석은 기능의 역할과 다른 모듈과의 상호 작용을 식별하는 데 도움이 됩니다. 실패 지속 시간을 측정하고 실패 경로의 로그 줄 수를 세며 문제가 되는 경로가 얼마나 자주 나타나는지 추적하세요. 작성자의 노트는 각 아티팩트를 repro 단계의 구체적인 단계에 명확히 연결하여 검토자가 진행 상황을 빠르게 검증할 수 있게 해야 합니다.

    우선순위 지정, 할당 및 버그 상태 전달

    영향과 가능성에 따라 버그를 순위 매기고, 단일 소유자를 할당하며, 명확한 마감일로 티켓 상태를 업데이트하세요.

    • 비즈니스 영향과 빈도를 측정하여 우선순위 지정: 고객, 워크플로 및 설치 경로에 매핑하세요. 기존 코드나 렌더링에 영향을 미치는지, 설치 중 정상 작업을 차단하는지 루트 원인을 캡처하세요. 버그가 중요한 워크플로를 차단하는 경우 즉시 우선순위를 높이고 심각도에 대한 더 엄격한 기준을 사용하세요.
    • 명확하게 할당: 단일 소유자나 작은 책임 쌍을 선택하고 구체적인 목표 날짜를 지정하며 작성된 계획을 첨부하세요. 팀에 기본 소유자가 이미 있는 경우 티켓에 언급하고 루트 원인 단계를 가속화하기 위해 관련 문서의 도우미 링크를 추가하세요. 조사 범위를 좁히고 디버깅 단계의 루프를 피하기 위해 관련 전역 또는 코드 영역을 참조하세요.
    • 상태를 일관되게 전달: 정기적인 주기로 티켓과 공유 채널을 통해 업데이트를 게시하세요. 각 업데이트는 현재 알려진 원인, 영향을 받는 사용자 및 설치나 렌더링에 미치는 영향을 명시합니다. 정보가 부분적인 경우 티켓에 기존 불확실성을 언급하고 다음 조치를 취하세요. 관련된 경우 다른 채널의 팀 언급과 과거 티켓을 포함하세요. 브랜드, 비즈니스, 품질, 고객 또는 내부 이해관계자의 기대를 설정하고 안내하기 위해 유사 문제의 예를 사용하세요; 새로운 데이터가 도착할 때까지 상태를 정확하고 오래되지 않게 유지하세요. 수정이 종속성에 의해 차단된 경우 차단자와 예상 회전율을 기록하세요. 비즈니스 팀의 요구가 일치를 주도해야 합니다.

    관련 기사

    Ready to leverage AI for your business?

    Book a free strategy call — no strings attached.

    Get a Free Consultation