기술인사이트

기술리포트

블랙박스 테스트 설계 기법을 활용한 테스트 케이스 작성 가이드라인 (1)

블랙박스 테스트 설계 기법을 활용한 테스트 케이스(Testcase) 작성 가이드라인은 전자상거래에서 적용할 수 있는 블랙박스 테스트(Block-Box Test) 설계 기법에 대해 설명을 하고자 한다. 블랙박스 설계 기법을 적용하기 위해서는 요구사항 명세서, 스토리보드(Story Board), 유즈 케이스 명세서 등을 바탕으로 테스트 케이스를 설계할 수 있다.

본 리포트에서는 블랙박스 테스트 설계 기법의 정의, 방법을 설명하고 예시를 통해 전자상거래 분야에 적용할 수 있는 방법을 제시하고자 한다.


1. 테스트 케이스 정의 및 구성 요소


특별한 목표 또는 테스트 상황(Test conditions)을 테스팅 하기 위해 개발된
입력 값, 실행 사전 조건, 예상 결과, 실행 사후 조건들의 집합.


테스트 케이스의 가장 중요한 구성요소는 입력 값, 실행 사전 조건, 절차 및 예상 결과가 가장 중요한 구성요소이다. 하지만, 기본 구성요소 만으로는 설계된 테스트 케이스로는 요구사항의 커버리지 및 추적성, 유지 보수성이 매우 낮기 때문에 전자상거래에서 사용하기 용이하도록 아래와 같은 구성요소를 추가하여 작성할 수 있다.


<전자상거래에서 적용 가능한 테스트 케이스의 구성 요소>

·시스템 – 시스템 구분은 크게 Front Office(FO : 전시 화면), Back Office(BO : 관리자 화면)로 구분(프로젝트 특성에 따라 PC, Mobile, Tablet로 구분)

·업무 구분 – 테스트를 수행하는 영역이 어떤 영역인지 확인, 회원, 상품, 전시 화면, 결제, 클레임 등(요구사항 커버리지 확인 및 유지 보수 향상을 위해 사용)

·TC ID – 테스트 케이스 구분을 위해서 사용, 동일한 TC ID는 존재할 수 없음

·대분류/중분류/소분류 – 메인 페이지에서 들어가는 순서를 의미

·화면명(UID) – 요구사항 명세서 또는 유즈케이스 ID를 표시, 프로젝트 관리자 또는 기획자가 요구사항 커버리지 확인을 위해 사용하며, 추적성 확보와 요구사항 변경 시 테스트케이스 수정, 삭제 등을 수행 시 사용

·테스트 케이스명 – TC ID와 동일한 역할을 수행, 테스트 케이스의 기능을 쉽게 이해할 수 있도록 작성

·우선순위 – 필수, 기본, 선택 등으로 구분하여 프로젝트의 기간, 인력의 상황에 따라 테스트 케이스를 수행하기 위해 사용

·사전 조건 – 테스트 케이스 수행 전 사전 조건 명세(로그인 상태, 회원 등급 등)

·데이터 – 테스트 케이스 수행 시 사용되는 테스트 데이터(회원정보, 상품 데이터 등)

·테스트 절차 – 테스트 케이스 수행을 위한 절차, 최대 7 Step 권장

·예상 결과 – 테스트 케이스 수행 완료 시 예상되는 결과


테스트 케이스 설계 시 위와 같은 구성요소를 바탕으로 요구사항 커버리지, 추적성 및 유지 보수성을 향상시킬 수 있다. 아래의 예시는 전자상거래에서 적용할 수 있는 테스트 케이스의 예시이며 조직의 상황에 적합하게 변경 및 삭제가 가능하다.


[그림 1] 전자상거래 테스트 케이스 작성 예시



2. 테스트 케이스 설계에 필요한 주요 입력물

테스트 케이스 작성을 위한 주요 입력물은 아래와 같으며, 프로젝트 조직의 개발 프로세스에 따라서 다양한 문서를 입력물로 사용할 수 있다.


[표 1] 테스트케이스 작성에 필요한 입력물



3. 테스트 케이스 작성 절차

테스트 케이스 작성 절차는 아래와 같다. 테스트 케이스 작성 절차는 조직의 현황과 규모에 따라 변경될 수 있다.



[그림 2] 테스트케이스 작성 절차


