📘 테스트 기본 용어
테스트를 이해하려면
무엇을, 어느 범위까지, 어떤 관점으로, 어떻게 테스트하는지 구분할 수 있어야 한다.
📌 기본 결함 관련 용어
✔ 오류 (Error)
- 사람이 만든 실수
- 요구사항 오해, 설계 실수, 코딩 실수 등
✔ 결함 (Defect, Bug)
✔ 실패 (Failure)
- 실행 중 결함이 드러나 정상 동작하지 않는 현상
Error → Defect → Failure
📌 테스트 대상 (Test Item)
- 테스트의 대상이 되는 시스템 또는 구성 요소
- 모듈, 기능, API, 화면 등
“무엇을 테스트할 것인가”에 대한 정의
📌 테스트 레벨 (Test Level)
테스트를 수행하는 단계적 구분
✔ 단위 테스트 (Unit Test)
✔ 통합 테스트 (Integration Test)
✔ 시스템 테스트 (System Test)
✔ 인수 테스트 (Acceptance Test)
“어느 범위까지 묶어서 검증할 것인가”의 개념
📌 피처 (Feature)
- 사용자가 인식하는 기능 단위
- 예: 로그인, 결제, 검색 기능
사용자 관점의 기능 단위
📌 테스트 유형 (Test Type)
테스트를 수행하는 목적이나 품질 속성 기준 분류
✔ 기능 테스트 (Functional Test)
✔ 비기능 테스트 (Non-functional Test)
✔ 회귀 테스트 (Regression Test)
“어떤 관점으로 테스트하는가”의 개념
📌 정적 테스트 (Static Test)
- 프로그램을 실행하지 않고 수행
- 문서, 설계서, 코드 등 산출물 검토
✔ 대표 기법
- 리뷰 (워크스루, 인스펙션 등)
- 정적 분석 (도구 기반 코드 분석)
실행 없이 결함을 조기에 발견하는 활동
📌 동적 테스트 (Dynamic Test)
- 프로그램을 실제로 실행하여 수행
- 실행 결과를 통해 결함 확인
✔ 동적 테스트 설계 기법
1️⃣ 명세 기반 기법 (Black-box)
- 요구사항 중심 설계
- 동등 분할, 경계값 분석, 결정 테이블 등
2️⃣ 구조 기반 기법 (White-box)
- 코드 구조 중심 설계
- 구문 커버리지, 분기 커버리지 등
3️⃣ 경험 기반 기법
- 테스터의 경험 활용
- 탐색적 테스트, 오류 추정 등
🧠 핵심 구조 정리
- 테스트 대상 → 무엇을 테스트하는가
- 테스트 레벨 → 어느 범위까지 검증하는가
- 피처 → 사용자 관점 기능 단위
- 테스트 유형 → 어떤 관점으로 테스트하는가
- 정적 테스트 → 실행 없이 검증
- 동적 테스트 → 실행하여 검증
- 설계 기법 → 테스트 케이스를 도출하는 방법
테스트는 단순 실행이 아니라
범위, 관점, 방법이 모두 체계적으로 구분되는 활동이다.