본문으로 건너뛰기
입문약 45분

테스트 모니터링·제어와 종료, 메트릭 공식, 그리고 모의고사 20문항

테스트 관리자가 실행 현장에서 올라온 숫자로 무엇을 판단하는지 정리한다. 실행·커버리지·결함 메트릭과 결함 그래프(심각도 비율, 서브시스템별, 일별 신규, 누적, 상태별 누적, 결함 나이)를 읽는 법, 네 가지 제어 유형과 세 관점의 제어 방법, 테스트 현황 보고서와 종료 보고서의 항목 차이, 테스트 자산 관리와 환경 정리를 다룬다. 정오표로 정정된 테스트 케이스 효율성 공식을 확인하고, 마지막에 시간을 재고 푸는 자체 모의고사 20문항으로 모듈 전체를 점검한다.

  • #CSTS
  • #테스트모니터링
  • #테스트제어
  • #테스트종료
  • #테스트메트릭
  • #모의고사

개념

두 활동의 관계

테스트 관리 프로세스의 마지막 두 활동이다.

활동하는 일산출물
테스트 모니터링 및 제어동적 테스트 활동이 계획대로 가는지 메트릭으로 보고, 필요하면 조치한다. 종료 기준이 충족되면 종료 활동을 시작시킨다테스트 현황 보고서
테스트 종료산출물을 자산으로 관리하고, 환경을 약속된 상태로 정리하고, 결과를 기록한다테스트 종료 보고서

모니터링 및 제어는 세 작업 — 테스트 모니터링, 테스트 활동 제어, 테스트 현황 보고 — 로, 종료는 세 작업 — 테스트 자산 관리, 테스트 환경 정리, 테스트 종료 보고 — 로 이루어진다. 여섯 작업 이름을 짝으로 외워 두면 순서 문제에 강해진다.

테스트 모니터링 — 무엇을 보나

모니터링은 실제 진척이 계획과 다른지 파악하고, 다르면 지연 원인 도 분석한다. 그와 함께 위험 관리 도 한다. 새 위험을 식별해 위험도를 산정하고, 기존 위험의 변화도 지켜보며, 그 결과를 제어에 반영한다. 기존 위험의 위험도가 올라가면 설계 기법이나 완료 기준을 강화할 수 있다.

테스트 활동 중에서 시간이 가장 많이 드는 것은 설계 및 구현 과 실행 이다. 그래서 모니터링도 이 두 활동에서 특히 중요하다. 계획 단계에서 정해 둔 메트릭으로 정량적으로 본다.

메트릭 유형메트릭
테스트 실행실행된 절차(케이스) 비율, 통과된 비율, 실패한 비율
커버리지요구사항 커버리지, 설계 커버리지, 코드 커버리지
결함검출 결함 수, 검출 결함 밀도, 상태별 결함 수, 결함 나이

결함 그래프 여섯 가지를 읽는 법

결함 보고서와 결함 추적 보고서가 모니터링의 핵심 자료다. 가이드는 여섯 가지 그래프를 예로 든다. 그래프마다 무엇을 판단하는 데 쓰는가 를 외운다.

그래프읽는 법쓰임
심각도별 결함 비율심각도 높은 결함의 비율이 낮으면 종료를 고려, 높으면 지금 기법이 심각한 결함을 잘 찾는다고 판단종료 판단, 기법 효과 판단
서브시스템별 결함 수결함이 많은 서브시스템은 앞으로도 많이 나올 것으로 예측 (파레토)노력 재배분, 다음 프로젝트 계획
일별 신규(Open) 결함 수전반부에 많다가 후반부에 급감해 적게 유지되면 종료해도 좋다고 판단할 수 있다종료 판단
누적 결함 수후반부에 평평해지면 새 결함이 거의 안 나온다는 뜻. 일별 그래프를 누적한 것이라 새 정보는 없다종료 판단
상태별 누적 결함 수Open 곡선과 Resolved 곡선 사이 = 개발자가 할 일, Resolved와 Verified 사이 = 테스터가 재테스팅할 일작업량 예측
결함 나이Open부터 Closed까지 걸린 시간. 합의한 기간을 넘는 결함은 원인을 분석해 조치처리 지연 관리

