topics 버그 추적 버그 추적
IBM 솔루션으로 버그 추적 클라우드 업데이트 구독
 컴퓨터 모니터, 서버, 구름, 점의 픽토그램 콜라주가 포함된 일러스트
버그 추적이란 무엇인가요?

버그 추적은 소프트웨어 테스트 중에 버그 또는 오류를 기록하고 모니터링하는 프로세스입니다. 결함 추적 또는 문제 추적이라고도 합니다.

대규모 시스템에는 수백 또는 수천 개의 결함이 있을 수 있습니다. 디버깅을 위해 각각 평가, 모니터링 및 우선순위를 지정해야 합니다. 때로는 버그를 장기간에 걸쳐 추적해야 할 수도 있습니다.

Tutorials Point는 “복잡하고 비즈니스에 중요한 시스템에는 수백 개의 결함이 있기 때문에 소프트웨어 엔지니어링에서 결함 추적은 중요한 프로세스입니다.”라고 말합니다. “어려운 요소 중 하나는 이러한 결함을 관리하고 평가하며 우선순위를 정하는 것입니다. 시간이 지남에 따라 결함의 수는 증가하며, 이를 효과적으로 관리하기 위해 결함 추적 시스템을 사용하여 작업을 더 쉽게 수행할 수 있습니다." 1

DaaS를 통해 업무 환경의 유연성 확보

서비스형 데스크톱(DaaS)을 통해 기업이 온프레미스에 애플리케이션을 배포하는 것과 동일한 수준의 성능과 보안을 달성할 수 있는 방법을 알아보세요.

관련 내용

하이브리드 클라우드 가이드 등록

버그 추적 작동 방식

소프트웨어 버그는 애플리케이션이나 프로그램이 제대로 작동하지 않을 때 발생합니다. 대부분의 오류는 시스템 설계자, 디자이너 또는 개발자가 저지른 결함 또는 실수입니다. 테스트 팀은 버그 추적을 사용하여 애플리케이션이 개발되고 테스트될 때 발생하는 오류를 모니터링하고 보고합니다.

위키백과에서는 "버그 추적 시스템의 주요 구성 요소는 알려진 버그에 대한 사실을 기록하는 데이터베이스입니다."라고 설명합니다. "사실에는 버그가 보고된 시간, 버그의 심각도, 잘못된 프로그램 동작, 버그 재현 방법에 대한 세부 정보, 버그를 보고한 사람의 신원 및 버그를 수정할 수 있는 프로그래머가 포함될 수 있습니다." 2

수명 기간 동안 하나의 결함이 여러 단계 또는 상태를 거칠 수 있습니다. 여기에는 다음이 포함됩니다.

  • 활성: 조사 진행 중
  • 테스트: 수정 및 테스트 준비 완료
  • 검증: 품질 보증(QA)을 통해 재테스트 및 검증
  • 종료: QA 재테스트 후 또는 결함으로 간주되지 않는 경우 종료 가능
  • 재개: 수정되지 않고 재활성화됨 3

버그는 우선순위와 심각도에 따라 관리됩니다. 심각도 수준은 문제가 제품 릴리스에 미치는 상대적 영향을 식별하는 데 도움이 됩니다. 이러한 분류는 그 수는 다양할 수 있지만 일반적으로 다음과 같은 형태를 포함합니다.

  • 치명적: 소프트웨어가 완전히 고장나거나 복구할 수 없는 데이터 손실이 발생합니다. 해결 방법이 없으며 제품을 릴리스할 수 없습니다.
  • 기능 장애: 해결 방법이 있을 수 있지만 만족스럽지 않습니다. 소프트웨어를 릴리스할 수 없습니다.
  • 중요하지 않은 시스템 장애: 합리적으로 만족스러운 해결 방법이 있습니다. 버그가 문서화되면 제품이 릴리스될 수 있습니다.
  • 경미: 해결 방법이 있거나 문제를 무시할 수 있습니다. 제품 릴리스에는 영향을 미치지 않습니다.

일반적으로 상태 및 심각도 수준은 버그 추적 데이터베이스에서 모니터링됩니다. 좋은 추적 플랫폼은 또한 더 큰 소프트웨어 개발 및 관리 시스템과 연결되어 오류 상태와 전체 생산 및 일정에 대한 잠재적 영향을 더 잘 평가할 수 있습니다.

버그 추적이 중요한 이유

소프트웨어 개발자는 1,000줄의 코드당 100-150개의 오류를 범하는 것으로 추정됩니다.4 IT 소프트웨어 품질 협회(CISQ)의 보고서에 따르면, “이러한 오류 중 극히 일부(예: 10%)만 심각하더라도 20,000줄의 코드로 구성된 비교적 작은 애플리케이션에서도 약 200개의 심각한 코딩 오류가 발생합니다." 5

소프트웨어 테스트는 오류를 격리하고 완화하는 데 필수적입니다. 좋은 QA 프로세스는 수백 또는 수천 개의 결함을 발견할 수 있으며 테스트 팀은 모든 결함을 관리해야 합니다. 버그 추적을 테스트 워크플로에 통합하면 테스터가 각 오류의 상태를 우선순위로 지정하고, 모니터링하고, 보고할 수 있으므로 효율성이 향상됩니다.

애자일 컨설턴트인 Yvette Francino는 "결함 추적은 시스템에서 발견된 버그를 실제로 수정하는 데 도움이 됩니다."라고 말합니다. "추적 도구는 후속 조치를 보장하는 방법을 제공할 뿐만 아니라 중요한 메트릭도 제공합니다. 사용되는 도구에 따라 팀은 결함을 변경된 코드, 테스트 또는 결함 추세에 대한 추적 또는 분석을 허용하는 기타 데이터에 연결할 수 있습니다. 특정 모듈에 결함이 있는 경우 해당 모듈을 검토하고 다시 작성해야 할 때일 수 있습니다." 6

