반응형

제목: 조합식 테스트 설계(Combinatorial Test Design)

저자: Juergen Heymann

 

문서유형: 파워포인트 프리젠테이션 슬라이드(25페이지), 2013

 

SAP 프로젝트 애플리케이션을 위한 테스트 설계 방법을 제안한 자료. 패러미터 조합에 따른 테스트케이스 수 폭증 문제에 초점을 맞추고 기존 테스팅 기법(동등 분할, 경계값 분석, 의사결정표, 올페어즈)들을 통합 활용하여 테스트케이스를 설계함


 

테스팅의 문제

  • SAP이 매우 복잡하고(very complex) 다양하게 구성가능한(highly configurable) 소프트웨어를 생산함
  • 개발자는 모든 가능한 조합(combinations)을 테스트하는게 불가능하지만, 고객은 이 모든 가능한 조합을 사용함

 

조합식 테스트 설계

  • 소프트웨어 기능을 외부에서 바라보는 블랙 박스 테스팅 방법
  • 모든 조합(all combinations)’ 문제를 적절히 다루기 위하여 여러 테스트 기법들을 함께 사용함

 

단계 1: 유스케이스/테스트케이스 찾기

  • 테스트할 특정 범위의 기능이 있다고 가정했을 때, 여기서 뭘 할 수 있는지(, 특정 동작/기능을 야기하는 사용자 액션)를 묻는다.
  • 각 액션(유스케이스)가 테스트케이스가 된다.

 

단계 2: 테스트/액션의 패러미터 찾기

  • 더미 데이터와 테스트 모델 유관 패러미터를 구별한다.
    -
    더미 데이터(Dummy Data): 단순히 테스트를 실행시키기 위해 필요한 데이터로 테스팅에서 다양하게 바꿔줄 필요가 없음 예, 고객 주소
    -
    테스트 모델 유관 패러미터(Test Model Relevant Parameters): 테스트 대상 코드/기능의 행동에 영향을 미치는 패러미터
  • 테스트 유관 패러미터를 아래 세 가지 유형의 소스에서 찾을 수 있음
    -
    직접적인 입력(Direct Input): , API의 패러미터, 스크린 상의 패러미터
    -
    소프트웨어 행동에 영향을 미치는 애플리케이션 구성(Application Configuration)
    -
    트랜잭션 데이터, 엔터티/오브젝트 데이터

 

패러미터 지향 테스트 설계

  • 적은 노력으로 더 많은 결함을 발견할 수 있도록 영리한 방식으로 패러미터 공간을 커버하는데 아래 그림처럼 4개의 테스트 설계 기법을 활용함
  • 이 기법들이 기능적 정확성(functional correctness)’에 중점을 둠
  • 동등 분할과 경계값 분석 기법은 개별 패러미터에 적용하기에 적합하고, 의사결정표와 올페어즈 테스팅 기법은 다수 패러미터(패러미터의 조합)에 적용하기 적합함

 

1. 동등 클래스 식별하기(Identify equivalence classes)

  • 보험 시스템에서 아래 그림처럼 신청자의 나이를 입력하는 Age 필드가 있음
  • 18~30, 31~50, 51~65의 연령대가 존재하며, 이 연령대에 따라서 보험 계약 조건이 달라짐. 이 주어진 연령대를 벗어난 사람들은 보험에 가입할 수 없음

 

위 예에 동등 분할을 적용하면 아래와 같은 5개의 동등 클래스와 5개의 테스트 값(3개의 유효 값과 2개의 무효 값)을 도출 할 수 있다.

동등 클래스: “<18” , “18~30”, “31~50”, “51~65”, “>65”

유효(valid) 테스트 값: 20, 40, 55

 

무효(invalid) 테스트 값: 16, 66

 

2. 경계값 분석하기(Analyze boundary values)

  • 프로그래밍 에러가 값 도메인의 경계(, 허용되는 값 범위의 가장자리) 또는 구현 로직의 경계(, 테이블의 첫번째나 마지막 항목, 루프의 0번째 런)에서 자주 발생함
  • 동등 분할의 보험 시스템 예에서 식별된 동등 클래스에 경계값 분석 기법을 적용하면 아래와 같은 테스트 값들이 도출됨

 

동등 클래스: “<18” , “18~30”, “31~50”, “51~65”, “>65”

유효 값: 18, 30, 31, 50, 51, 65

 

무효 값: -1, 17, 66

 

3. 의사결정 테이블(Decision Tables)

당좌 예금 계좌 열기를 체크하는 프로그램의 명세가 아래와 같은 경우,

성공적으로 계좌를 열기 위해서는 신분증을 통해 신청자의 신원이 증명되어야 한다. 미성년자는 부모의 동의가 있어야 한다. 계좌를 열 때 당좌대월 한도(an overdraft limit)가 승인되며, 이것의 사전조건으로는 신용 체크가 성공적이어야 하고 신청자가 법적으로 성인이어야 한다. 

 

위 명세에서 조건과 액션을 식별하여 의사결정 테이블로 작성한 예가 아래와 같다(미성년자는 계좌는 열 수 있어도 초과 인출은 불가능).

    Rule1 Rule2 Rule3 Rule4 Rule5
조건 신분증이 있는가 N Y Y Y Y
신청자가 법적으로 성인인가 - N N Y Y
부모(보호자)의 동의가 있는가 - N Y - -
신용 체크가 성공적인가 - - - Y N
액션 계좌를 연다     X X X
당좌대월(초과 인출) 한도를 승인한다       X  
신청을 거절한다 X X      

 

 

4. 올페어즈 테스팅(All-pairs Testing)

  • 대부분의(70~90%) 결함이 두 개 패러미터를 적절하게 조합함으로써 발견되어짐
  • 올페어즈 테스팅은 모든 쌍 조합(all pair combinations)을 커버하는 최소 테스트 케이스 집합을 생성함
  • 이진 값을 가지는 3개 패러미터(P1, P2, P3)를 테스트 하는 경우, 아래 그림처럼 4개의 테스트케이스 만으로 올페어즈 테스팅을 충족시킬 수 있으므로 모든 조합(23=8개 테스트케이스)의 경우 보다 효율적이고 효과적임

 

 

 

반응형

+ Recent posts