소프트웨어 테스팅의 결함/버그 수명주기

주요 요점 이 가이드에서는 결함 수명 주기 단계를 설명하여 독자가 버그 추적, 커뮤니케이션 흐름, 발견부터 종료까지 효율적인 해결 방법을 이해하는 데 도움을 줍니다.

결함/버그 수명 주기

결함/버그 수명주기란 무엇입니까?

결함 수명 주기 또는 소프트웨어 테스팅의 버그 수명주기는 결함이나 버그가 전체 수명 동안 겪는 특정 상태 집합입니다. 결함 수명주기의 목적은 변경되는 결함의 현재 상태를 다양한 담당자에게 쉽게 조정하고 전달하며 결함 수정 프로세스를 체계적이고 효율적으로 만드는 것입니다.

결함현황

결함현황 또는 결함 수명주기의 버그 상태는 결함이나 버그가 현재 겪고 있는 현재 상태입니다. 결함 상태의 목표는 결함 수명 주기의 실제 진행 상황을 더 잘 추적하고 이해하기 위해 결함이나 버그의 현재 상태나 진행 상황을 정확하게 전달하는 것입니다.

결함 상태 워크플로

결함이 겪는 상태의 수는 프로젝트마다 다릅니다. 라이프사이클 다이어그램 아래에는 가능한 모든 상태가 포함되어 있습니다.

  • 새로운 : 새로운 결함이 처음으로 기록되고 게시될 때. NEW 상태로 지정됩니다.
  • 할당 됨 : 테스터가 버그를 게시하면 테스터 리더가 버그를 승인하고 버그를 개발자 팀에 할당합니다.
  • 엽니다: 개발자가 분석을 시작하고 결함 수정 작업을 진행합니다.
  • 고정: 개발자가 필요한 코드를 변경하고 변경 사항을 확인하면 버그 상태를 "Fixed"로 설정할 수 있습니다.
  • 재테스트 대기 중: 결함이 수정되면 개발자는 테스터에게 코드를 다시 테스트하기 위한 특정 코드를 제공합니다. 이후 소프트웨어 테스팅 테스터 측에서 보류 상태로 유지되면 할당된 상태는 "재테스트 보류 중"입니다.
  • 재시험: 테스터는 이 단계에서 개발자가 결함을 수정했는지 여부를 확인하기 위해 코드를 다시 테스트하고 상태를 "Re-test"로 변경합니다.

결함 상태 워크플로

  • 검증: 테스터는 개발자가 버그를 수정한 후 해당 버그를 다시 테스트합니다. 소프트웨어에서 발견된 버그가 없으면 버그가 수정되고 할당된 상태는 "확인됨"입니다.
  • 다시 열기: 개발자가 버그를 수정한 후에도 버그가 지속되면 테스터는 상태를 "reopened"로 변경합니다. 다시 한번 버그는 라이프사이클을 거칩니다.
  • 휴무: 버그가 더 이상 존재하지 않으면 테스터는 "Closed" 상태를 할당합니다. 
  • 복제: 결함이 XNUMX번 반복되거나 동일한 버그 개념에 해당하는 결함인 경우 '중복' 상태로 변경됩니다.
  • 거부됨: 개발자가 결함이 실제 결함이 아니라고 판단하면 결함을 "거부됨"으로 변경합니다.
  • 연기 된: 현재 버그가 최우선 순위가 아니고 다음 릴리스에서 수정될 것으로 예상되는 경우 해당 버그에 "지연" 상태가 할당됩니다.
  • 버그 아님: 애플리케이션의 기능에 영향을 주지 않는 경우 버그에 할당된 상태는 "버그 아님"입니다.

결함/버그 수명 주기 설명

결함 수명주기 또는 버그 수명주기 - 꼭 알아야 할 사항!

  1. 테스터가 결함을 발견함
  2. 결함에 할당된 상태 - 신규
  3. 분석을 위해 결함이 프로젝트 관리자에게 전달됩니다.
  4. 프로젝트 관리자는 결함이 유효한지 여부를 결정합니다.
  5. 여기서 결함은 유효하지 않습니다. 상태는 "거부됨"입니다.
  6. 따라서 프로젝트 관리자는 상태를 할당합니다. 거부. 결함이 거부되지 않으면 다음 단계는 범위에 있는지 확인하는 것입니다. 동일한 애플리케이션에 대한 다른 기능(이메일 기능)이 있고 해당 기능에 문제가 있다고 가정해 보겠습니다. 하지만 해당 결함이 현재 릴리스의 일부가 아닌 경우 해당 결함이 다음과 같이 할당됩니다. 연기 또는 연기 상태.
  7. 다음으로 관리자는 이전에 유사한 결함이 제기되었는지 확인합니다. 그렇다면 결함에 상태가 할당됩니다. 복제.
  8. 그렇지 않은 경우 코드 수정을 시작한 개발자에게 결함이 할당됩니다. 이 단계에서는 결함에 상태가 할당됩니다. 진행 중입니다.
  9. 일단 코드가 수정되었습니다. 결함에 상태가 할당됨 고정
  10. 다음으로 테스터는 코드를 다시 테스트합니다. 이 경우, 테스트 케이스 통과 결함은 폐쇄. 테스트 케이스가 다시 실패하면 결함은 다음과 같습니다. 재개 그리고 개발자에게 할당됩니다.
  11. 첫 번째 항공편 예약 릴리스 중에 팩스 주문에서 결함이 발견되어 수정되고 닫힌 상태가 할당된 상황을 고려합니다. 두 번째 업그레이드 릴리스 중에 동일한 결함이 다시 나타났습니다. 이러한 경우 닫힌 결함은 다음과 같습니다. 다시 열었습니다.

