용어집 · 테스트 설계
경계값 분석
영어: Boundary value analysis
다른 이름: BVA, 경계값 테스트, 경계 값 분석, 경계 테스트
정의
유효 범위의 경계와 그 바로 주변 값을 테스트 입력으로 선택하는 블랙박스 테스트 설계 기법으로, off-by-one 결함이 몰리는 지점을 노립니다.
경계값 분석(Boundary Value Analysis, BVA)은 각 입력 범위의 가장자리 값을 테스트합니다. 개발자가 실수하는 곳이 바로 여기이기 때문입니다. >= 대신 >를 쓰거나, <= 60 대신 < 60을 쓰거나, 루프가 한 번 더 도는 식입니다. 보통 동등 분할로 범위를 먼저 식별한 뒤, BVA로 각 경계의 위와 주변에 있는 정확한 값을 고릅니다.
예시: 18세에서 60세까지 허용
회원가입 폼이 18세 이상 60세 이하의 나이를 허용합니다.
2값 BVA (경계값과 범위 바깥의 가장 가까운 이웃 값):
| 입력 | 기대 결과 |
|---|---|
| 17 | 거부 |
| 18 | 허용 |
| 60 | 허용 |
| 61 | 거부 |
3값 BVA는 각 경계 안쪽의 이웃 값을 추가합니다.
| 입력 | 기대 결과 |
|---|---|
| 17, 18, 19 | 거부, 허용, 허용 |
| 59, 60, 61 | 허용, 허용, 거부 |
가능한 유효 나이 43개 대신 테스트 6개로 충분하며, 이 6개가 흔한 비교 연산 실수를 잡아냅니다. 코드가 age > 18이라면 18 테스트가 실패하고, age < 60이라면 60 테스트가 실패합니다.
숫자 범위를 넘어서
한계가 있는 곳이라면 어디든 경계가 있습니다.
- 길이: 사용자 이름이 3~20자라면 2, 3, 20, 21자를 테스트합니다.
- 날짜와 시간: 30분간 유효한 링크라면 29:59, 30:00, 30:01에 테스트합니다. 해당된다면 자정, 월말, 윤일도 확인하세요.
- 컬렉션: 빈 장바구니, 상품 1개, 허용 최대 개수 + 1개.
- 금액: “$100 이상 무료 배송” 규칙이라면 $99.99, $100.00, $100.01.
- 기술적 한계: 최대 파일 크기, 정수 오버플로, 페이지네이션 API의 페이지 크기.
흔한 실수
- 유효한 쪽만 테스트하기. 17과 61도 18과 60만큼 중요합니다.
- 경계를 추측하기. “최대 60”은 60을 포함할 수도, 포함하지 않을 수도 있습니다. 질문하고, 답을 인수 조건에 기록하세요.
- 타입과 정밀도를 무시하기. 필드가 소수를 허용한다면 18 바로 아래 값은 17이 아니라 17.99일 수 있습니다.
- 숨은 경계를 잊기. 데이터베이스 컬럼이나 API가 UI와 다른 한계를 둘 수 있습니다. 각 계층의 한계를 테스트하세요.