테스트 완료 기준으로 릴리스 품질 게이트 설계하기

테스트 완료 기준(Exit Criteria)을 정량 품질 게이트와 정성 위험 판단으로 설계하고 Go/No-Go 의사결정에 적용하는 방법

2026-08-15 · 최초 발행 2025-12-23

릴리스 판단을 측정 가능한 조건으로 바꾸기

테스트 완료 기준(Exit Criteria)은 특정 테스트 단계 또는 전체 테스트를 종료하고, 릴리스 여부를 판단하기 위해 충족해야 하는 조건의 집합이다. “테스트를 충분히 했다”는 식의 표현만으로는 Go/No-Go를 일관되게 결정하기 어렵다. 기능 검증 결과, 결함 상태, 비기능 요구사항(NFR), 보안과 규제 준수, 문서 및 인수 서명까지 판단 가능한 조건으로 합의해야 한다.

정량 지표만으로 모든 릴리스 위험을 설명할 수는 없다. 커버리지와 결함 밀도 같은 측정값에 위험 수용성 같은 정성 판단을 더해, 기준 미충족 항목을 어느 수준까지 받아들일지와 그 근거를 Go/No-Go 결정에 반영한다.

Entry Criteria가 테스트를 시작하기 위한 조건이라면, Exit Criteria는 테스트 종료와 릴리스의 조건이다. Acceptance Criteria는 고객 또는 사업 관점에서 무엇을 수용할지 구체화한다. 세 기준은 서로 대체하는 것이 아니라, 테스트와 릴리스 과정에서 다른 역할을 맡는다.

지표와 승인 체계가 함께 있어야 한다

Exit Criteria는 정량 지표를 중심으로 구성한다. 요구사항·코드·리스크 기준의 테스트 커버리지 임계값, 테스트 케이스 통과율, 심각도·밀도·재오픈율·누수율 같은 결함 지표가 여기에 들어간다. 커버리지는 라인, 브랜치, 조건, 함수 기준으로 목표치와 추세를 관리하되, 이를 과도하게 신뢰하지 않도록 위험 기반 보완이 필요하다. 결함은 결함/KLOC 또는 결함/FP로 나타내는 결함 밀도, P0/P1=0 여부, 주간 신규·해결 추세의 기울기로 볼 수 있다.

성능 SLA, 안정성 MTTF, SLO 충족 여부, 오류율과 지연시간의 한계, 신뢰도 성장 모델의 목표 달성 여부도 판단 대상이 될 수 있다. 보안 취약점 심각도 0건, 접근성 및 규제 준수, 주요 규제·표준 Checklist 충족 여부를 함께 확인한다. 모니터링, 알림, 런북의 준비 상태와 롤백·피처플래그 검증 완료 여부도 종료 판단에 포함된다.

모든 기준을 같은 무게로 다룰 필요는 없다. 위험도에 따라 가중치를 두고 등급별 임계값을 나눌 수 있다. 예를 들어 High 리스크 기능은 통과율 ≥ 98%, Medium 리스크 기능은 ≥ 95%로 구분한다. 릴리스를 막는 필수 게이트와 협의 가능한 권고 게이트도 분리해야 한다.

측정 결과가 신뢰를 얻으려면 측정 방법과 데이터 출처를 밝혀야 한다. Jira/Xray, TestRail, SonarQube, 성능·보안 스캐너처럼 어떤 도구와 데이터를 사용하는지, 어느 시점의 스냅샷을 기준으로 삼는지 명시한다. 지표 산식, 샘플 크기, 신뢰수준과 오차 범위까지 정의하면 감사 추적성을 확보할 수 있다. 테스트 케이스, 결함, 요구사항 ID의 공통 스키마는 시스템 간 데이터 일관성을 지탱한다.

기준 미충족 상황을 무시하지 않는 절차도 필요하다. 예외 승인에는 담당자, 근거, 만료일을 남기고, 리스크 수용 문서와 보완 계획을 연결한다. 위험 평가와 함께 보완 조치, 만기일, 책임자를 명시하는 waiver 절차를 운영할 수 있다. Go/No-Go 위원회가 판단한 결과와 측정값, 결정 로그, 지표 산출 근거는 감사 가능하도록 보존한다.

Go/No-Go 결정은 변경 기록과 연결해 원자성을 보장하며, 릴리스 레코드를 단일 소스로 삼아 추적성을 유지한다. 병행 승인을 막기 위해 잠금 정책을 적용하고, 릴리스 당 단일 활성 승인 레코드를 유지할 수 있다.

CI/CD 파이프라인에서는 Unit, Integration, System, UAT 단계별로 Exit Criteria를 나누어 적용할 수 있다. CI에서는 커버리지, 정적 분석, 테스트 결과를 수집하고 CD에서는 성능·보안 스캔을 게이트에 적용한다. 배포 차단 규칙과 품질 대시보드를 함께 운영하면 동일한 기준을 반복 적용하기 쉬워진다. 대시보드는 임계값 대비 상태를 녹·황·적으로 표시하며 릴리스 기준서와 동기화한다.

