제목: 조합식 테스트 설계(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개 테스트케이스)의 경우 보다 효율적이고 효과적임
'동적테스트활동별 > 테스트설계' 카테고리의 다른 글
상태 전이 분석에 의한 테스트케이스 도출 예 (0) | 2022.02.28 |
---|---|
동등 분할 및 경계값 분석에 의한 테스트케이스 도출 예 (1) | 2022.02.21 |
문서요약 – 25년 간의 테스팅 기법 실험에 대한 리뷰 by JURISTO (0) | 2022.01.10 |
테스트 설계 기법 개요 (0) | 2019.12.09 |
문서요약 - 유스케이스로부터 테스트케이스 개발하기 by Collard (0) | 2019.12.02 |