1. 명세기반 테스트(블랙박스 테스트)의 개요
명세기반 기법은 주어진 명세(일반적으로 모델의 형태)를 빠뜨리지 않고 테스트 케이스화하는 것을 의미하고, 테스트 케이스를 수행해서 중대한 결함이 없음을 보장하는 것이 일반적입니다.
요구사항 분석서, 설계(기준)서 등의 명세는 구현하고자 하는 소프트웨어를 가능한 오해 없도록 체계적으로 표현하는 것입니다. 이를 위해 여러가지 표현 방식 (또는 모델)을 활용하고 있는데 최근에는 UML(Unified Modeling Language)을 가장 많이 사용합니다.
명세를 구성하는 모델이 UML에서 정의하고 있는 상태 다이어그램(State Diagram)이라면, 상태 다이어그램이 소프트웨어를 정확하게 표현하고 있고, 이에 맞게 구축되어 있는지 확인하는 것이 필요합니다. 이때 상태 전이 테스팅을 적용할 수 있으며 상태 자체를 포함하여 상태가 전이(Transition)되는 것까지를 보장하는 테스트 케이스를 생성할 수 있습니다. 이를 상태 전이 커버리지라고 합니다. 이밖에도 상태 커버리지, 상태 경로 커버리지가 존재하며, 상태 전이 커버리지가 상태 커버리지를 포함하고, 상태 경로 커버리지가 상태 전이 커버리지를 포함하는 개념입니다.
유즈케이스는 UML의 핵심이며 유즈케이스 테스팅은 이러한 유즈케이스를 활용하여 개발한 중간산출물(Work products)을 빠뜨리지 않고 체계적으로 어느 정도의 보장성을 부여하면서 테스팅하는 것입니다.
결정 테이블 테스팅 기법도 같은 맥락에서 생각해 볼 수 있습니다. 개발 중간산출물을 상태 다이어그램이나 유즈케이스로 작성하지 않고 결정 테이블로 작성한 이유는 다른 경우와 마찬가지로(시스템) 소프트웨어가 결정 테이블로 가장 잘 표현이 되기 때문입니다. 결정 테이블 테스팅은 결정 테이블로 개발한 중간산출물을 빠뜨리지 않고 체계적으로 일정 수준의 보장성을 부여하면서 테스팅하는 것입니다.
2. 명세기반 테스트의 주요 특징 및 유형
1) 주요 특징
- 명세서 기반 : 요구사항 명세에서 케이스 도출
- 인터페이스 검증 : 모듈간 또는 시스템간 검증
- Data-Driven, I/O-Driven : 입력값에 대한 출력값에 중점
- 기능 중심 : 공식, 비공식 모델에서 추출
2) 명세기반 테스트 기법
명세 기반 기법의 종류로 동등 분할 (Equivalence partitioning), 경계값 분석 (Boundary value analysis), 결정 테이블 테스팅 (Decision table testing), 상태 전이 테스팅 (State transition testing), 유스케이스 테스팅 (Use case testing), 조합 테스팅 (Pairwise testing) 이 있습니다. 이 중에서 4가지 종류에 대한 특징을 소개합니다.
(1) 동등분할 기법 (Equivalence Partitioning)
- 프로그램의 입력 도메인을 테스트 케이스가 산출될 수 있는 데이터의 클래스로 분류하는 방법
- 다양한 입력조건들을 갖춘 시험사례의 유형들을 분할: 상식적 경험에 의존(Heuristic)
- 각 시험사례 유형마다 최소의 시험사례 작성
- 예) 입력데이터가 값의 범위를 나타낼 때 : x값이 0 ~ 100사이여야한다면 시험사례를 (x<0),(0x100), (x>100)으로 분할하여 유형을 적용
(2) 경계값 분석 기법 (Boundary-Value Analysis)
- 입력 조건의 중간값에서 보다 경계값에서 에러가 발생될 확률이 높다는 점을 이용하여 이를 실행하는 테스트 케이스를 만드는 방법
- 경계치에 치중하며 출력유형도 고려하는 특성
- 예) x값이 0∼100 사이여야 한다면 시험사례를 (x=0), (x=100), (x=-0.01), (x=100.1)을 시험사례 유형으로 정의
(3) 오류예측 기법 (Error Guessing)
- 각 시험기법들이 놓치기 쉬운 오류들을 감각 및 경험으로 찾아보는 것
- 예) 입력없이 Return 친다. 문법에 어긋난 입력 시험 등
(4) 원인-결과 그래프 기법 (Cause-Effect Graph)
- 동등분할과 경계값 분석 기법의 단점은 입력환경의 복잡성을 완전히 고려할 수 없음
- 입력데이터 간의 관계가 출력에 영향을 미치는 상황을 체계적으로 분석하여 효용성 높은 시험사례를 발견하고자 원인-결과 그래프 기법이 제안
3. 명세기반 테스트의 고려사항
- 시스템이 상태 다이어그램, 유즈케이스 등의 모델로 표현되어 있지 않을 경우, 명세 기반 기법을 적용하기 위해서는 테스트 전문가가 요구사항 분석서와 설계(기준)서를 먼저 작성한 후 테스트 케이스를 작성하는 것을 고려해야 합니다.
또한, 조기 테스트 설계(Early test design)에 활용한다. 명세 기반 기법으로 동작하는 소프트웨어가 없어도 명세를 가지고 테스트 케이스를 도출할 수 있습니다. 이는 개발 초기에 테스팅하는 것을 의미하며, 테스트 케이스를 생성하는 과정에서 개발자/분석가/아키텍트가 발견하기 어려운 결함을 효과적으로 발견할 수 있습니다.
4. 명세기반 테스트의 활용방안
- 명확한 모델 수립 : 사전 테스트케이스 정재
- UML 등 설계도구 연계, 제한적 커버리지 측정
- 시스템 모델링이 복잡, 정형 명세의 한계, 상태폭발 문제
- 통합 테스트 활용 : Stub, Driver, Test 오라클
- 시스템 테스트 활용 : 성능, 강도, 확인테스트
'IT 기본개념' 카테고리의 다른 글
페르소나(Persona) (0) | 2022.12.20 |
---|---|
구조기반(Structure-Based Technique) 테스트 (0) | 2022.12.19 |
[IT보안] SW정형검증 (0) | 2022.12.17 |
[데이터관리] 클라우드 컴퓨팅(Cloud Computing) (0) | 2022.12.15 |
[IT관리] Escrow(임치제도) (0) | 2022.12.05 |
댓글