경계값 분석(Boundary Value Analysis)란?
결함이 동치 클래스의 경계에 모이기 쉽다는 점에서, 경계 바로 양쪽의 값(예를 들어 1~100을 받아들인다면 0, 1, 100, 101)을 테스트하는 블랙박스 테스트 기법. 비교 연산자의 혼동 같은 오류를 찾기 쉽다.
일본어 명칭: 境界値分析
경계값 분석(Boundary Value Analysis)은(는) 소프트웨어 개발과 프로젝트 관리 등 1개 분야의 연습 문제 3개에 나와요.
결함이 동치 클래스의 경계에 모이기 쉽다는 점에서, 경계 바로 양쪽의 값(예를 들어 1~100을 받아들인다면 0, 1, 100, 101)을 테스트하는 블랙박스 테스트 기법. 비교 연산자의 혼동 같은 오류를 찾기 쉽다.
일본어 명칭: 境界値分析
경계값 분석(Boundary Value Analysis)은(는) 소프트웨어 개발과 프로젝트 관리 등 1개 분야의 연습 문제 3개에 나와요.
프로그램의 조건 분기는 '<'와 '<=', '>'와 '>='의 혼동이나 배열 첨자가 하나 어긋나는 오류(off-by-one) 등을 일으키기 쉬우며, 그 영향은 경계의 값에서만 나타납니다. 예를 들어 사양이 '85 ℃ 이상에서 경고'인데 if (t > 85)라고 쓰면, 84 ℃나 86 ℃에서는 사양대로 동작하고 85 ℃일 때만 경고가 나오지 않습니다. 동치 분할로 각 클래스의 한가운데 값만 시험해서는 이런 오류는 발견되지 않습니다.
정수 입력에서 1~100을 받아들이는 경우, 아래쪽 경계에서는 0과 1, 위쪽 경계에서는 100과 101을 고릅니다. 경계의 값과 그 양옆(0, 1, 2와 99, 100, 101)을 시험하는 더 세밀한 방법도 있습니다. 요금 구분처럼 구분이 여러 개인 경우는 구분이 바뀌는 모든 경계에서 양쪽의 값을 고릅니다. 입력이 소수인 경우는 사양에서 정한 분해능(0.1 단위 등)으로 이웃 값을 정합니다.
임베디드 소프트웨어에는 ADC 판독값의 임계값, 타이머 카운터가 최댓값에서 0으로 돌아가는 지점, 버퍼가 정확히 가득 차는 지점, 통신 패킷의 최대 길이 등 사양 수치의 경계가 많이 있습니다. 8비트 카운터라면 255에서 0으로의 넘침, 16비트 부호 있는 정수라면 32,767과 −32,768의 경계에서 계산 오류가 일어나기 쉬워집니다. 이러한 경계는 사양서의 수치와 자료형의 범위 양쪽에서 찾아냅니다.
대부분의 경우 조합해서 씁니다. 동치 분할로 입력을 클래스로 나누어 각 클래스의 대표를 시험하고, 경계값 분석으로 클래스 경계의 양쪽을 추가로 시험합니다. 동치 분할만으로는 테스트 수를 줄일 수 있지만, 경계의 오류를 놓치기 쉬워집니다.
사양에 쓰인 범위의 경계에서 값을 고르므로 블랙박스 테스트 기법입니다. 다만 구현 안의 배열 크기나 자료형의 범위 등 사양에 쓰여 있지 않은 경계도 있으므로, 소스 코드를 보고 추가하기도 합니다.
경계값 분석에서는 결함이 동치 클래스의 경계에 모이기 쉽다는 점에서, 경계 바로 양쪽의 값을 테스트합니다.
입장료를 나이(0 이상의 정수)로 정하는 프로그램이 있으며, 0~17세는 어린이 요금, 18~64세는 일반…블랙박스 테스트는 테스트 대상을 속이 보이지 않는 상자로 간주하고, 사양만으로 테스트 케이스를 만드는 방법으로, 동치 분할, 경계값 분석, 원인-결과 그래프, 결정 테이블 등의 기법이 있습니다.
블랙박스 테스트의 설명으로 적절한 것은?이처럼 경계 그 자체의 값을 포함하여 시험하는 것이 경계값 분석의 사고방식입니다.
사양은 '온도가 85 ℃ 이상이면 경고를 낸다'이지만, 펌웨어에는 잘못하여 'if (t > 85)'라고 쓰…동치 분할(Equivalence Partitioning) 블랙박스 테스트(Black-box Testing) 화이트박스 테스트(White-box Testing) 분기 커버리지(Branch Coverage) 스크럼(Scrum) 애자일 개발(Agile Development) 임계 경로법(CPM) 테스트 주도 개발(TDD) 폭포수 모델(Waterfall Model) 획득가치관리(EVM)