개발자 끄적끄적
명세 기반 테스트 본문
<명세 기반 테스트>
- 블랙 박스 테스트케이스 설계
- 프로그램 코드의 정보를 이용하지 않고 또는 이용할 수 없을 때 테스트 케이스를 설계하는 방법
- 코드 정보 이외의 명세 정보나 시스템 인터페이스 정보 등을 이용하여 테스트 케이스를 설계하는 방법
- 기능 누락 오류 검출
<동등 클래스 분할(ECP)>
- 테스트의 기본
- 프로그램의 입력/출력 영역을 몇 개의 동등 클래스(equivalent class)라 불리는 영역으로 분할하여 각 클래스로부터 대표 값을 선택하여 테스트 케이스로 이용
- 동등 클래스는 시스템에 의해 동일하게 처리되고 같은 출려고가 결과를 생산하는 입력 조건 또는 입력 데이터 값들의 모임
- 각 동등 클래스로부터 선정된 입력 값에 의하여 오류가 발견되면 클래스에 속한 다른 값들에 의해서도 동일한 오류가 발견
- 만약 각 동등 클래스로부터 선정된 입력 값에 의하여 오류가 발견되지 못한다면 클래스에 속한 다른 값들에 의해서도 오류가 발견 되지 않아야 한다
<동등분할 클래스 예제>
<동등 클래스 분할 규칙>
- 동등 분할 테스팅에서는 테스트 케이스를 설계하기 위하여 입력이나 출력 영역을 유효한 영역과 유효하지 않은 영역으로 분할
- 유효한 입력
- 테스트 아이템이 정상적으로 받아들여 처리하는 입력이다. 예를 들어 명세에 20에서 50까지 범위에 대해 정상적인 처리를 한다면 유효한 입력 영역은 20≤입력≤50이다.
- 유효하지 않은 입력
- 유효하지 않은 입력은 테스트 아이템이 정상적으로 처리하지 않은 입력이다. 테스트 아이템은 유효하지 않은 입력에 대해서는 적절한 오류 메시지를 출력할 수 있다. 예를 들어 명세에 20에서 50까지 범위에 대해 정상적인 처리를 한다면 유효하지 않은 입력 영역은 입력<20과 입력>50이다.
- 유효한 출력
- 명세에 기술된 출력이다. 예를 들어 성적 관리 시스템에서 점수에 따라 ‘A’, ‘B’, ‘C’, ‘D’, ‘F’ 및 유효하지 않은 점수에 대해 “다시 입력”이라는 메시지를 출력한다면 유효한 출력은 ‘A’, ‘B’, ‘C’, ‘D’, ‘F’ 및 “다시 입력”이다.
- 유효하지 않은 출력
- 명세에 기술되지 않은 출력이다. 예를 들어 성적 관리 시스템에서 점수에 따라 ‘A’, ‘B’, ‘C’, ‘D’, ‘F’ 및 유효하지 않은 점수에 대해 “다시 입력”이라는 메시지를 출력한다면 유효하지 않은 출력은 ‘A’, ‘B’, ‘C’, ‘D’, ‘F’ 및 “다시 입력”에 속하지 않는 어떠한 값도 유효하지 않은 출력이 될 수 있다. 예를 들어 ‘A+’나 ‘E’는 유효하지 않은 출력이다.
유효하지 않은 출력으로 테스트 케이스를 유도할 때 테스터의 경험이나 직관에 의존되는 경우가 많으므로 오류 추정 기법 등을 사용하여 테스트 케이스를 설계할 수 있다.
<ISO/IEC/IEEE 29119>
- One-to-One 동등 분할
- 각 입력/출력 분할로 부터 '하나의 테스트 케이스'를 유도
- 입력/출력 영역을 분할한 클래스들과 테스트 케이스간 일 대 일 관계를 명시적으로 보여준다.
- 최소화(minimized) 동등 분할
- 하나의 테스트 케이스와 하나의 분할된 클래스를 명시적으로 연결한 One-to-One 동등 분할과는 달리 이 방법은 하나의 테스트 케이스에 '가능한 많은 분할'들을 포함되도록 한다.
<One-to-One 동등 분할>
<최소 동등 분할 방식>
<경계 값 분석(Boundary Value Analysis)>
- 소프트웨어 오류는 보통 입력 영역의 경계에서 발생하는 경향이 있다.
- 경계 값 분석(테스트)는 입출력 영역의 경계 근처에 있는 값들을 이용하여 테스트 케이스를 설계하는 테스팅 방법이다.
- 경계 값 테스트는 동등 분할과 마찬가지로 입력/출력 영역을 여러 클래스들로 분할한다. 그러나 동등 분할이 입력이나 출력을 여러 클래스들로 분할하고 각 클래스로부터 임의의 값을 선정하는 것과는 달리 경계 값 분석은 클래스의 경계와 경계 근처에 있는 값들을 사용하여 테스트 케이스를 설계한다.
<도메인 에러>
- 오류는 도메인 에러( domain error)와 계산 에러(computation error)로 구분할 수 있다.
- 도메인 에러는 입력이 실행해야 하는 경로가 아닌 다른 잘못된 경로를 실행
- 계산 에러는 올바른 경로을 실행하지만 질못된 계산(로직)을 실행
- BVA를 포함한 도메인 테스트는 도메인 에러를 검출하는데 효과적
<ISO/IEC/IEEE 29119>
- 2-value BVA: 는 경계 값과 경계 외부에 있는 경계와 가장 가까운 값을 선정
- 3-value BVA: 경계 값과 경계 내부와 외부에서 경계와 가장 가까운 값을 선정
-테스트 케이스를 구성할 때 동등 분할 테스팅과 같이 식별된
경계 값에 대해 하나의 테스트 케이스를 구성하는 일대일 방식이나 하나의 테스트 케이스에 여러 개의 경계 값을 포함하는 최소화 방식을 사용할 수 있다.
<테스트 케이스 구성 요소>
- ID, 테스트 케이스명, 사전 조건, 테스트 수행절차, 기대결과, 결과, 추적성, 중요도, 비고
'소프트웨어공학' 카테고리의 다른 글
조합 테스팅 (0) | 2024.05.29 |
---|---|
클래스 다이어그램 정리 (0) | 2024.05.20 |
소프트웨어 테스팅 (0) | 2024.05.13 |