명세기반 테스트 기법

유동우·2023년 4월 7일
0

소프트웨어 공학

목록 보기
3/6
post-thumbnail

등가분할 (동등분할)

개요

  • 입력/출력값 영역을 유한개의 독립적인 집합으로 나누어서 , 각 등가집합의 원소 중 대표값 하나를 선택하여 테스트케이스를 선정하는 기법

  • 같은 종류의 입력에서 어떤 대표값을 사용하더라도 같은 결과가 나올거라는 기대값

  • 유효한 입력데이터 OR 유효하지 않는 입력데이터 (입력되면 안되는 값)

Test Case in Equivalence Partitioning

  • 등가집합에서 대표하는 입력값들을 적어도 한 개씩은 사용하는 기법

  • 경험과 필요에따라 하나 이상의 값을 선정하여 TC 작성, 결과적으로 보장성은 동일

  • 명세에 있는 입/출력 값을 사용 -> 명세기반테스트

Equivalence Partitioning 적용 범위

  • 출력값

  • 내부값

  • 시간 관련값

  • 통합테스팅에서 다루는 모듈간 인터페이스 파라미터

예시

  • 주차보조시스템

  • 배터리 전압 확인

  • 편의점 전산화 사례

  • 항공사 회원 마일리지

Test 강도

약한 동등분할 테스팅 VS 강한 동등분할 테스팅

약한 동등분할 테스팅

  • 등가집합(equivalence class)에서 각각 하나의 대표값을 이용하여 테스트케이스를 구성

강한 동등분할 테스팅

  • 각 영역(domain)의 등가집합들 이의 조합으로 나타낼 수 있는 모든 경우의수

경계값 분석

개요

  • 경계값 처리시 오류발생 가능성이 높기때문에 경계의 주변값들을 테스트 데이터로 선정하는 기법

  • 경계값: 해당 분할영역의 최대값과 최소값

    	  유효경계값: 유효한 분할영역의 경계값
    비유효경계값: 유효하지 않은 분할영역의 경계값
  • 결함 발견율이 높고, 적용하기 쉽다 => 가장많이 사용되는 테스트 기법

Test Case in Boundary Value Analysis

  • Equivalence Class를 찾은 후 대표값을 선택할 때 경계값과 그 전후의 값들을 사용하는 방법이다.
  • Input/Output Value 모두 적용하여 TC 작성

Boundary Value Analysis의 한계점

  • 조합을 테스트하기에는 적합하지 않다

  • 입력 범위를 동등 분할하여 제한하더라도, 입력값 조합의 수가 테스트 가능한 수를 넘어서는 경우가 많다

  • 입력조합이 상호간 독립적이라는 가정에 적합하다

  • 출력이 입력조건이나 변수들 사이의 관계에 따라 달라지는 경우, 입력조건을 동등분 할 하는 것이 매우 어려울 수 있다.

예시

  • 주차보조 시스템

  • 배터리 전압 확인


조합 테스팅 (패어와이즈)

개요

  • 대부분의 결함이 2개의 요소의 상호작용에 기인한다는것 -> 2개 요소의 모든 조합을 찾아 테스팅

  • 하나의 파라미터의 각 값들이 모든 다른 파라미터의 각 값들과 최소 한 번씩 조합이 되는 집합

Pair-wise 원리 이해

  • ex) 재생, 볼륨, 이퀄라이저 세가지 요소에 대해 두 요소의 개별조합만을 고려한다

=> 세 가지 요소들의 모든 값들이 "한쌍" 씩 모든조합을 이룸. => 페어(Pair) 와이즈.
=> 조합의 수를 50%까지 감소 (2^3=8 => 4)

종류

  • Allparis Algorithms

  • Beyond Pairwise Testing

  • Beyoun Pariwise Testion - Combinatorial Testing

한계

  • 완전한 테스팅의 불가

결정 테이블 테스팅

개요

  • 테스트를 수행하기 위해 필요한 입력의 조합을 얻어내기 위한 목적

  • 원인과 결과를 분석함으로써 테스트케이스를 조합해 내는 방법
    => Cause - Effect Diagram/Graphing

  • Decision Table Testing = Cause/Effect Graphing = Cause Effect Analysis

장점

  • 요구사항같은 테스트 베이시스의 문제점을 드러내게 하는 효과적인 테스트케이스 생성 가능

=> 테스트 베이시스의 불완전성과 모호함 지적 가능

단점

  • 작성에 많은 노력과 시간이 소요될 수 있다 (결정테이블 작성 후 개발팀의 검토가 필요시)

  • 복잡한 시스템을 표현하기 어려울 수 있다.

Cause = inputs
Effect = intermediate results, messages, outputs

Cause, Effect 는 Boolean 형태로 기술

상태 전이 테스팅

개요

  • 이벤트, 액션, 활동, 상태, 상태전이 사이의 관계를 검증하는 테스팅 기법

  • 모든 상태/이벤트 조합을 커버

  • 시스템/소프트웨어 상태기반 행위가 명세된 내용과 일치함을 검증

  • 상태기반 시스템의 결함은 상태, 상태전이, 가드, 이벤트 결함 등으로 분류

  • 결함은 “구현이 잘못된 경우” 와 명세가 잘못된 경우 존재

상태전이 테스팅이 발견하는 결함의 종류

  • 모델상의 결함
  • 구현상의 결함

A simple State Transition Diagram

테스팅의 심도(Depth)

  • 연속된 Transition들의 가운데 끼어있는 상태를 Switch
  • Switch Level은 중간에 거치는 상태의 개수

전이 Tree -1 Switch

예제

  • 차량 도난 경보 장치

유즈케이스 테스팅

개요

  • 유즈케이스테스팅은 유스케이스나 비즈니스시나리오를 기반으로 유즈케이스에서 테스트 케이스를 도출하는 테스트설계기법

  • 주류 시나리오 또는 기본흐름과 대체흐름으로 구성

  • 각각의 유스케이스는 자세하게 표현하기위해 유스케이스 상세를 가짐

유스케이스 명세서

  • 시스템이 제공하는 기본단위기능, 즉, 유스케이스와 액터간 상호작용으 정의

  • 개별적인 유즈케이스에 대한 단위테스팅

유스케이스 Test Case 추출을 위한 요구사항 시나리오 분석(1)

유스케이스 Test Case 추출을 위한 요구사항 시나리오 분석 (2)

예제

  • "자동주차" 기능

    	  - Basic Flow
    
    - Alternative Flow
    
    - 요구사항 시나리오 정의
  • "현금 출금" 기능

    	  - Basic Flow
    
    - Alternative Flow (1)
    
    - Alternative Flow (2)
    
    - Alternative Flow (3)
    
    - 요구사항 시나리오 정의
profile
효율적이고 꾸준하게

0개의 댓글