이상적으로는 가능한 한 빨리 테스트를 수행하는 것이 좋습니다. 버그 수정이 더 쉽고 비용도 훨씬 적게 들기 때문입니다. IBM의 이전 연구에 따르면 프로덕션 후 또는 릴리스 후에 발견된 결함은 개발 초기에 해결된 오류에 비해 수정하는 데 15배 더 많은 비용이 들 수 있습니다.

현재 많은 팀이 연속 테스트라는 방법론을 사용하고 있습니다. 이 경우 설계 및 코딩부터 배포에 이르기까지 개발의 모든 단계에서 품질 테스트와 피드백이 수행됩니다. 인공 지능(AI)과 같은 최신 기술도 라이프사이클 초기에 버그를 감지하고 분석하여 테스트 프로세스를 지원할 수 있습니다.

버그 추적의 주요 기능

품질 관리는 강력한 애플리케이션을 개발하는 데 매우 중요합니다. 소프트웨어 테스트 변경 관리 및 버그 추적 도구를 통해 팀은 결함을 발견하고, 그 범위와 영향을 측정하고, 결함을 해결할 수 있습니다.

Nicholas Bowen은 Harvard Business Review에서 결함 관리 프로세스를 간략하게 설명합니다. 첫 번째 단계는 분류하고 우선순위를 정하는 것입니다. “일반적으로 팀은 시스템 장애를 일으키는 버그와 심각도는 낮지만 널리 퍼질 수 있는 버그 등 두 가지 유형의 버그에 우선순위를 지정합니다. 다음으로 각 심각도 수준에 대한 목표 응답 시간을 결정합니다. 품질 관리 시스템을 새로 도입한 경우 초기에는 몇 시간 또는 며칠 내에 가장 심각한 버그를 수정하는 데 초점을 맞춰야 합니다. 시스템을 사용하면서 두 가지 주요 메트릭인 수신 버그 발생률과 버그 수정자의 생산성에 대한 데이터를 수집하고 필요에 따라 목표를 조정할 수 있습니다." 그는 또한 조직이 결함과 이를 해결하는 데 필요한 시간을 CEO부터 모든 수준에서 검토할 수 있는 시스템을 만들어야 한다고 말합니다.7

우수한 버그 추적 시스템은 결함 모니터링, 보고 및 수명 주기 추적을 위한 단일 워크플로를 제공하여 이 프로세스를 지원할 수 있습니다. 이는 소프트웨어 개발과 더 큰 조직 내에서 가시성과 피드백을 공유하기 위해 다른 관리 시스템과 추가로 연결되어야 합니다. 예를 들어 IBM Rational ClearQuest는 오류 추적 및 보고를 위한 중앙 집중식 플랫폼을 제공합니다. 이는 다른 IBM 개발 및 변경 관리 시스템과 통합되며 개발자, 운영 및 광범위한 팀 간의 커뮤니케이션과 협업을 개선하는 데 도움이 됩니다.

또한 AI를 사용하여 개발 프로세스 초기에 오류를 감지하는 테스트 및 추적 시스템을 찾아보세요. 팀이 실행하는 테스트의 수와 유형을 최적화하고, 테스트 프로세스를 자동화하며, AI를 사용하여 과거의 결함을 분석하고 향후 결함을 예방할 수 있습니다.

관련 솔루션
IBM Rational ClearQuest

프로젝트와 팀에 가장 적합한 방법론, 프로세스 및 도구를 수용하는 동시에 개발자 생산성을 개선하는 데 도움이 되는 변경 관리 소프트웨어입니다.

Rational ClearQuest 살펴보기
소프트웨어 테스트

테스트 결과를 더 빠르게 개발 단계로 되돌릴 수 있습니다. 결함을 조기에 수정하여 위험과 비용을 줄입니다.

테스트 보기
DevOps Insights

널리 사용되는 지속적 통합 및 지속적 제공 도구에서 포괄적인 인사이트를 확보하여 애플리케이션의 속도, 품질 및 제어를 향상하세요.

DevOps 살펴보기
플랫폼 엔지니어링 서비스

플랫폼 엔지니어링은 DevOps의 다음 단계입니다. 개발자 경험을 통해 시장 출시 시간(TTM)을 가속화하세요.

컨설팅 플랫폼 엔지니어링 살펴보기
리소스 소프트웨어 테스트란 무엇인가요?

소프트웨어 테스트의 유형, 이점 및 발전에 대해 알아보세요.

개발자를 위한 소프트웨어 개발

IBM Developer는 개발자가 소프트웨어 구성 요소를 구축하고 유지 관리하는 데 도움이 되는 도구를 제공합니다.

연속 테스트를 위한 필수 가이드

통합 연속 테스트가 애플리케이션 개발을 가속화하는 방법을 알아보세요.

다음 단계 안내

DevOps를 위한 준비가 되셨나요? 소프트웨어와 서비스를 시장이 요구하는 속도로 제공하려면 빠르게 반복하고 실험하며 새 버전을 자주 배포하고 피드백과 데이터에 따라 움직여야 합니다. 성공하는 클라우드 개발 팀은 최신 DevOps 문화와 관행을 도입하고, 클라우드 네이티브 아키텍처를 수용하며, 동급 최고의 툴로 툴체인을 구성하여 생산성을 극대화합니다.

DevOps 솔루션 살펴보기 무료 체험하기