개념
두 활동의 관계
테스트 관리 프로세스의 마지막 두 활동이다.
| 활동 | 하는 일 | 산출물 |
|---|---|---|
| 테스트 모니터링 및 제어 | 동적 테스트 활동이 계획대로 가는지 메트릭으로 보고, 필요하면 조치한다. 종료 기준이 충족되면 종료 활동을 시작시킨다 | 테스트 현황 보고서 |
| 테스트 종료 | 산출물을 자산으로 관리하고, 환경을 약속된 상태로 정리하고, 결과를 기록한다 | 테스트 종료 보고서 |
모니터링 및 제어는 세 작업 — 테스트 모니터링, 테스트 활동 제어, 테스트 현황 보고 — 로, 종료는 세 작업 — 테스트 자산 관리, 테스트 환경 정리, 테스트 종료 보고 — 로 이루어진다. 여섯 작업 이름을 짝으로 외워 두면 순서 문제에 강해진다.
테스트 모니터링 — 무엇을 보나
모니터링은 실제 진척이 계획과 다른지 파악하고, 다르면 지연 원인 도 분석한다. 그와 함께 위험 관리 도 한다. 새 위험을 식별해 위험도를 산정하고, 기존 위험의 변화도 지켜보며, 그 결과를 제어에 반영한다. 기존 위험의 위험도가 올라가면 설계 기법이나 완료 기준을 강화할 수 있다.
테스트 활동 중에서 시간이 가장 많이 드는 것은 설계 및 구현 과 실행 이다. 그래서 모니터링도 이 두 활동에서 특히 중요하다. 계획 단계에서 정해 둔 메트릭으로 정량적으로 본다.
| 메트릭 유형 | 메트릭 |
|---|---|
| 테스트 실행 | 실행된 절차(케이스) 비율, 통과된 비율, 실패한 비율 |
| 커버리지 | 요구사항 커버리지, 설계 커버리지, 코드 커버리지 |
| 결함 | 검출 결함 수, 검출 결함 밀도, 상태별 결함 수, 결함 나이 |
결함 그래프 여섯 가지를 읽는 법
결함 보고서와 결함 추적 보고서가 모니터링의 핵심 자료다. 가이드는 여섯 가지 그래프를 예로 든다. 그래프마다 무엇을 판단하는 데 쓰는가 를 외운다.
| 그래프 | 읽는 법 | 쓰임 |
|---|---|---|
| 심각도별 결함 비율 | 심각도 높은 결함의 비율이 낮으면 종료를 고려, 높으면 지금 기법이 심각한 결함을 잘 찾는다고 판단 | 종료 판단, 기법 효과 판단 |
| 서브시스템별 결함 수 | 결함이 많은 서브시스템은 앞으로도 많이 나올 것으로 예측 (파레토) | 노력 재배분, 다음 프로젝트 계획 |
| 일별 신규(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 간격이 벌어지면 개발 리소스 이슈로 따로 올렸다"처럼 메트릭과 판단을 함께 말하면 관리 역량의 싹을 보여 줄 수 있다.