유스케이스 테스트

개념
- 시스템이 실제 사용되는 방식에 기반하여 “프로세스 흐름”을 기술하는 유즈케이스나 비즈니스 시나리오를 기반으로 테스트를 명세화하는 기법 - 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. 유스케이스 커버리지 종류

단 계

구 분

설 명

컴포넌트

(단위) 레벨

시나리오별 테스트 케이스

  • 유즈케이스 상세(Use-case Description)에서 흐름과 시나리오만을 고려하여 테스트 케이스를 도출하는 방법
  • 유즈케이스 상세에서 기본흐름과 대체 흐름 각각을 시나리오로 보고 테스트 케이스로 매핑

문장별 테스트 케이스

  • 유즈케이스 상세를 문장별로 분석하여 테스트 케이스를 도출하는 방법

(1) 어떤 흐름을 테스트할지 고려하여 테스트 시나리오 구성

(2) 유즈케이스 상세에서 테스트에 필수적인 상황 선택

(3) 유즈케이스 상세 내용을 입력값,  출력값, 상황 처리 등으로 분류하여 테스트에 관여 하는 상황을 선택

(4)각각의 상황에 ID 부여

(5)각각의 상황에 가능한 값을 결정

시스템 레벨

정의

  • 유즈케이스 상호작용과 활동에 대한 테스트
  • 유즈케이스간에 수행순서가 있음을 반영하여 액티비티 다이어그램(Activity Diagram)을 근간으로 테스트 케이스를 도출하는 방법

특징

  • 액티비티 다이어그램에 표현된 유즈케이스 활동을 상태의 관점에서 파악하고 활동의 흐름을 전이로 간주하여 상태 전이 테스트 기법의 컨셉을 활용

종류

  • 활동기반 커버리지: 각각의 활동만을 테스트
  • 전이기반 커버리지: 활동의 흐름을 테스팅
  • 경로기반 커버리지: 재귀적인 흐름도 고려한 테스팅

(활동기반 ⊂ 전이기반 ⊂ 경로기반)

  • 유즈케이스가 얼마나 쉽고 정확하게 작성되어있느냐에 따라 테스트 케이스의 완성도와 정확도가 달라지며 보장성 확보에 영향을 줄 수 있음.                                                  

 

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. 출금 유스케이스의 테스트 케이스 예시자료

 

댓글