이것이 버그 수명주기의 전부입니다.

이 교육 비디오는 버그(결함 수명 주기)의 다양한 단계와 그 중요성을 예제를 통해 설명합니다.

 

LINK 비디오에 접근할 수 없는 경우

자주 묻는 질문

설명할 때 결함 수명 주기 인터뷰에서는 명확성과 구조가 중요합니다. 결함이 발견되어 해결될 때까지의 과정을 언급하는 것으로 시작하세요. 그런 다음 단계를 다음과 같이 나눌 수 있습니다.

  • 신규/오픈 – 결함이 식별되어 기록됩니다.
  • 할당 – 수정을 위해 개발자에게 할당됩니다.
  • 고정/해결됨 – 개발자가 솔루션을 적용합니다.
  • 재테스트/검증 – 테스터가 수정 사항을 검증합니다.
  • 휴무 – 결함이 해결된 것으로 확인되거나 재개 된 지속된다면.

결함 수명 주기(또는 버그 수명 주기)입니다 일련의 단계들 테스트 과정에서 결함은 식별, 기록, 할당, 수정, 재테스트, 그리고 종료라는 일련의 과정을 거칩니다. 이를 통해 체계적인 추적이 가능해지고 팀 전체의 소프트웨어 품질이 향상됩니다. 이러한 체계적인 접근 방식은 책임성, 투명성, 그리고 더 나은 품질의 소프트웨어 제공을 보장합니다. 결함을 알려주는 신호등과 같다고 생각하면 됩니다. 누구나 언제 멈춰야 하고, 언제 떠나야 하고, 언제 다시 확인해야 하는지 알고 있습니다.

프로젝트의 필요에 따라 결함 수명 주기를 관리하는 데 사용할 수 있는 여러 도구가 있습니다. 자주 사용되는 도구는 다음과 같습니다. JIRA, Bugzilla, HP ALM, Redmine 및 MantisBTJIRA는 팀이 결함을 기록, 할당 및 추적할 수 있도록 지원합니다. JIRA는 애자일 및 면접 토론에서 가장 널리 사용됩니다.

In 지라결함 수명 주기는 사용자 정의를 통해 관리됩니다. 워크플로 상태기본적으로 표준 결함 추적 기능을 반영하지만, 팀에서 필요에 따라 맞춤 설정할 수 있습니다. 일반적인 JIRA 결함 추적 주기는 다음과 같습니다.

  • 할 일 / 열림 – 결함이 기록되었습니다.
  • 진행 중 – 개발자가 수정을 시작합니다.
  • 해결됨 / 완료됨 – 수정 사항이 적용되었고, 테스터 검증을 기다리고 있습니다.
  • 재개 된 – 수정이 실패하면 결함은 활성 상태로 돌아갑니다.
  • 휴무 – 테스터에 의해 검증되고 완료로 표시됨.

버그 수명 주기와 결함 수명 주기라는 용어는 종종 혼용되지만 일부 전문가는 미묘한 구분을 합니다.

  • 버그 라이프 사이클 – 일반적으로 기술적 맥락에서 사용되며, 오작동을 일으키는 코드의 문제를 의미합니다.
  • 결함 수명 주기 – 범위가 더 넓어서 코딩과 관련이 있을 수도 있고 없을 수도 있는 요구 사항의 편차를 포괄합니다.

실제로:

  • 곤충 = 프로그래밍 오류.
  • 결함 = 예상 결과와 실제 결과 사이의 차이(설계, 요구 사항 또는 프로세스 관련일 수 있음).

그러나 주기는 동일합니다. 발견 → 수정 → 재테스트 → 종료.

결함 수명 주기의 이점은 다음과 같습니다.

  • 명확성을 보장합니다: 투명하게 추적할 수 있도록 각 버그의 상태를 정의합니다.
  • 협업을 개선합니다. 개발자, 테스터, 관리자가 일치를 유지합니다.
  • 효율성 향상: 간소화된 업무 흐름으로 낭비되는 노력이 줄어듭니다.
  • 우선순위 지정 지원: 심각도와 영향에 따라 버그의 순위를 매기는 데 도움이 됩니다.
  • 책임감을 지원합니다: 모든 단계에서 소유권을 추적합니다.
  • 데이터 기반 인사이트: 수명 주기 내역은 더 나은 의사결정에 도움이 됩니다.

제품 개요

결함 수명 주기를 이해하면 체계적인 버그 관리, 원활한 협업, 그리고 빠른 해결이 가능합니다. 각 단계를 준수함으로써 팀은 소프트웨어 품질을 향상시키고, 위험을 줄이며, 안정적이고 사용자 친화적인 애플리케이션을 자신 있게 제공할 수 있습니다.