유스케이스 테스트
태그 :
- 개념
- - 시스템이 실제 사용되는 방식에 기반하여 “프로세스 흐름”을 기술하는 유즈케이스나 비즈니스 시나리오를 기반으로 테스트를 명세화하는 기법 - Usecase를 통해 도출되는 비즈니스 시나리오를 기반으로 테스트를 명세화 하고, Usecase를 사용하는 Actor사이의 상호작용의 결함을 찾는 테스트 기법 - Usecase를 통해 도출되는 비즈니스 시나리오를 - 기반으로 테스트를 명세화하고, Usecase를 사용하는 - Actor사이의 상호작용의 결함을 찾는 테스트 기법
I. 테스트 설계기법의 하나인, 유즈케이스 테스팅의 필요
가. 유즈케이스 테스팅(Use-case Testing)의 개념
- 시스템이 실제 사용되는 방식에 기반하여 “프로세스 흐름”을 기술하는 유즈케이스나 비즈니스 시나리오를 기반으로 테스트를 명세화하는 기법
- Usecase를 통해 도출되는 비즈니스 시나리오를 기반으로 테스트를 명세화 하고, Usecase를 사용하는 Actor사이의 상호작용의 결함을 찾는 테스트 기법
- Usecase를 통해 도출되는 비즈니스 시나리오를
- 기반으로 테스트를 명세화하고, Usecase를 사용하는
- Actor사이의 상호작용의 결함을 찾는 테스트 기법
나. 유즈케이스 테스팅의 특징
- 유즈케이스에 기반하여 생성된 테스트 케이스는 시스템이 실제 사용하는 프로세스 흐름에 결함을 발견하는데 유용함
- 고객이나 유저 그룹을 참여시키는 인수 테스트를 설계할 때 매우 유용함
- 통합 테스트 단계에서 서로 다른 컴포넌트 사이의 상호작용과 간섭으로 발생하는 통합 결함을 찾는데 도움이 됨
II. Usecase 이벤트 흐름종류과 테스트 유형
가. 흐름종류
기본흐름 |
-유즈케이스가 실행되면 반드시 발생하는 기본적 처리 흐름 |
대체흐름 |
-조건과 상황에 따라 추가적으로 혹은 달리 실행되는 처리 흐름 |
나. 흐름유형
Usecase 내부테스팅 |
방법1) Description에서 흐름과 시나리오만 고려하여 케이스 도출 방법2) Description을 문장별로 분석하여 케이스 도출 |
Usecase간 상호작용 |
-Usecase간 수행순서를 고려하여, Activity Diagram을 근간으로 테스트 케이스 도출 |
III. 유스케이스 커버리지 종류
단 계 |
구 분 |
설 명 |
컴포넌트 (단위) 레벨 |
시나리오별 테스트 케이스 |
|
문장별 테스트 케이스 |
|
|
시스템 레벨 |
정의 |
|
특징 |
|
|
종류 |
(활동기반 ⊂ 전이기반 ⊂ 경로기반) |
- 유즈케이스가 얼마나 쉽고 정확하게 작성되어있느냐에 따라 테스트 케이스의 완성도와 정확도가 달라지며 보장성 확보에 영향을 줄 수 있음.
IV. 흐름과 시나리오를 고려한 케이스 도출 사례
case |
시나리오 |
암호 |
출금금액 |
계좌잔액 |
예상결과 |
TC0 |
S0 |
V |
금액< 잔액 |
정상 |
|
TC1 |
S1 |
I |
N/A |
N/A |
암호 재시도 메세지 |
TC2 |
S2 |
V |
금액>잔액 |
잔액 부족 메세지 |
- I : Invalid, V:Valid
문장별 분석 테스트케이스 도출 절차
1. 어떤 패스가 테스트 될지 고려하여 테스트 시나리오 구성
2. Usecase 상세에서 테스트에 필수적인 위치 선택
3. Usecase 상세 내용을 입력값, 출력값, 상황처리 등으로
분류하여 테스팅에 관여하는 위치를 선택
4. 각각의 위치에 ID부여
5. 각각의 위치에 가능한 값을 결정
V. 컴포넌트 레벨과 시스템레벨의 유즈케이스 테스팅 비교
구분 |
컴포넌트레벨 |
시스템레벨 |
흐름의 수 |
기본흐름에 발생가능한 대체흐름수 |
각 컴포넌트가 발생하는 대체흐름의 총합과 상호관계 곱 |
분석가능범위 |
컴포넌트가 발생하는 흐름 |
시스템 전체의 파급효과 |
분석의 한계 |
타객체로의 영향을 판단하기 힘듦 |
재귀적인 반복이 발생할 경우 영향이 기하급수적으로 증가하여 분석한계 발생 |
분석방법 |
독립 컴포넌트 기반작성 |
각 컴포넌트의 컴포넌트레벨 유즈케이스 테스팅 기반작성 |
VI. 출금 유스케이스의 테스트 케이스 예시자료