버그 생존율
테스트 단계별 검출률에 따른 버그 생존율을 계산합니다.
버그 생존율 계산기는 소프트웨어 개발의 각 테스트 단계(코드 리뷰, 단위 테스트, 통합 테스트, QA, 프로덕션 모니터링)별 검출률에 따라 최종적으로 사용자에게 도달하는 버그 비율을 계산하는 도구입니다. 각 단계의 검출률이 80%라면, 3단계를 거친 후 버그 생존율은 (1-0.8)³ = 0.8%입니다. 하지만 검출률이 50%인 단계가 하나라도 있으면 생존율이 급증합니다. 업계 평균적으로 프로덕션까지 도달하는 버그 비율은 전체 버그의 약 5~15%입니다. 이 계산기를 통해 어떤 테스트 단계를 강화하는 것이 가장 효과적인지 비용 대비 효율을 분석할 수 있습니다.
입력
코드 리뷰, 유닛 테스트, QA 등 각 검증 단계
1 in 412 — 프로덕션까지 살아남을 확률
모든 단계에서 잡힐 확률
단계별 버그 생존율
단계별 상세
| 단계 | 단계 검출률 | 누적 검출률 | 생존율 |
|---|---|---|---|
| 1단계 | 70.0% | 70.00% | 30.0000% |
| 2단계 | 70.0% | 91.00% | 9.0000% |
| 3단계 | 70.0% | 97.30% | 2.7000% |
| 4단계 | 70.0% | 99.19% | 0.8100% |
| 5단계 | 70.0% | 99.76% | 0.2430% |
workflow
사용 방법
약 1분
테스트 단계 설정
각 테스트 단계의 이름을 입력합니다.
검출률 입력
각 단계의 버그 검출률(%)을 입력합니다.
결과 확인
단계별 누적 생존율과 최종 프로덕션 도달 비율을 확인합니다.
principle
계산 원리
## 버그 생존율의 수학적 배경
### 기본 생존율 공식 각 테스트 단계의 검출률을 d₁, d₂, ..., dₙ이라 하면, 각 단계의 통과율(생존율)은 (1-dᵢ)입니다.
최종 버그 생존율 = ∏(1 - dᵢ) = (1-d₁)(1-d₂)...(1-dₙ)
### 예시 검출률이 모두 70%인 4단계: 생존율 = (0.3)⁴ = 0.81% 검출률이 모두 50%인 4단계: 생존율 = (0.5)⁴ = 6.25%
### 한계 검출률 분석 목표 생존율을 S, 단계 수를 n이라 하면 각 단계에 필요한 최소 검출률:
d_min = 1 - S^(1/n)
생존율 1%를 4단계로 달성하려면: d_min = 1 - 0.01^(1/4) = 1 - 0.316 = 68.4%
### 비용 효율 분석 각 단계의 비용을 Cᵢ, 검출률 개선량을 Δdᵢ라 하면:
비용 효율 = |Δ생존율| / Cᵢ
일반적으로 초기 단계(코드 리뷰, 단위 테스트)의 비용 효율이 가장 높습니다.
faq
자주 묻는 질문
cases
실생활 예시
4단계 테스트 파이프라인
코드 리뷰(검출률 65%), 단위 테스트(70%), 통합 테스트(60%), QA(80%)를 거치면 버그 생존율은 0.35×0.30×0.40×0.20 = 0.84%입니다.
100개 버그 중 약 1개만 프로덕션에 도달합니다. 4단계 조합의 위력입니다.
단위 테스트 누락의 영향
위 파이프라인에서 단위 테스트를 생략하면 생존율이 0.35×0.40×0.20 = 2.8%로 3.3배 증가합니다.
한 단계를 건너뛰면 효과가 급격히 떨어집니다. 모든 단계를 유지하는 것이 중요합니다.
Google의 테스트 자동화 사례
Google은 코드 변경 시 자동 코드 리뷰(검출률 약 60%), 단위 테스트(85%), 통합 테스트(75%), 카나리 배포(90%)의 4단계를 운영합니다. 버그 생존율은 0.40×0.15×0.25×0.10 = 0.15%입니다.
높은 자동화 수준과 카나리 배포의 조합으로 1,000개 버그 중 약 1.5개만 사용자에게 도달합니다.
Microsoft의 보안 개발 생명주기(SDL)
Microsoft SDL은 설계 리뷰(40%), 정적 분석(35%), 코드 리뷰(60%), 보안 테스트(70%), 침투 테스트(50%) 5단계로 보안 버그를 걸러냅니다. 보안 버그 생존율은 0.60×0.65×0.40×0.30×0.50 = 2.34%입니다.
보안 버그는 일반 버그보다 생존율이 높아 더 많은 단계가 필요합니다. 5단계로도 약 2%가 통과하여 지속적인 모니터링이 필수입니다.
스타트업 vs 대기업 버그 생존율 비교
스타트업(코드 리뷰 50% + QA 60%): 생존율 0.50×0.40 = 20%. 대기업(4단계 풀 파이프라인): 생존율 약 1%. 스타트업의 버그 생존율이 20배 높습니다.
리소스가 제한된 스타트업은 자동화된 테스트 도입만으로도 버그 생존율을 극적으로 개선할 수 있습니다.
glossary
용어 사전
- 버그 검출률(Defect Detection Rate)
- 특정 테스트 단계에서 유입된 버그 중 발견된 버그의 비율입니다. 검출률 70%이면 10개 버그 중 7개를 발견합니다.
- 버그 탈출률(Defect Escape Rate)
- 검출되지 않고 다음 단계로 넘어간 버그의 비율입니다. 검출률의 반대 개념으로, 검출률이 70%이면 탈출률은 30%입니다.
- 코드 리뷰(Code Review)
- 다른 개발자가 작성된 코드를 검토하여 결함, 설계 문제, 코딩 표준 위반 등을 찾는 과정입니다.
- 회귀 테스트(Regression Test)
- 코드 변경 후 기존 기능이 정상 동작하는지 확인하는 테스트입니다. 수정한 버그의 재발을 방지합니다.
- 정적 분석(Static Analysis)
- 코드를 실행하지 않고 소스 코드 자체를 분석하여 잠재적 결함을 찾는 기법입니다. SonarQube, ESLint 등이 대표적입니다.
- 테스트 커버리지(Test Coverage)
- 테스트가 실행한 코드의 비율입니다. 라인 커버리지, 브랜치 커버리지 등의 종류가 있으며, 높을수록 테스트가 코드를 넓게 검증합니다.
- 카나리 배포(Canary Deployment)
- 새 버전을 전체 사용자의 소수(1~5%)에게만 먼저 배포하여 문제를 조기 발견하는 배포 전략입니다.
next tools