상태별 누적 그래프의 두 틈은 시험에 잘 나온다. 위에서부터 Closed, Verified, Resolved, Open 순서로 쌓인 곡선을 떠올리고, 아직 Resolved 안 된 것은 개발자 몫, 아직 Verified 안 된 것은 테스터 몫 이라고 읽는다.

테스트 활동 제어 — 네 가지 유형

유형언제
동적 테스트 활동의 시작계획서의 시작 조건이 충족되면
동적 테스트 활동의 종료계획서의 종료 조건이 충족되면
테스트 계획과의 차이실제 진행이 계획 일정과 다르면
위험 관리새 위험이 식별되거나 기존 위험이 변하면

제어 방법 — 세 관점

관점조정하는 것예
테스트 컨텍스트대상, 범위, 가정과 제약새 위험 때문에 빠져 있던 컴포넌트나 피처를 테스트 대상에 추가
테스트 전략개별 테스트 추가, 설계 기법, 환경, 재테스팅·리그레션 기준시스템 테스트에서 연동 결함이 많으면 빠졌던 통합 테스트를 추가. 결정 커버리지 90%를 100%로 상향
테스트 수행 계획일정, 인력, 의사소통실행이 늦으면 인력 추가 또는 일정 연기. 위험이 커지면 이해관계자와 더 자주 공유

테스트 현황 보고

계획서에 정한 시점·주기·목적·방법대로 정기 보고한다. 보고서에는 다음이 들어간다.

항목내용
보고 대상 기간어느 기간의 활동인가
계획 대비 진척도지체가 있으면 원인, 프로젝트 영향, 해소 방법
테스트 방해 요인진행을 막는 것
테스트 메트릭개발된·실행된·통과된 케이스와 절차 수, 검출 결함 수 등
신규 및 변경 위험새 위험 분석, 기존 위험의 해소·발생 가능성 변화
이후 테스트 계획다음 보고까지의 계획. 지연 요인 조치, 새 위험에 대한 회피·완화·전가·수용 계획

위험 대응 네 가지(회피·완화·전가·수용)도 함께 외운다. 옛 판 12장에는 "위험 완화"가 "위험 완료"로 잘못 적힌 곳이 있어 정오표로 고쳐졌다.

테스트 종료 — 세 작업

테스트 자산 관리. 산출물 가운데 재사용 가능한 것(계획서, 설계·케이스·절차 명세서 등)을 식별해 형상 관리 시스템 같은 공유 시스템에 저장한다. 형상 항목으로 식별해 고유 식별자를 붙이고, 형상 통제를 하고, 형상 상태를 보고한다.

테스트 환경 정리. 테스트에 쓴 환경 요소를 테스트에 쓰기 이전 상태로 복구 한다. 약속된 상태로 정리한다는 뜻이다.

테스트 종료 보고. 수행한 활동과 결과를 종료 보고서(테스트 보고서, 테스트 요약 보고서라고도 한다)에 기록한다.

테스트 종료 보고서의 열 가지 항목

항목내용
테스팅 요약대상, 환경, 관련 문서(식별자 일관되게), 전반적 결과(통과 모듈 수·비율, 통과 절차 수·비율)
계획 대비 차이점무엇이 왜 바뀌었나 (예: 예상보다 높은 위험 → 기법 변경·완료 기준 강화 → 케이스 증가 → 자동화 도구 도입)
테스트 방해 요인방해 요인과 해결 방법
테스트 메트릭종료 시점의 최종 측정치, 활동별 투입 노력
결함 목록결함 식별자, 최종 상태, 미종결 이유
잔존 위험해소되지 않았거나 새로 생긴 위험, 위험도, 미해소 이유, 품질 영향
테스트 완료 평가계획서의 완료 기준별 평가 결과와 설명. 잔존 위험도 고려
테스트 산출물산출물 이름, 최종 버전, 저장 위치
재사용 가능한 테스트 자산추후 공유·재사용할 자산
교훈잘 된 활동과 원칙, 잘 안 된 활동과 원인, 프로세스 개선 제안

