기술인사이트

기술리포트

블랙박스 테스트 설계 기법을 활용한 테스트 케이스 작성 가이드라인 (2)
지난 시간에는 전자상거래에 적용할 수 있는 블랙박스 테스트 설계 기법 중 동등 분할과 경계 값 분석에 대해 알아보았습니다. 지난 포스팅을 읽고 싶은 분들은 여기를 클릭해 주시기 바랍니다.
이번 시간에는 결정 테이블 테스팅 기법과 유즈케이스 테스팅 기법에 대한 테스트 케이스 작성방법에 대해 알아보도록 하겠습니다.


● 결정 테이블 테스팅 기법

결정 테이블은 논리적인 조건이나 상황을 구현하는 시스템에서 요구사항을 도출하거나 테스트 케이스를 설계하는 기법입니다. 이 기법은 요구사항 명세서를 분석하고, 요구사항의 조건과 동작(Action)을 식별하여 테스트케이스를 작성합니다. 결정 테이블에서는 입력 조건과 기대 결과는 참(True)과 거짓(False)로 표현합니다. 결정 테이블 기법은 소프트웨어의 동작이 여러 가지 논리적 조건에 의존적인 모든 경우에 적용이 가능합니다.

장점
· 논리적으로 서로 의존적인 모든 조건들의 조합 생성 가능
· 요구사항의 논리적 문제점이나 베이시스의 문제점을 확인하고 효과적인 테스트 케이스 생성 가능
· 테스트케이스를 설계하면서 결함을 발견할 수 있음
· 전자상거래에서 사용되는 정책의 논리적 문제점을 파악할 수 있고, 시스템의 정책을 이해하는 데 도움을 줌

단점
· 테스트 수행을 위해 결정 테이블을 작성 시 많은 시간과 노력이 필요함
· 논리적 문제점을 찾을 수 있으나 반대로, 작성 시 논리적 실수를 할 가능성이 있음

그리고 결정 테이블을 이용하여 테스트케이스를 작성하는 방법은 아래와 같다.

[그림1] 일반적인 결정 테이블 형태


· 조건 1 ~ 조건 m 까지는 다양한 입력 조건을 나타냄
· 액션 1 ~ 액션 n 까지는 다양한 입력 조건의 조합에 따른 액션(기대 결과, 결과)을 나타냄
· 액션은 평가되는 조건 순서와는 관련이 없으며, 각 조건의 값에만 영향을 받음
· 액션은 조건에만 영향을 받으며, 이전의 입력 조건이나 시스템의 상태에 영향을 받지 않음

결정 테이블은 Binary 조건의 결정 테이블(True / False)과 Non-Binary 조건의 결정 테이블 두 종류가 있으며, Binary 조건 결정 테이블은 조건에 True / False의 조건만을 사용하여 결정 테이블을 작성하며, Non-Binary 조건 결정 테이블은 조건에 다양한 값을 선택하여 사용할 수 있다. 또한 Non-Binary 조건 결정 테이블의 경우에는 조건의 값에 동등 분할 및 경계 값 분석 기법을 조합하여 사용할 수 있다.


[요구사항1] 쇼핑몰에서 상품 구매를 위한 요구사항 (Binary 결정 테이블)
상품 구매는 회원과 비회원 모두 구매가 가능하며, 포인트는 회원만 사용이 가능하다.
상품을 구매 시 구매 금액이 3만 원 이상인 경우에는 무료배송이며, 3만 원 미만 시에는 배송료 2500원을 지불한다. 현재는 이벤트 기간으로 3만 원 이상 구매하신 고객에게는 사은품을 증정한다.


[그림2] Binary 결정 테이블 예시


결정 테이블에서는 모두 사용 가능한 4개의 조건(Condition)을 명시하였다. 그리고 각 조건의 조합에 따라 발생 가능한 액션(Action)을 표시하였다.

TC ID 1의 경우 회원이 3만 원 이상의 상품을 구매 시에는 사은품 제공, 포인트 사용, 무료 배송의 액션을 진행한다. TC ID 3의 경우 비회원이 3만 원의 상품을 구매 시 사은품을 제공하고 무료배송은 가능하지만 포인트 사용은 불가능하다. 이러한 조건을 바탕으로 테스트케이스를 생성하여 진행할 수 있다.


[요구사항2] 쇼핑몰에서 상품 구매 금액에 따른 회원 등급 결정 (Non-Binary 결정 테이블)
쇼핑몰에는 일반회원, 골드회원, VIP 회원이 존재하고 있다. 일반회원은 구매 경력이 없거나, 총 상품 구매금액이 30만 원 미만인 회원이다. 또한 구매 횟수가 3회 미만인 경우도 일반회원이 된다.
골드회원은 총 상품 금액이 30만 원 이상이고 100만 원 미만인 고객이며, 총 구매 횟수가 10회 미만인 경우이다. 마지막으로 VIP 회원은 총 상품 구매 금액이 100만 원 이상이며, 구매 횟수가 11회 이상인 경우이다.