-참조 문서 수집 : 테스트 계획서에 명시된 테스트 케이스 작성 지침과 수준을 고려하여 테스트 설계에 필요한 요구사항 분석 및 설계 문서 수집

-테스트 케이스 작성 : 블랙박스 설계 기법을 이용하여 단위/통합/시스템 테스트 케이스 작성

-내부 검토 : 프로젝트 관리자, 기획자, 개발자 및 프로젝트 팀장 등이 작성된 테스트 케이스 검토 (상황에 따라 검토자는 변경될 수 있음)

-요구사항 대비 커버리지 분석 : 테스트 케이스가 어느 정도 요구사항을 반영하는가에 대한 분석. 기본적으로 테스트 가능한 기능 및 비기능 요구사항은 모두 테스트 케이스에 반영되어야 함

-승인 : 작성된 테스트 케이스를 프로젝트 관리자, 기획자 등이 승인


4. 테스트 케이스 작성 및 수행 관련 도구

테스트 케이스를 자동으로 도출하는 관련 도구들이 존재하기는 하지만, 실제 협업에서 적용하기는 매우 힘들다. 또한 전자상거래의 특성상 빈번하게 발생되고 변경되는 요구사항에 대해 도구를 적용하여 테스트 케이스를 설계하는 것은 매우 적절하지 않다고 생각이 된다.

하지만 실제 전자상거래에서는 테스트 케이스 설계 도구보다는 자동화 테스트 도구를 사용하는 것이 더 효율적이다. 전자상거래의 특징이 매우 빈번하게 요구사항이 변경되고 수정이 수시로 발생되기 때문에 매번 동일한 기능에 대해 반복적인 테스트를 수행하기 때문이다.

이런 경우 테스트 자동화 도구를 활용하여 테스트 스크립트를 작성하여 수행하면 반복적인 작업에 대한 테스트 수행 시간을 단축할 수 있다. 일반적으로 자동화 도구는 아래와 같은 경우에 많이 사용한다.

· 잦은 업그레이드나 프로그램 변경이 발생하여 반복적으로 테스트해야 하는 경우

· 동일한 항목에 대해 다량의 테스트 데이터를 적용해야 하는 경우

· 중요 업무에 대하여 객관적인 테스트 결과를 제시해야 하는 경우

· 테스트 시 비교 대상 항목이 많은 경우


그리고 일반적으로 테스트 케이스 대비 자동화 비율은 30%를 넘지 않는 것이 일반적이다(HP). 또한 자동화 테스트는 테스트 스크립트를 작성, 유지 보수 등의 작업이 지속적으로 필요하기 때문에 자동화 도구 도입 시에는 시간 및 비용 대비 효과를 확인 후 도입하는 것이 좋다.


5. 전자상거래에 적용 가능한 테스트 케이스 설계 기법


5.1 동등 분할

소프트웨어나 시스템이 특정 범위의 입력 값에 의해서 결과값이 동일한 경우 이러한 입력 값의 범위를 하나의 그룹으로 간주하여, 각 그룹에서 하나의 값을 대표 값으로 선택하여 테스트케이스를 작성하는 테스트 기법이다. 이 기법은 가능한 모든 경우의 수에서 테스트 개수를 줄여준다.

동등 분할 기법은 유효한 입력 값뿐만 아니라 유효하지 않은 입력 데이터(입력되지 말아야 할 값)도 포함할 수 있다. 입력 값 이외에 동등 분할에 적용할 수 있는 분야는 다음과 같다.


· 출력값 (Outputs)

· 내부 값 (Internal values)

· 시간 관련 값 (Time-related values, 이벤트 이전과 이후)

· 통합 테스트에서 다루는 모듈 간 인터페이스 파라미터 (Interface parameter)


동등 분할은 사람에 의한 입력, 인터페이스를 통한 시스템으로의 입력, 혹은 통합 테스트에서 인터페이스 파라미터 등의 테스트를 설계할 때 테스트 조건(Test Condition)에 적용할 수 있다.

동등 분할은 명세에 있는 입/출력값 등을 활용하기 때문에 블랙박스 테스트 기법은 분류하고 있지만, 화이트박스 테스트 기법에도 적용하여 사용할 수 있다. V-모델의 테스트 레벨인 단위 테스트, 통합 테스트, 시스템 및 인수 테스트 등에 사용할 수 있으며, 기능/비기능 테스트, 구조적 테스트, 확인/회귀 테스트에서도 사용할 수 있다.


