⚡ 테스트의 현실과 실제
교과서에서는 완벽한 테스트를 이야기하지만
실제 현장에서는 현실과 제약 속에서 테스트가 진행된다.
📌 이상적 테스트
- 모든 기능을 100% 검증
- 모든 경계값과 예외 케이스 테스트
- 테스트 케이스가 완전히 문서화되어 있음
- 버그 없는 소프트웨어를 목표
이상적으로는 “테스트 = 완벽한 품질 보장”처럼 느껴진다.
📌 현실적 테스트
현장에서 테스트는 제약 속에서 이루어지는 활동이다.
현실 제약
- 시간 부족
- 제한된 인력
- 불완전한 요구사항
- 복잡한 환경 구성
- 지속적인 변경 (패치, 릴리즈, 외부 API)
현실적 대응
- 우선순위 기반 테스트 (Risk-based Testing)
- 핵심 기능 중심 테스트
- 재현 가능한 결함 위주 테스트
- 자동화 활용으로 반복 테스트 최소화
🧩 현실에서 자주 마주하는 문제
- 테스트 범위 제한
- 모든 케이스를 테스트할 수 없음
- 신규 기능과 주요 시나리오 중심
- 불완전한 요구사항
- 모호하거나 누락된 요구사항 존재
- 테스트 설계 시 가정 필요
- 변경과 긴급 배포
- 개발 변경으로 테스트 케이스 유효성 변화
- 급하게 릴리즈해야 하는 상황
- 재현 불가 결함
- 특정 환경/데이터에서만 발생
- 로그나 조건 부족으로 원인 파악 어려움
🔍 QA의 현실적 접근
- 목표는 완벽한 테스트가 아니라, 위험 최소화
- 결함 발견과 수정 비용을 고려한 우선순위 기반 테스트
- 테스트 자동화와 체크리스트 활용으로 반복 작업 최소화
- 요구사항 리뷰부터 참여하여 결함 발생 초기 차단
🧠 핵심 정리
| 교과서 |
현실 |
| 모든 기능 100% 검증 |
제한된 범위 내 핵심 검증 |
| 이상적인 요구사항 |
불완전하거나 변경되는 요구사항 |
| 충분한 시간 확보 |
배포 일정 압박, 긴급 상황 빈번 |
| 버그 없는 소프트웨어 |
장애 예방과 리스크 최소화 목표 |
테스트는 완벽하지 않다.
하지만 QA의 목표는 불완전함 속에서도 품질을 지키는 것이다.