개념
일정과 리소스는 대략이라도 근거를 남긴다
정교한 산정 공식이 없어도, 아래 세 가지 근거를 조합하면 현실적인 추정이 된다.
- 과거 유사 작업과 비교: "지난번 비슷한 규모의 기능은 테스트에 3일 걸렸다"
- 전문가 판단: 그 영역을 잘 아는 사람의 직관적 추정
- 작업을 잘게 쪼개서 더하기: 레벨별(모듈 1)·기법별(모듈 3)로 나눠 각각 예상 시간을 매기고 합산
세 방법을 하나만 쓰기보다 교차 검증하면 더 신뢰할 수 있는 추정이 나온다. 레슨 2(리스크)와 레슨 3(규모)에서 정한 우선순위가 여기서 그대로 쓰인다 — 리소스가 부족하면 낮은 우선순위부터 줄인다.
테스트 종료 조건 (Exit Criteria)
"테스트가 끝났다"를 언제 선언할지 미리 정해두지 않으면, 매번 "이 정도면 된 걸까요?"라는 주관적 논쟁이 반복된다. 모듈 1(레슨 5)에서 배웠듯 "버그가 0건"은 종료 조건이 될 수 없다 — 증명 불가능하기 때문이다. 대신 아래처럼 관찰 가능하고 합의 가능한 조건을 쓴다.
예시 종료 조건
- 계획된 테스트 케이스의 95% 이상 실행 완료
- 심각도 "높음" 이상 결함이 모두 수정·재확인됨
- 심각도 "중간" 이하 결함은 목록화되고 이해관계자가 리스크를 인지함
- 계획했던 커버리지 목표(예: 핵심 기능 100%, 부가 기능 스모크 수준)를 달성함
- 남은 리스크(테스트 못 한 영역)가 문서로 정리되어 있음
이 조건들은 전부 **"충족됐는지 아닌지 판단 가능"**하다 — 모듈 2(레슨 2)에서 배운 "테스트 가능한 요구사항"의 조건을 종료 조건에도 그대로 적용한 것이다.
종료 조건은 두 방향을 막는다
- 끝없는 테스트를 막는다: "이 정도면 충분하다"는 합의된 기준이 있으면, "혹시 모르니 더 보자"는 무한 루프에 빠지지 않는다.
- 성급한 중단을 막는다: 반대로 일정에 쫓겨 "일단 릴리즈부터 하자"고 할 때도, 종료 조건 미충족을 근거로 "아직 안 된다"고 명확히 말할 수 있다.
실무에서 왜 필요한가
종료 조건이 없으면 "테스트 다 끝났나요?"라는 질문에 답이 사람마다 다르다. QA는 "아직 몇 개 남았다"고 생각하는데 PM은 "이미 충분히 됐다"고 생각하는 상황이 실무에서 자주 벌어진다. 종료 조건을 미리 문서로 합의해두면 이 논쟁이 사실 확인으로 끝난다 — "종료 조건 3번(심각도 높음 결함 0건)이 아직 안 됐으니 완료가 아닙니다"처럼. 이건 다음 레슨(Go/No-Go)의 판단 근거로 그대로 이어진다.
실습 과제
과제 1 — 종료 조건 작성하기 (15분)
가상의 릴리즈에 대해 종료 조건을 최소 4개 작성한다. "버그 없음"처럼 증명 불가능한 조건은 쓰지 않는다.
과제 2 — 종료 조건으로 판단하기 (10분)
다음 상황에서 과제 1의 종료 조건(또는 위 예시 종료 조건)을 기준으로 "테스트 종료를 선언할 수 있는가"를 판단한다.
계획된 테스트 케이스의 90%를 실행했고, 심각도 "높음" 결함이 1건 미해결 상태로 남아있다. 심각도 "중간" 결함 3건은 목록화되어 공유됐다.
자가 체크리스트
- 일정·리소스를 추정하는 세 가지 근거(과거 비교, 전문가 판단, 작업 분해)를 설명할 수 있다
- "버그 없음"이 왜 종료 조건이 될 수 없는지 설명할 수 있다
- 관찰 가능하고 합의 가능한 종료 조건을 직접 작성할 수 있다
- 종료 조건이 "끝없는 테스트"와 "성급한 중단" 양쪽을 막는 이유를 설명할 수 있다
흔한 실수
- 종료 조건을 테스트가 다 끝난 뒤에 사후적으로 정한다. 종료 조건은 계획 단계에서 미리 합의해야 의미가 있다. 나중에 정하면 그때 상황에 맞춰 끼워 맞추게 된다.
- 종료 조건에 애매한 표현을 쓴다. "충분히 테스트됨" 같은 표현은 모듈 2(레슨 2)에서 배운 "테스트 불가능한 요구사항"과 같은 문제를 가진다.
- 종료 조건이 충족되지 않았는데도 압박에 밀려 조용히 종료를 선언한다. 이럴 땐 조건 미충족을 명시적으로 기록하고, 남은 리스크를 이해관계자에게 알린 뒤 결정은 다음 레슨의 Go/No-Go 절차로 넘긴다.
참고 자료
- ISTQB Foundation Level Syllabus — Exit Criteria — 테스트 종료 기준의 공식 정의
- ISO/IEC/IEEE 29119-2 — 테스트 관리 프로세스에서 종료 기준을 다루는 부분 (모듈 8에서 상세히)