[요구사항 1]

쇼핑몰에서 결제 금액에 따라서 사은품을 증정하고자 한다. 사은품을 받기 위해서는 최소 5만 원 이상 결제를 해야 하며, 5만 원 이상 시에는 마스크 1개를 받으며, 10만 원 이상 경우에는 마스크 3개를 증정합니다. 그리고 30만 원 이상은 경우에는 마스크 10개를 증정합니다.


[그림 3] 요구사항 1 동등 분할



[그림 4] 요구사항 1 동등 분할에 의한 테스트 케이스



[요구사항 2]

쇼핑몰에서 총 결제 금액에 따라서 고객의 회원 등급을 결정하려고 합니다. 회원 등급은 크게 일반, 브론즈, 실버, 골드, VIP로 구분될 수 있습니다. 일반회원은 구매 금액이 10만 원 미만, 10만 원 이상 경우 브론즈 등급, 30만 원 이상 경우 실버 등급, 50만 원 이상 경우에는 골드, 100만 원 이상인 경우 VIP 등급임.


[그림 5] 요구사항 2 동등 분할



[그림 6] 요구사항 2 동등 분할에 의한 테스트 케이스



5.2 경계 값 분석

경계 값 분석은 동등 분할의 경계 부분에 해당하는 입력 값에서 결함이 발견될 확률이 경험적으로 높기 때문에 결함을 방지하기 위해 경계 값까지 포함하여 테스트를 수행하는 기법입니다. 분할 영역의 최대값과 최소값은 그 영역의 경계 값이 된다.

경계 값 분석은 동등 분할과 마찬가지로 모든 테스트 레벨, 모든 테스트 유형, 모든 테스트 분류에 적용할 수 있다. 결함 발견율이 높고, 적용하기 쉬운 장점이 있어 가장 많이 사용되는 테스트 기법 중 하나이다. 경계 값 분석은 보통 동등 분할의 확장으로 여겨지며, 동등 분할과 동일한 방식으로 커버리지를 보장한다.


본 가이드라인에서는 경계 값 분석 방법에 대해서 동등 분할의 예제를 활용할 것이다.



[그림 7] 경계 값 분석의 종류와 보장범위

출처: Ref. 개발자도 알아야 할 소프트웨어 테스팅 실무, STA


[요구사항 1]

쇼핑몰에서 결제 금액에 따라서 사은품을 증정하고자 한다. 사은품을 받기 위해서는 최소 5만 원 이상 결제를 해야 하며, 5만 원 이상 시에는 마스크 1개를 받으며, 10만 원 이상 경우에는 마스크 3개를 증정합니다. 그리고 30만 원 이상은 경우에는 마스크 10개를 증정합니다.



[그림 8] 요구사항 1 경계 값 분석



[그림 9] 요구사항 1 경계 값 분석에 의한 테스트 케이스



[요구사항 2]

쇼핑몰에서 총 결제 금액에 따라서 고객의 회원 등급을 결정하려고 합니다. 회원 등급은 크게 일반, 브론즈, 실버, 골드, VIP로 구분될 수 있습니다. 일반회원은 구매 금액이 10만 원 미만, 10만 원 이상 경우 브론즈 등급, 30만 원 이상 경우 실버 등급, 50만 원 이상 경우에는 골드, 100만 원 이상인 경우 VIP 등급임.


[그림 10] 요구사항 2 경계 값 분석



[그림 11] 요구사항 2 경계 값 분석에 의한 테스트 케이스



지금까지 전자상거래에서 적용 가능한 테스트 설계 기법 중 동등 분할과 경계 값 분석에 대해 알아보았다.

다음 시간에는 결정 테이블 설계기법, 분류 트리, 페어 와이즈 기법 등에 대해 알아보도록 하겠다.



Reference.

[1] 개발자도 알아야 할 소프트웨어 테스팅 실무 3판, STA, 권원일 외 5인

[2] 소프트웨어 테스팅 : MS에선 이렇게 테스트 한다.(번역서), 에이콘, 권원일 외 4인

[3] 자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기, 한빛미디어, 이상민

[4] 공개SW포털, http://www.oss.kr/