경계-값 분석
Boundary-value analysis경계-값 분석은 어떤 범위의 경계 값의 대표자를 포함하도록 시험을 설계한 소프트웨어 시험 기법이다.그 생각은 경계선에서 나온 것이다.시스템을 테스트할 테스트 벡터 세트가 있다는 점을 고려할 때 위상은 해당 세트에 정의될 수 있다.동등성 분할 이론에 의해 정의된 것과 동일한 동등성 등급에 속하는 입력 자료는 기초를 구성할 것이다.기본 집합이 이웃이라는 점을 감안할 때, 그들 사이에는 경계선이 존재하게 될 것이다.경계 양쪽에 있는 시험 벡터를 경계 값이라고 한다.실제로 이것은 시험 벡터를 정렬할 수 있고 개별 매개변수가 어떤 종류의 순서(부분 순서 또는 전체 순서)를 따를 것을 요구한다.
형식 정의
공식적으로 경계 값은 다음과 같이 정의될 수 있다.
- 테스트 벡터 세트를 ,..., .
- 그들 위에 ≤으로 정의된 순서 관계가 있다고 가정해 보자.
- 등가 등급이 두 개로 하자.
- 시험 벡터 ∈과 ∈ 을 가정해 보자.
- If or then the classes are in the same neighborhood and the values are boundary values.
보다 쉬운 영어로 동등성 파티션의 최소 및 최대 에지 값을 시험한다.값은 소프트웨어 구성요소의 입력 또는 출력 범위가 될 수 있으며 내부 구현이 될 수도 있다.이러한 경계는 소프트웨어 결함을 초래하는 오류의 공통적인 위치이기 때문에 시험 사례에서 자주 사용된다.
적용
소프트웨어 구성요소에 대한 예상 입력 및 출력 값은 구성요소 규격에서 추출해야 한다.그런 다음 값은 식별 가능한 경계를 가진 집합으로 그룹화된다.각 세트 또는 파티션은 동일한 방식으로 구성 요소에 의해 처리될 것으로 예상되는 값을 포함한다.시험 데이터 범위의 분할은 동등성 분할 시험 사례 설계 기법에 설명되어 있다.테스트 케이스를 설계할 때는 유효 파티션과 유효 파티션 모두를 고려하는 것이 중요하다.
시연은 자바어로 표기된 함수를 이용해 할 수 있다.
계급 세이프 { 정태의 인트로 덧셈을(인트로 a, 인트로 b) { 인트로 c = a + b ; 만일 (a >= 0 && b >= 0 && c < 0) { 시스템.잘못을 저지르다.인쇄하다("과잉!"); } 만일 (a < 0 && b < 0 && c >= 0) { 시스템.잘못을 저지르다.인쇄하다("언더플로우!"); } 돌아오다 c; } } 코드에 근거하여 [a,b]의 입력 벡터를 분할한다.우리가 다루어야 할 블록은 오버플로 문장과 언더플로 문이며 이 두 가지 모두 아니다.그것은 코드 검토 자체에서 3개의 동등한 등급으로 증가한다.
정수의 크기가 고정되어 있기 때문에 다음과 같은 점에 유의한다.
- MIN_VALUE ≤ x + y ≤ MAX_VALUE
입력 매개 변수 a와 b 모두 정수이므로 총 순서가 정수에 존재한다는 점에 주목한다.동일도를 계산할 때:-
- x + y = MAX_VALUE
- MIN_VALUE = x + y
우리는 (a,b)의 쌍이 유효한 조합이고, 그것들에 대해 어떠한 과소 흐름이나 오버플로도 일어나지 않는 것을 포함하여, 경계에 있는 값들을 되찾는다.
반면에:-
- x + y = MAX_VALUE + 1
(a,b) 쌍을 제공하는데, 이는 (a,b) 쌍에 유효하지 않은 조합으로, 오버플로가 발생할 수 있다.같은 방법으로:-
- x + y = MIN_VALUE - 1
유효하지 않은 조합인 (a,b) 쌍을 부여하면 언더플로우가 발생할 수 있다.
경계 값(오버플로우 케이스에 대해서만 표시)은 오른쪽 측면 그림에서 주황색 선으로 표시되고 있다.
다른 예로, 입력 값이 정수로 표현된 연도 월인 경우 입력 매개 변수 '월'은 다음과 같은 파티션을 가질 수 있다.
... -2 -1 0 1 .............. 12 13 14 15 ..... -------------------------------------------------------------------------------------------- 유효하지 않은 파티션 1 유효 파티션 유효 파티션 2
두 칸막이 사이의 경계는 응용 프로그램의 동작이 바뀌는 곳이며 실제 숫자 자체가 아니다.경계 값은 경계에 있는 최소(또는 최대) 값이다.숫자 0은 첫 번째 칸막이의 최대 숫자, 숫자 1은 두 번째 칸막이의 최소값, 둘 다 경계값이다.각 경계의 어느 한 쪽에나 떨어질 입력 또는 출력을 생성하기 위해 시험 케이스를 생성해야 하며, 이 경우 경계당 2개의 케이스가 발생한다.경계의 각 면에 있는 시험 케이스는 시험 대상 구성 요소에 대해 가능한 최소 증분 내에 있어야 하며, 정수의 경우 이는 1이지만, 입력이 소수점 2자리일 경우 0.01이 된다.위의 예에서 경계 값은 0.1과 12,13이며 각각을 시험해야 한다.
경계 값 분석에는 잘못된 파티션이 필요하지 않다.온도가 10도 이하일 경우 히터가 켜져 있는 경우를 예로 들어보자.테스트할 두 개의 파티션(온도10, 온도>10)과 두 개의 경계 값(온도=10, 온도=11)이 있다.
경계값이 유효하지 않은 칸막이에 포함되는 경우, 시험 케이스는 소프트웨어 구성요소가 통제된 방식으로 값을 처리하도록 설계된다.경계값 분석은 시험 주기 전체에 걸쳐 사용될 수 있으며 모든 시험 단계에서 동일하게 적용된다.
참조
- 테스트 표준 작업자 웹 사이트.