명세기반 테스트(Specification-based)

개념
주어진 명세를 빠뜨리지 않고 테스트 케이스화 (일반적으로 모델의 형태)

1. 정의 :주어진 명세를 빠뜨리지 않고 테스트 케이스화 (일반적으로 모델의 형태)

 

2. 시험기법의 분류

  • 시험자의 직관 및 경험 기반 (임의, 탐험)
  • (Based on Tester's Intuition and Experience)
  • 명세 기반(Specification-based)
  • 코드 기반(Code-based)
  • 결함 기반(Fault-based) (오류, 변이)
  • 사용 기반(Usage-based)
  • 응용 프로그램의 본성 기반(Based on Nature of Application)
  • 기법 선택 및 조합(Selecting and Combining Techniques)
  • 기능적 테스트
  • Black-Box Technique

 

  3. 명세기반 테스트기법의 특징

  1. 누락 기능 또는 오류 결함의 식별
  2. 인터페이스 및 자료구조 결함 측정
  3. 성능 및 시작/종결 오류 식별

 

4. 기법

 

종류

설명

동등 클래스 분할, ECP (Equivalence Class Partitioning)

-테스트 데이터를 특성에 따라 분류하고, 각 그룹별 대표 값을 이용하여 테스트케이스를 설계(동등분할)하는 기법

-시스템과 도메인에 대한 충분한 이해 필요

-예) 입력허용 : 유니코드 대분자 A~Z, 최소/최대 문자열:1~25 이면 모든조합 테스트케이스à26! x 25!

이를 문자열 ‘BCD’에 대한 테스트는 ‘WXY’에 대한 테스트와 비슷함.

- 글팬포드 마이어스의 4가지 탐색적인 접근방법 1)범위, 2)그룹, 3)특이 값, 4)특정 값

경계값 테스팅 (Boundary Value Testing)

-동등 분할 기법의 확장으로써 그룹의 경계값에서 오류발생이 높다는 것을 이용한 테스트케이스 설계기법

-Boolean variables에는 적합하지 않음

-예1) input domain D = { integer n | 0 < n < 100 } 인 프로그램의 경우 테스트케이스는 T = { 1, 99, 50, 0, 100 }

case tn = 4n + 1

Cause-Effect Graphing Testing

-원인이 되는 입력값과 결과가 되는 출력 값을 논리적 그래프로 표현하여 테스트케이스 설계

-케이스 설계 절차 : 요구사항 식별èCause/Effect 식별 및 식별자 부여 èBoolean graph작성 èDecision Table 변환

Control Flow Testing

-명세서와 같은 요구사항 문서로부터 동적인 제어 흐름 그래프를 생성하고, 생성한 모델로부터 Test Path를 선택하여 테스트

-제어 흐름이 아래와 같은 경우, Test Path는 {1,2,3,4},{1,2,4}

 

CRUD Testing

-어플리케이션 개발 과정의 분석 단계에서 데이터 모델과 프로세스 모델의 상관 관계를 정의하는 CRUD Matrix를 정의하고 테스트

-Create, Read 또는 CRUD가 전혀 표현되지 않는 데이터를 식별하고 테스트

Decision Table Testing

-주요한 의사결정 요소들을 표로 만들고, 요소들간의 결합에 의한 데스트케이스 설계

-각 의사결정 요소들의 조합을 통해 다양한 형태의 테스트 시나리오를 도출

유한상태 기계 기반(Finite-state machine-based)

프로그램을 유한 상태 기계로 모델링하여, 이에 대한 상태와 변이를 다루기 위해 테스트가 선택됨

정형 명세 기반 시험(Testing from formal specifications)

기능 테스트케이스를 자동 도출 가능케 하고, 시험 결과를 검사(check)하기 위한 참조 출력/오라클을 제공. 모델 기반 또는 대수적(algebraic) 명세로부터 테스트케이스를 추출하기 위한 방법이 따로 존재함.

유즈케이스 테스팅

(Use case testing)

컴포넌트/단위 레벨 유즈케이스 테스팅

시스템 레벨 유즈케이스 테스팅

페어와이즈 조합 테스팅(Pairwise testing)

 

직교 배열 테스팅(Orthogonal array testing)

페어와이즈 조합테스팅과 유사한 테스팅 기법이로, 차이점은 직교 배열의 각 행과 열이 페어와이즈 함

 

III. 테스트 유형에 따른 테스트 기법 매핑

유형

정적기법

동적기법

관련산출물

명세기반

구조기반

인수테스트

적용

적용

 

요구사항 명세

시스템테스트

적용

적용

 

요구사항 명세

통합테스트

 

적용

 

설계 명세

단위테스트

 

적용

적용

설계명세, 코드

 

댓글