방해 요인 예도 알아 둔다 — 대상 정보 부족은 개발팀 참여로, 동작 명세 부재는 테스트 모델 구축으로, 음성 같은 결과의 정확한 비교가 어려우면 비교 도구 도입으로, 모든 결함이 긴급으로 보고되면 우선순위 부여 기준을 구체화해 해결한다.

현황 보고서와 종료 보고서의 차이 를 정리하면 이렇다. 현황 보고서는 진행 중 에 정기적으로, 계획 대비 진척도와 이후 계획 을 쓴다. 종료 보고서는 끝난 뒤 에, 계획 대비 차이점, 결함 목록, 잔존 위험, 완료 평가, 산출물, 재사용 자산, 교훈 을 쓴다. 메트릭과 방해 요인은 둘 다에 들어가지만, 종료 보고서의 메트릭은 최종값이다.

참고로 가이드는 결함 목록을 종료 보고서에 넣지만, ISO/IEC/IEEE 29119의 테스트 종료 보고서 항목에는 결함 최종 결과가 따로 없다고 밝힌다.

개별 종료 보고서와 프로젝트 종료 보고서

개별 테스트(컴포넌트, 통합, 성능, 인수 …)마다 계획서를 썼듯 종료 보고서도 개별로 쓰고, 그것들을 모아 프로젝트 테스트 종료 보고서 를 쓴다. 각 레벨의 종료 보고서는 다음 레벨을 시작할 준비가 되었는지 판단하는 근거다. 컴포넌트 종료 보고서에 통합에 쓸 모듈이 충분히 테스트되었다고 적혀 있지 않으면 통합 테스트를 시작하지 않는 것이 바람직하다. 인수 테스트 보고서의 완료 평가와 잔존 위험은 출시 여부 에 영향을 준다.

메트릭 공식 — 정오표로 뒤집힌 것

수험서 16장(테스트 활동 평가)의 공식 가운데 옛 판에서 틀렸던 것들이다. 모니터링 메트릭 문제와 겹치므로 정정된 형태로 외운다.

테스트 케이스 효율성 = 검출된 전체 결함 수 ÷ 생성된 전체 테스트 케이스 수
                      (옛 판: 케이스 수 ÷ 결함 수 — 분자·분모가 뒤집혀 있었다)
 
테스트 케이스 실패율 = 실패한 테스트 케이스 수 ÷ 실행한 테스트 케이스 수
                      (옛 판: "성공적인 케이스의 비율" — 정의가 반대였다)
 
결함 밀도 = 검출 결함 수 ÷ 대상의 크기 (예: 1,000줄(KLOC)당, 기능 점수당)
 
결함 나이 = 결함이 Closed된 시점 − Open된 시점

수험서 예제 하나를 정정값으로 확인하자. 케이스 10개를 만들어 결함 1개를 찾았다면 테스트 케이스 효율성은 1 ÷ 10 = 0.1, 백분율로 10% 다. 옛 판은 10 ÷ 1 = 10으로 풀었다. 효율성이라는 이름을 생각하면 "케이스 하나당 결함을 얼마나 찾았나"가 맞고, 그러려면 결함 수가 분자에 와야 한다.

실무에서 왜 필요한가

"언제 테스트를 끝내나요?"는 신입이 가장 자주 받는 질문이자 가장 답하기 어려운 질문이다. 이 레슨의 그래프들이 그 답의 근거다. 일별 신규 결함이 줄어들고, 누적 곡선이 평평해지고, 상태별 누적 그래프에서 Open과 Closed의 틈이 좁아지며, 심각도 높은 결함 비율이 낮아졌다면 — 그리고 계획서의 완료 기준을 충족했다면 — 종료를 제안할 수 있다. 반대로 누적 곡선이 아직 가파르게 오르는데 일정 때문에 끝낸다면, 그것을 종료 보고서의 잔존 위험 으로 정직하게 남겨야 한다.

종료 보고서의 교훈 항목은 형식적으로 비워 두기 쉬운데, 다음 프로젝트에서 가장 값진 부분이다. "테스트 데이터 준비가 3일 늦어 실행이 밀렸다 → 다음엔 데이터 요건을 설계 첫 주에 확정한다" 같은 한 줄이 조직의 프로세스를 바꾼다. 이것이 레슨 2에서 본 테스트의 세 번째 목적, 프로세스 개선 지원이 실제로 일어나는 자리다.