[그림3] Non-Binary 결정 테이블 예시


요구사항을 분석하여 조건(Condition)과 액션(Action)을 분석하였다. 분석된 조건과 액션 만으로도 테스트 케이스를 설계할 수 있지만, 테스트 케이스의 목적이 보다 많은 결함을 발견하기 위한 작업이기 때문에 이전에 배운 경계 값 분석 기법을 조합하여 좀 더 다양한 테스트 케이스를 설계할 수 있다. 


1. 우선 구매 금액에 대한 경계 값을 분석


[그림4] 구매금액 경계 값 분석 예시


2. 구매 횟수에 대한 경계 값 분석

[그림5] 구매 횟수 경계 값 분석 예시


3. 구매금액 조건과 구매 횟수 조건을 조합하여 결정 테이블을 작성

[그림6] 결정 테이블과 경계 값 분석 조합 예시

4. 결정 테이블의 조건 및 액션과 결정 테이블을 활용하여 적용된 결정 테이블을 활용하여 테스트 케이스를 작성 



● 유즈케이스 테스팅 기법
유즈케이스 테스팅 기법은 비즈니스 시나리오를 바탕으로 테스트 케이스를 작성하는 기법이다.

유즈케이스는 실제 사용되는 시스템의 기능 기반으로 프로세스의 흐름을 기술하고, 통합 테스트 단계에서는 서로 다른 컴포넌트(단위) 상이에서 상호작용 시 발생하는 결함을 발견하는데 매우 효과적인 기법이다.

그리고 유즈케이스 테스팅 기법을 활용 시 전체적인 시스템의 프로세스 흐름과 기능을 쉽게 이해할 수 있으며, 인수 테스트를 수행하는 고객도 사용할 수 있는 매우 유용한 기법이다.

유즈케이스는 시나리오 또는 기본 흐름(Main Flow)와 대체 흐름(Alternative Flows)로 구성되며, 각 유즈케이스에 대한 자세한 표현을 위해 유즈케이스 명세서(Use Case Description)을 사용한다.


[그림7] 유즈케이스 다이어그램과 유즈케이스 명세서

유즈케이스 다이어그램은 시스템인 “쇼핑몰”, 액터인 “고객” “관리자”, 유즈케이스 “상품 담기” “결제하기” “상품관리” 및 관계(실선)으로 구성된다. 유즈케이스 명세서는 유즈케이스의 내용을 상세화한 문서로 사전 조건, 사후 조건 및 이벤트로 구성된다. 

[그림8] 유즈케이스 명세서 예시


[요구사항2] 결제하기 유즈케이스를 이용한 테스트케이스 작성


[그림9] 유즈케이스 명세서


유즈케이스 명세서를 기반으로 시나리오를 작성하며, 테스트 시나리오는 유즈케이스의 기본 흐름과 대체 흐름을 조합 후 분석하여 테스트케이스를 작성한다. 


[그림10] 유즈케이스 명세서 기반 시나리오 설계


위의 시나리오를 이용하여 각 시나리오에 대한 테스트케이스를 설계한다.
테스트케이스는 매트릭스(Matrix)나 결정 테이블(Decision Table)을 이용하여 식별할 수 있다. 아래의 그림에서는 매트릭스를 이용하여 필요한 데이터를 가장 먼저 식별하였다. 상품 결제를 위해서 필요한, 로그인(ID), 쿠폰 사용 여부, 포인트 사용 여부, 결제수단 및 결제 취소에 대한 데이터를 식별하였다.

[그림11] 유즈케이스 명세서 기반 테스트 케이스 설계

이렇게 식별된 내용에 대해서 리뷰를 통해서 잘못된 내용이나, 수정 또는 추가해야 할 내용에 대해서 확인을 수행한다. 예로, TC_006은 유즈케이스 시나리오에서 미처 생각하지 못했던, 비로그인 상태에 대한 내용을 추가하였다.

이렇게 승인 과정이 완료되면, 실제 데이터 값을 식별하여 테스트 수행을 위한 테스트 데이터를 입력하고 테스트케이스를 완성하게 된다.

[그림12] 유즈케이스 명세서 기반 테스트 케이스 명세서


지금까지 전자상거래에서 적용 가능한 테스트 설계 기법 중 결정 테이블 테스팅과 유즈케이스 테스팅에 대해 알아보았다. 다음 시간에는 분류 트리와 페어와이즈 기법에 대해 알아보도록 하겠다.






Reference.
[1] 개발자도 알아야 할 소프트웨어 테스팅 실무 3판, STA, 권원일 외 5인
[2] 소프트웨어 테스팅 : MS에선 이렇게 테스트 한다.(번역서), 에이콘, 권원일 외 4인
[3] 자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기, 한빛미디어, 이상민
[4] 공개SW포털, http://www.oss.kr/