기준 설정부터 재측정까지의 흐름

조건 충족조건 미충족개선 재측정측정 오류/데이터 누락 발견원인 제거/재수집입력: 요구사항, 품질 목표,규정/컴플라이언스 수집처리: 지표 정의, 임계값 설정,측정 계획 수립실행: 테스트 수행, 지표측정/수집, 대시보드 구성검증: 모든 Exit Criteria 충족여부?출력: Exit 달성, 릴리스권고(Go) 보고보정: 범위·품질·일정 조정예외 승인 검토예외: 도구·데이터 품질 이슈해결

테스트 실행 로그, 커버리지 리포트, 결함 관리 시스템, 성능·보안 스캔 결과를 판단의 입력으로 삼는다. 사전에 정한 임계값을 불러와 자동 규칙으로 평가하고, 미충족 항목은 예외 심의와 보정 계획으로 넘긴다. 그 결과는 Go/No-Go 결정, 잔여 리스크와 보완 조치, 감사 가능한 릴리스 기록으로 남는다.

서비스 성격에 따라 달라지는 릴리스 게이트

대형 웹 서비스에서는 기능과 비기능 지표를 함께 본다. 우선순위 P0/P1 결함은 0건, P2 미해결 결함은 ≤ 5건, 핵심 경로 e2e 통과율은 ≥ 98%로 둘 수 있다. p95 응답시간은 ≤ 300ms, 오류율은 ≤ 0.1%, 보안 Critical/High 취약점은 0건을 기준으로 삼는다. 서비스 오너·QA·SRE가 공동으로 Go/No-Go를 판단하며, 예외에는 1주 이내 핫픽스 계획을 첨부한다.

스프린트 릴리스에서는 패스율 ≥ 95%, 라인 커버리지 ≥ 85%, P0/P1=0, 신규 결함 증가율 3일 평균 ≤ 5%를 기준으로 둘 수 있다. CI의 자동 평가 뒤 스쿼드가 Go/No-Go를 판단하며, 기준을 충족하지 못하면 타임박스 안에서 보완하거나 스코프를 축소한다.

결제 모듈처럼 고위험 배포에서는 브랜치 커버리지 ≥ 80%, 장애 주입 테스트 통과, PCI-DSS 체크리스트 100%, 성능 P95 지연 ≤ 200ms를 요구할 수 있다. 이 경우 예외 금지 정책을 적용하고 롤백 전략과 런북 검증을 필수로 둔다.

금융 규제 시스템의 온프레미스 환경은 감사와 복구 요구사항이 중심이 된다. 감사로그 100% 캡처, 데이터 보존 정책 충족, 접근통제 테스트 100% 통과를 확인한다. DR 복구 시간 목표(RTO)는 ≤ 1시간, 복구 시점 목표(RPO)는 ≤ 5분으로 검증하며, 보안·컴플라이언스 오피서의 서면 인수를 요구할 수 있다.

SaaS 마이그레이션 컷오버에는 데이터 무손실 검증으로 해시 샘플링 오차 ≤ 0.1%, 부하 1.5×에서 오류율 ≤ 0.1%, 모니터링 대시보드와 알림 규칙 활성 상태를 기준으로 삼을 수 있다. 승인 뒤 변경창 안에서 배포하고 실패하면 자동 롤백과 고객 공지 템플릿 실행으로 대응한다.

임베디드와 연계된 모바일 앱은 단말 호환성과 스토어 품질 지표가 중요하다. 상위 95% 단말/OS 조합을 테스트하고, 크래시율은 7일 이동평균 기준 ≤ 0.2%로 본다. ANR은 ≤ 0.47%, Start-up time은 ≤ 1.5초, 접근성 체크리스트는 100% 준수를 기준으로 한다. 단계적 배포는 10%→50%→100%로 진행하며 각 단계의 지표를 만족할 때 다음 단계로 확장한다.

기준 충족 여부를 확인하는 계산

테스트 케이스 1,200건을 실행해 1,140건이 통과했다면 통과율은 1,140/1,200 = 95%다. 목표가 ≥95%라면 이 기준은 충족한다.

발견 결함 200건 중 배포 전에 184건을 제거했다면 DRE(결함 제거 효율)는 184/200 = 92%다. 목표가 ≥90%라면 이 기준도 충족한다.

성능 p95 응답시간이 280ms이고 목표가 ≤300ms라면 성능 기준을 만족한다.

운영 가능한 기준으로 만드는 과정

먼저 사업 KPI, 리스크 레지스터, 규제 요구사항과 릴리스 기준을 맞춘다. 이때 필수 게이트와 권고 게이트를 구분하고 각각의 책임자를 지정한다.

