본문으로 건너뛰기
중급25

테스트 보고서와 품질 지표: 커버리지, 결함 밀도, 결함 탈출률, 실패율

숫자로 된 품질 지표를 계산하고 해석해서, 모듈 4에서 배운 Go/No-Go 결정에 실제로 쓸 수 있는 테스트 보고서를 작성한다.

  • #품질지표
  • #테스트보고서
  • #결함밀도
  • #Go-No-Go

개념

테스트 보고서의 목적

테스트 보고서는 "내가 뭘 했는지" 자랑하는 문서가 아니다. 의사결정자가 이 정보를 보고 릴리스할지 말지 판단할 수 있게 만드는 문서다 — 모듈 4(레슨 5)에서 배운 Go/No-Go 결정의 근거 자료가 바로 이 보고서다. 좋은 보고서는 숫자(지표)와 그 숫자가 의미하는 바(해석)를 함께 담는다.

지표 1 — 커버리지(Coverage)

"계획한 테스트 중 몇 %를 실행했는가"를 나타낸다.

테스트 실행률 = 실행한 테스트 케이스 수 / 계획한 전체 테스트 케이스 수 × 100

100%를 실행했다고 결함이 없다는 뜻은 아니다 — 그저 "계획한 범위를 다 확인했다"는 뜻일 뿐이다. 계획 자체가 부족했다면 커버리지 100%도 의미가 제한적이다.

지표 2 — 결함 밀도(Defect Density)

기능 영역(레슨 4의 라벨/컴포넌트)이나 코드 규모 단위로, 결함이 얼마나 집중되어 있는지 나타낸다.

결함 밀도 = 발견된 결함 수 / 규모(예: 기능 개수, 화면 개수, 1000줄당)

결제 모듈에서 결함 15건, 설정 화면에서 결함 2건이 나왔다면, 절대 건수만 보고 "결제 모듈이 문제"라고 단정하기보다, 각 영역의 규모 (화면 수, 기능 수)로 나눠서 밀도를 비교해야 공정하다. 결제 모듈이 화면 수가 5배 많다면 밀도는 오히려 비슷할 수 있다.

지표 3 — 결함 탈출률(Defect Escape Rate)

QA 단계에서 못 잡고 운영 환경까지 새어나간 결함의 비율이다.

결함 탈출률 = 운영에서 발견된 결함 수 / (QA에서 발견 + 운영에서 발견) × 100

이 지표가 높다는 건 테스트 커버리지나 테스트 설계 자체에 구멍이 있다는 신호다. 결함 탈출률은 QA 활동의 효과성을 가장 직접적으로 보여주는 지표 중 하나다.

지표 4 — 실패율(Failure Rate / Pass Rate)

실패율 = 실패한 테스트 케이스 수 / 실행한 테스트 케이스 수 × 100

실패율이 릴리스 직전까지 계속 높게 유지된다면, 기능이 아직 불안정 하다는 신호다. 반대로 실패율이 낮더라도 커버리지 자체가 낮다면 그 낮은 실패율은 신뢰할 수 없다 — 커버리지와 실패율은 항상 같이 봐야 한다.

지표는 목표가 아니라 신호다

지표 하나만 보고 판단하면 왜곡되기 쉽다. 예를 들어 "결함 탈출률을 낮추자"는 목표가 도구화되면, 팀이 사소한 결함까지 전부 QA 단계에서 붙잡으려다 릴리스 일정 자체가 늦어질 수 있다. 지표는 **"지금 상황이 어떤지 알려주는 신호"**로 쓰고, 그 신호를 해석해서 다음 행동을 결정하는 건 사람의 몫이다.

실무에서 왜 필요한가

모듈 4(레슨 5)에서 Go/No-Go를 결정할 때 "지금까지 발견된 결함 현황"을 근거로 든다고 배웠다. 이 레슨에서 배운 지표들이 바로 그 근거를 숫자로 만드는 방법이다. 커버리지·결함 밀도·결함 탈출률· 실패율을 계산하고 해석할 수 있는 QA는, 릴리스 회의에서 "느낌상 괜찮아 보여요"가 아니라 "커버리지 92%, 심각도 높음 결함 0건 잔존, 지난 릴리스 대비 결함 탈출률 감소"처럼 근거 있는 발언을 할 수 있다.

실습 과제

과제 1 — 지표 계산하기 (12분)

다음 상황에서 4가지 지표를 각각 계산한다.

  • 계획한 테스트 케이스: 200개, 실행: 180개
  • 실행한 테스트 중 실패: 20개
  • 이번 스프린트에서 QA가 발견한 결함: 35건
  • 지난 스프린트 릴리스 이후 운영에서 발견된 결함: 5건

과제 2 — 지표를 해석해서 한 문단 보고서 쓰기 (13분)

과제 1에서 계산한 지표를 바탕으로, Go/No-Go 회의에 제출할 3~4문장 분량의 요약 보고서를 작성한다. 숫자를 나열만 하지 말고, 그 숫자가 릴리스 결정에 어떤 의미를 가지는지 해석까지 포함한다.

자가 체크리스트

  • 커버리지·결함 밀도·결함 탈출률·실패율을 각각 계산할 수 있다
  • 결함 밀도를 비교할 때 절대 건수가 아니라 규모 대비 비율을 봐야 하는 이유를 설명할 수 있다
  • 결함 탈출률이 QA 활동의 효과성을 보여주는 지표인 이유를 설명할 수 있다
  • 커버리지와 실패율을 함께 봐야 하는 이유를 설명할 수 있다
  • 계산한 지표를 Go/No-Go 결정에 쓸 수 있는 해석 문장으로 정리할 수 있다

흔한 실수

  • 커버리지 100%를 "결함이 없다"는 뜻으로 착각한다. 계획한 범위를 다 실행했다는 뜻일 뿐, 계획 자체가 부족했을 수 있다.
  • 결함 건수를 영역 규모 대비 없이 절대값으로만 비교한다. 규모가 다른 영역끼리는 밀도로 비교해야 공정하다.
  • 지표 하나만 보고 판단한다. 실패율이 낮아도 커버리지가 낮으면 신뢰할 수 없는 숫자다 — 여러 지표를 함께 봐야 한다.
  • 지표를 목표 자체로 삼아 왜곡된 행동을 유도한다. 지표는 판단을 돕는 신호이지, 그 자체가 최종 목표가 아니다.

참고 자료