채용시장에서의 위치

테스트 리드·매니저 직무로 올라가면 이 레슨의 산출물을 직접 쓰게 된다. 신입 단계에서도 주간 현황 보고 초안을 맡는 경우가 많다. 면접에서 "테스트 진척을 어떻게 보고했나요?"라는 질문에 "실행률·통과율과 결함 상태별 추이를 주간으로 보고했고, Open-Resolved 간격이 벌어지면 개발 리소스 이슈로 따로 올렸다"처럼 메트릭과 판단을 함께 말하면 관리 역량의 싹을 보여 줄 수 있다.

실습 과제

과제 1 — 그래프 해석

결함 상태별 누적 그래프에서 14일차 값이 Open 120, Resolved 95, Verified 80, Closed 78이다.

  1. 개발자가 아직 처리해야 할 결함은 몇 건인가?
  2. 테스터가 재테스팅 등으로 검증해야 할 결함은 몇 건인가?
  3. 이 상태에서 종료를 제안하기 어려운 이유를 한 문장으로 쓴다.
해설 보기
  1. Open − Resolved = 25건. 2. Resolved − Verified = 15건. 3. 미해결·미검증 결함이 40건이나 남아 있고, 그 심각도 분포를 확인하기 전에는 종료 기준 충족을 판단할 수 없다. (Verified 80과 Closed 78의 차이 2건은 Won't Fix가 검증되어 Deferred로 간 결함일 수 있다.)

과제 2 — 보고서 항목 분류

다음 항목이 현황 보고서, 종료 보고서, 둘 다 중 어디에 들어가는지 고른다. 보고 대상 기간 / 교훈 / 테스트 메트릭 / 잔존 위험 / 이후 테스트 계획 / 재사용 가능한 테스트 자산 / 테스트 방해 요인

해설 보기

현황만: 보고 대상 기간, 이후 테스트 계획. 종료만: 교훈, 잔존 위험, 재사용 가능한 테스트 자산. 둘 다: 테스트 메트릭, 테스트 방해 요인.

과제 3 — 모의고사 20문항 (권장 시간 24분)

실제 시험의 문항당 시간(약 1분 12초)에 맞춰 20문항을 24분 안에 푼다. 16문항 이상 맞히면 이 모듈 범위는 합격권이다. 모든 문항은 이 모듈을 위해 새로 만든 것이다.

  1. 테스트의 목적으로 가장 거리가 먼 것은? ① 결함 검출 ② 품질 평가와 의사 결정 지원 ③ 개발 프로세스 개선 지원 ④ 결함이 없음을 증명
  2. 개발자가 요구사항을 잘못 이해해 코드에 잘못된 조건문을 넣었다. 이 "잘못 이해한 행위"는? ① 오류 ② 결함 ③ 장애 ④ 인시던트
  3. 요구 명세와 관계없는 코드가 구현되어 있는 결함 유형은? ① 누락 ② 부정확한 구현 ③ 비관련 ④ 중복
  4. 겔퍼린과 헤첼의 레벨 중 "결함 예방"을 목적으로 하며 TDD가 대표적인 것은? ① 레벨 2 ② 레벨 3 ③ 레벨 4 ④ 레벨 5
  5. 검증(Verification)에 대한 설명으로 옳은 것은? ① 올바른 시스템을 만들고 있는지 판별한다 ② 사용자 요구를 직접 다룬다 ③ 시스템을 올바르게 만들고 있는지, 명세 대비로 판별한다 ④ 인수 테스트가 대표적이다
  6. 입력값과 그에 대응하는 예상 결과를 묶은 것은? ① 테스트 절차 ② 테스트 케이스 ③ 테스트 스크립트 ④ 피처
  7. ISO 25010에서 "가용성"이 속하는 주특성은? ① 보안성 ② 성능 효율성 ③ 신뢰성 ④ 사용성
  8. 비기능 테스트에 대한 설명으로 옳은 것은? ① 컴포넌트 레벨에서만 수행한다 ② 일반적으로 시스템·인수 테스트 레벨에서 수행한다 ③ 기능 요구사항의 충족 여부를 확인한다 ④ 정적 테스트로만 수행한다
  9. 다음 중 경험 기반 테스트 기법은? ① 결정표 테스트 ② 상태 전이 테스트 ③ 오류 추정 ④ 기본 경로 테스트
  10. 상향식 통합 테스트에 반드시 필요한 것은? ① 테스트 스텁 ② 테스트 드라이버 ③ 시뮬레이터 ④ 베타 사용자
  11. V 모델의 요구분석 단계에서 하는 테스트 관련 활동은? ① 시스템 테스트 실행 ② 시스템 테스트 계획·설계와 케이스·절차 도출 ③ 단위 테스트 실행 ④ 테스트 종료 보고
  12. 리그레션 테스트 전략 중 커버리지가 중복되는 케이스를 실제로 제거하는 것은? ① Retest-All ② 선택적 리그레션 ③ 테스트 최소화 ④ 테스트 우선순위화
  13. 케이스 4개, 결함 2개이고 각 결함의 첫 검출 위치가 1과 2일 때 APFD는? ① 50.0 ② 62.5 ③ 75.0 ④ 87.5
  14. 29119 테스트 프로세스에서 테스트 계획, 모니터링 및 제어, 종료로 이루어진 것은? ① 조직 테스트 프로세스 ② 테스트 관리 프로세스 ③ 동적 테스트 프로세스 ④ 결함 관리 프로세스
  15. 테스트 실행 활동의 산출물은? ① 테스트 실행 로그 ② 결함 추적 보고서 ③ 테스트 환경 준비 보고서 ④ 테스트 절차 명세서
  16. 변수 X가 -1, -2일 때 결함을 발견하고, 추가 테스트로 음의 정수 전체에서 발생함을 확인해 기술했다. 이는? ① 구체화 ② 고립화 ③ 일반화 ④ 재테스팅
  17. 개발자의 처리 결과가 Duplicated이고 검증 결과 정확했을 때 다음 상태는? ① Reopen ② Deferred ③ Closed ④ Assigned
  18. 상태별 누적 결함 그래프에서 Open 곡선과 Resolved 곡선 사이가 뜻하는 것은? ① 테스터가 재테스팅할 결함 ② 개발자가 해결할 결함 ③ 종결된 결함 ④ 연기된 결함
  19. 테스트 종료 보고서에만 들어가고 현황 보고서에는 들어가지 않는 항목은? ① 테스트 메트릭 ② 테스트 방해 요인 ③ 교훈 ④ 보고 대상 기간
  20. 테스트 케이스 20개로 결함 4개를 검출했을 때 테스트 케이스 효율성은? ① 5 ② 0.2 ③ 4 ④ 0.8
정답과 해설
번호정답해설레슨
1④테스트는 결함의 존재는 보일 수 있으나 부재는 보일 수 없다2
2①사람의 행위는 오류, 그 결과 코드에 남은 것이 결함2
3③명세와 무관한 구현2
4④Prevention-oriented, 1988~2
5③①②④는 확인(Validation)2
6②절차는 케이스를 실행 순서로 묶은 것3
7③신뢰성: 성숙성·가용성·결함 허용성·복구성3
8②기능 테스트는 모든 레벨, 비기능은 주로 시스템·인수3
9③①② 명세 기반, ④ 구조 기반3
10②상향식은 아직 없는 상위를 드라이버로 채운다4
11②요구분석 단계엔 실행할 코드가 없다(정오표 항목)4
12③선택은 고르고, 최소화는 지운다5
13③(1 − 3/8 + 1/8) × 100 = 75.05
14②6
15①②는 결함 보고, ③은 환경 구축, ④는 설계 및 구현6·7
16③범위를 넓혀 정확히 기술7
17③Won't Fix만 정확해도 Deferred7
18②Resolved와 Verified 사이가 테스터 몫8
19③①② 둘 다, ④ 현황 보고서8
20②결함 수 ÷ 케이스 수 = 4 ÷ 20 (정오표로 정정된 공식)8

13번 풀이: n = 4, m = 2, n × m = 8, TF 합 = 1 + 2 = 3, 1/(2n) = 1/8. 1 − 0.375 + 0.125 = 0.75 → 75.0.

틀린 문항의 "레슨" 열을 보고 해당 레슨의 자가 체크리스트로 돌아간다. 한 레슨에서 두 문항 이상 틀렸다면 그 레슨의 표를 노트에 다시 옮겨 그리는 것이 가장 빠른 복습이다.

자가 체크리스트

  • 모니터링 및 제어의 세 작업, 종료의 세 작업 이름을 순서대로 말할 수 있다
  • 실행·커버리지·결함 메트릭의 예를 각각 두 개 이상 댈 수 있다
  • 결함 그래프 여섯 가지가 각각 무엇을 판단하는 데 쓰이는지 말할 수 있다
  • 상태별 누적 그래프에서 개발자 몫과 테스터 몫의 틈을 짚을 수 있다
  • 제어 유형 네 가지와 제어 방법의 세 관점을 예와 함께 말할 수 있다
  • 현황 보고서와 종료 보고서의 항목 차이를 구분할 수 있다
  • 테스트 자산 관리(형상 관리)와 환경 정리(이전 상태로 복구)의 뜻을 안다
  • 테스트 케이스 효율성(결함 수 ÷ 케이스 수)과 실패율(실패 케이스 비율)을 정정된 형태로 계산할 수 있다
  • 모의고사 20문항을 24분 안에 풀어 16문항 이상 맞혔다

흔한 실수

누적 결함 그래프가 일별 그래프에 없는 정보를 준다고 고르기. 누적은 일별 값을 더한 것일 뿐이라 새 정보는 없다. 다만 평평해지는 모양을 눈으로 보기 쉬울 뿐이다.

테스트 케이스 효율성을 옛 공식으로 풀기. 케이스 수가 분모다. 효율성이 1보다 크게 나왔다면 (케이스보다 결함이 많은 경우가 아니라면) 분자·분모를 뒤집었을 가능성이 크다.

잔존 위험을 현황 보고서 항목으로 고르기. 현황 보고서에는 "신규 및 변경 위험"이, 종료 보고서에는 "잔존 위험"이 들어간다. 이름이 비슷해 헷갈린다.

환경 정리를 "환경 삭제"로 이해하기. 정리는 테스트에 쓰기 이전 상태로 복구 하는 것이다. 공용 장비나 계정을 테스트 전 상태로 되돌려 놓는 일이 포함된다.

참고 자료

  • 한국정보통신기술협회, 『소프트웨어 테스트 전문가(CSTS) 가이드』 개정판 — 15장 테스트 모니터링/제어 및 테스트 종료, 16장 16.2절 테스트 활동 평가. 정오표 20번(위험 완화)·22~24번(테스트 케이스 효율성)·44번(실패율) 반영
  • ISO/IEC/IEEE 29119-2:2021 — Test processes — 테스트 모니터링 및 제어, 테스트 종료 프로세스
  • ISO/IEC/IEEE 29119-3:2021 — Test documentation — 테스트 현황 보고서·테스트 종료 보고서 구성
  • ISO/IEC/IEEE 16085:2021 — Risk management — 위험 대응(회피·완화·전가·수용)의 표준 근거
  • 이 커리큘럼 안: 모듈 6 레슨 5 「테스트 보고서와 품질 지표」, 모듈 4 레슨 4 「일정·리소스 산정과 테스트 종료 조건」, 모듈 4 레슨 5 「릴리즈 Go/No-Go 의사결정」, 모듈 8 레슨 4 「관리 테스트 프로세스」

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

ISO/IEC/IEEE — 세 단체 공동 표준
세 국제 단체가 함께 낸 표준이라는 표시.
ISO — 국제표준화기구
여러 나라가 모여 "이건 이렇게 하자"를 문서로 정하는 단체. 그 문서 자체를 번호로 부른다.
Go/No-Go — 내보낼지 말지 판정
미리 정해 둔 조건을 놓고 "이대로 내보낸다 / 내보내지 않는다" 를 한자리에서 정하는 일.

용어집 전체 보기