다음으로 기능·결함·비기능·보안 지표와 임계값을 정의한다. 기능 영역에서는 요구사항 커버리지 ≥ 95%, 핵심 흐름 통과율 ≥ 98%, Blocker/Critical 0건을 둘 수 있다. 결함 영역에서는 결함 밀도 ≤ 0.4/FP 또는 ≤ X/KSLOC, 재오픈율 ≤ 5%, 누수율 ≤ 2%를 사용한다. P0/P1=0, 결함 밀도 ≤ 0.51.0/KLOC 또는 ≤ 3/FP, 신규 결함 기울기 35일 연속 하락도 품질과 결함 기준으로 사용할 수 있다. 테스트 측면에서는 라인 ≥ 8090%, 브랜치 ≥ 7085%, 요구사항 커버리지=100%, 패스율 ≥ 95% 및 블로킹 실패 0이 예시가 된다.

비기능 및 보안 영역에는 성능 SLA, 가용성, 취약점 High 0건, 라이선스·개인정보 준수 100%를 포함할 수 있다. 핵심 SLO 충족(P95 지연/오류율), Critical/High 취약점 0, 라이선스 위반 0도 확인한다. 각 값은 일반적 권장 임계값이며, 영향도와 기준은 도메인 특성에 맞춰 조정한다.

CI 단계의 품질 게이트에는 SonarQube, SAST/DAST, 테스트 리포트를 연동한다. 단일 대시보드로 결과를 모으고, 스냅샷을 고정하며, 증빙 아카이브를 자동화한다.

예외가 필요하면 예외 사유·영향·보완 일정을 기록하고 만료일을 지정한다. 승인된 잔여 리스크는 등록하고 Go/No-Go 위원회의 승인과 연결한다. 릴리스 후에는 회고를 통해 임계값을 조정하고, 리스크 프로파일 변화를 반영한다. 샘플 크기와 계측 오류를 분석해 지표의 안정성을 검증하고 데이터 품질도 개선한다.

기준을 너무 느슨하거나 무겁게 만들지 않기

결정적인 지표는 소수로 유지하는 편이 낫다. 5~8개의 지표를 선정하고, 위험도에 따라 임계값을 차등 적용하며, 자동화와 예외 승인 표준화를 우선한다.

임계값을 올리면 품질은 높아질 수 있지만 일정 지연 위험도 커진다. 반대로 기준을 완화하면 일정은 확보할 수 있지만 결함 누수가 증가할 수 있다. 단계적으로 기준을 높이고, 제한적인 예외에 만료일과 보완 계획을 의무화하는 방식이 이 균형을 다루는 방법이다.

평가 지표 모호한 기준(예: 충분한 테스트) 정량 기준(예: 임계값 수치 명시)
일관성 사람에 따라 해석 상이 프로젝트/팀 간 동일 적용
안정성 결과 변동성 큼 변동성 최소화, 재현성 보장
운영 편의 보고·감사 어려움 자동화/대시보드로 실시간 확인
확장성 규모 확장 시 혼선 포트폴리오 레벨 표준화 용이
의사결정 성능 회의·논쟁 증가 Go/No-Go 속도 향상
기준 지표 성능 확장성 일관성 안정성 운영 편의
코드 커버리지 낮음: 실행 경로 확인 중심 낮음 높음: 경로/조건 검증 강화 중간: 회귀 결함 예방 중간: 리팩터링 안전성
결함 밀도 중간: 성능 결함 반영 가능 낮음 중간 높음: 장애 가능성 지표 중간: 핫픽스 감소
테스트 패스율 중간 낮음 중간 높음 중간
결함 트렌드 안정화 낮음 낮음 중간 높음: 릴리스 타이밍 판단 높음: 온콜 부담 예측
성능/SLO 충족 높음 높음 낮음 중간 높음: 알림 소음 감소
보안 취약점(High/Crit=0) 낮음 낮음 중간 높음: 사고 리스크 감소 중간

릴리스 기준 문서에 남길 항목

Exit Criteria 문서에는 테스트 단계, 시스템 경계, 제외 항목으로 범위를 명시한다. 기능, 결함, 성능·보안, 컴플라이언스, 문서·인수 서명에 대한 지표와 임계값을 기록한다. 데이터 소스, 산식, 스냅샷 시점, 책임자, 예외 승인 절차도 빠뜨리지 않는다.

종료 기준은 개발, QA, 운영이 같은 근거로 릴리스 여부를 판단하게 하는 품질 계약이 된다. 커버리지와 결함 밀도를 중심에 두되 성능, 보안, 운영성 게이트를 결합하고, 자동 수집·평가와 예외 거버넌스를 일관되게 운영하면 릴리스 의사결정과 조직 운영의 기준을 함께 맞출 수 있다. 품질 목표가 명문화되면 일정 변동 표준편차는 2035% 감소하고, Go/No-Go 회의 시간은 30% 단축된다. 프로덕션 고심각도 유출은 2040% 감소하며 MTTR은 10~25% 개선된다.

이런 품질 게이트를 적용하면 결함 누수율(Leakage)은 2040% 감소하고, Critical 장애 발생률은 30% 이상 감소할 수 있다. Go/No-Go 의사결정 리드타임은 3050% 단축되고, 릴리스 실패 롤백률은 15~25% 감소할 수 있다. 규제·고객감사 대응 시간은 50% 이상 단축되며 재현 가능한 보고 체계를 마련할 수 있다.

테스트 완료 기준품질 게이트릴리스 관리결함 관리CI/CD