[소프트웨어공학] 명세기반 테스트 케이스 설계

수진·2023년 6월 11일
0

소프트웨어공학

목록 보기
18/20

1. 명세 기반 테스트

  • 블랙 박스 테스트 케이스 설계
  • 프로그램 코드의 정보를 이용하지 않고 또는 이용할 수 없을 때 테스트 케이스를 설계하는 방법
  • 코드 정보 이외의 명세 정보나 시스템 인터페이스 정보 등을 이용하여 테스트 케이스를 설계하는 방법
  • 기능 누락 오류 검출
  • Equivalence Partitioning(동등 분할)과 Bounadary Value Analysis(경계값 분석)

2. 동등 클래스 분할(ECP)

  • 테스트의 기본
  • 프로그램의 입력/출력 영역을 몇 개의 동등 클래스(equivalent class)라 불리는 영역으로 분할하여 각 클래스로부터 대표 값을 선택하여 테스트 케이스로 이용
  • 동등 클래스는 시스템에 의해 동일하게 처리되고 같은 출력 결과를 생산하는 입력 조건 또는 입력 데이터 값들의 모임
    - 각 동등 클래스로부터 선정된 입력 값에 의하여 오류가 발견되면 클래스에 속한 다른 값들에 의해서도 동일한 오류가 발견
    - 만약 각 동등 클래스로부터 선정된 입력 값에 의하여 오류가 발견되지 못한다면 클래스에 속한 다른 값들에 의해서도 오류가 발견되지 않아야 함

동등 클래스 분할 규칙

동등 분할 테스팅에서는 테스트 케이스를 설계하기 위하여 입력이나 출력 영역을 유효한 영역과 유효하지 않은 영역으로 분할

  1. 유효한 입력
    테스트 아이템이 정상적으로 받아들여 처리하는 입력이다. 예를 들어 명세에 20에서 50까지 범위에 대해 정상적인 처리를 한다면 유효한 입력 영역은 20<=입력<=50이다.

  2. 유효하지 않은 입력
    유효하지 않은 입력은 테스트 아이템이 정상적으로 처리하지 않은 입력이다 .테스트 아이템은 유효하지 않은 입력에 대해서는 적절한 오류 메시지를 출력할 수 있다. 예를 들어 명세에 20에서 50까지 범위에 대해 정상적인 처리를 한다면 유효하지 않은 입력 영역은 입력>20과 입력<50이다.

  3. 유효한 출력
    명세에 기술된 출력이다. 예를 들어 성적 관리 시스템에서 점수에서 따라 'A', 'B', 'C', 'D', 'F' 및 유효하지 않은 점수에 대해 "다시 입력"이라는 메시지를 출력한다면 유효한 출력은 'A', 'B', 'C', 'D', 'F', "다시 입력"이다.

  4. 유효하지 않은 출력

  • 명세에 기술되지 않은 출력이다. 예를 들어 성적 관리 시스템에서 점수에서 따라 'A', 'B', 'C', 'D', 'F' 및 유효하지 않은 점수에 대해 "다시 입력"이라는 메시지를 출력한다면 유효하지 않은 출력은 'A', 'B', 'C', 'D', 'F', "다시 입력"에 속하지 않는 어떠한 값도 유효하지 않은 출력이 될 수 있다. 예를 들어 'A+'나 'E'는 유효하지 않은 출력이다.
  • 유효하지 않은 출력으로 테스트 케이스를 유도할 때 테스터의 경험이나 직관에 의존되는 경우가 많으므로 오류 추정 기법 등을 사용하여 테스트 케이스를 설계할 수 있다.

ISO/IEC/IEEE 29119

One-to-One 동등 분할

  • 각 입력/출력 분할로부터 하나의 테스트 케이스를 유도
  • 입력/출력 영역을 분할한 클래스들과 테스트 케이스 간 일대일 관계를 명시적으로 보여줌
  • 분할된 영역에 대해서 하나의 테스트 케이스를 만드므로 분할된 영역의 개수만큼 테스트 케이스가 유도됨

최소화 동등 분할

  • 하나의 테스트 케이스와 하나의 분할된 클래스를 명시적으로 연결한 One-to-One 동등 분할과는 달리 이 방법은 하나의 테스트 케이스에 가능한 많은 분할들을 포함되도록 함
  • 테스트 케이스 하나에 여러 개의 분할된 영역을 다 채우도록 함
  • 테스트 케이스의 수가 줄어듬
  • 입력 모두가 유효하지 않은 입력 값들을 가진 테스트 케이스는 가급적 피해야 함
    -> 오류가 발생할 수 있는 경우가 마스킹되어 검출하지 못하게 입력 하나만 유효하지 않은 값, 나머지는 유효한 값으로 구성해야 함

3. 경계 값 분석(Boundary Value Analysis)

  • 소프트웨어 오류는 보통 입출력 영역의 경계에서 발생하는 경향이 있다.
  • 경계 값 분석(테스트)는 입출력 영역의 경계 근처에 있는 값들을 이용하여 테스트 케이스를 설계하는 테스팅 방법
  • 동등 분할과 마찬가지로 입/출력 영역을 여러 클래스들로 분할한다. 그러나 동등 분할이 입력이나 출력을 여러 클래스들로 분할하고 각 클래스로부터 임의의 값을 선정하는 것과는 달리 경계값 분석은 클래스의 경계와 경계 근처에 있는 값들을 사용하여 테스트 케이스를 설계함

도메인 에러

  • 오류는 도메인 에러(domain error)와 계산 에러(computation error)로 구분할 수 있음
  • 도메인 에러는 입력이 실행해야 하는 경로가 아닌 다른 잘못된 경로를 실행
  • 계산 에러는 올바른 경로를 실행하지만 잘못된 계산(로직)을 실행
  • BVA를 포함한 도메인 테스트는 도메인 에러를 검출하는 데 효과적

ISO/IEC/IEEE 29119

  • 세 기관이 만든 국제 소프트웨어 테스팅 표준 기준
  • 테스트 케이스를 구성할 때 동등 분할 테스팅과 같이 식별된 경계 값에 대해 하나의 테스트 케이스를 구성하는 일대일 방식이나 하나의 테스트 케이스에 여러 개의 경계 값을 포함하는 최소화 방식을 사용할 수 있음

- 2-value BVA

경계 값과 경계 외부에 있는 경계와 가장 가까운 값을 선정

- 3-value BVA

경계 값과 경계 내부와 경계 외부에서 경계와 가장 가까운 값을 선정

0개의 댓글