블랙박스 테스트, 블동경의상 유분페 |
I. 문서 기반으로 테스트 케이스 도출, 명세기반 테스트의 개요
가. 명세기반 테스트(Specification-based Test)의 정의
- 프로그램의 구조를 고려하지 않고 SRS, 설계문서 등을 기반으로 테스트 케이스를 설계, 테스트를 실행하는 테스트 기법
나. 명세기반 테스트의 특징
특징 |
내용 |
블랙박스 테스트 |
시스템 내부를 참조하지 않고 테스트 수행 |
데이터 증식 |
입출력 데이터에 초점 |
테스트 케이스 도출 |
초기 테스트 설계 적용으로 테스트 케이스 도출 가능 |
II. 명세기반 테스트의 유형 (블동경의상 유분페)
기법 |
개념도 |
내용 |
동등분할 (Equivalence Class Partitioning) |
- 대표값을 이용 테스트 케이스도출 |
정의) 입력 정보를 유사한 특징을 가진 클래스로 분류, 각 클래스의 대표 테스트 케이스를 작성하는 방법 - 클래스는 유한개의 독립적 집합으로 분리 - 동일한 입력에 대해서는 동일한 결과 - 출력 결과에 대해서도 동등분할 |
경계값 분석 (Boundary Value Analysis) |
- 결함은 경계값 근처에서 많이 발생한다는 점을 이용 |
정의) 입력 조건의 중간 값보다 경계 값에서 에러 발생 확률이 높다는 이론을 이용 - 경계치에 치중하여 출력 유형 고려 - 동등 분할 후 분할된 클래스의 경계값에 근거하여 테스트 케이스 작성 |
의사결정 테이블 (Decision Table Testing) |
- 조건에 따라 참/거짓으로 표현 |
정의) 명세서가 논리적인 관계를 가지고 있는 경우 대상을 조건과 결과로 구분하여 조합 관계를 고려한 테스트 방법 - 주요한 의사 결정 요소들을 표로 만들고 요소들간의 결합에 의한 테스트 케이스 설계, 결정요소 조합을 통해 테스트 시나리오 도출 |
상태전이 (State transition testing) |
- 전이 트리 구성도 |
정의) 상태 전이 다이어그램 기반으로 시스템 동작을 확인하는 기법 - 이벤트, 액션, 활동, 상태, 상태 전이 사이의 관계를 검증하는 기법 - Embedded 소프트웨어 테스트에 유용 |
유즈케이스 (Usecase testing) |
- Use case명세서를 이용한 테스트 케이스 설계 |
정의) 유즈케이스 명세서를 기반으로 테스트 시나리오를 구성하여 테스트하는 방법 - 고객의 기능적 요구사항대로 시스템이 개발되었는지 검증 가능 - 이벤트 흐름의 경로 기반 테스트 - 개발 초기부터 테스트 케이스 작성 가능 |
분류 트리 |
|
정의) 흐름을 트리 구조로 표현하여 테스트 케이스 설계 - 경험기반 경계값 분석 등을 활용조합 기반의 케이스 도출 - 입력변수들 간의 조합 - 트리 구조의 시각화 |
페어와이즈 조합 (Pairwise testing) |
- Test case 의 최소화 |
정의) 입력 데이터의 파라미터 값들이 다른 파라미터의 값과 최소 한번씩은 조합을 이루도록 테스트하는 방법 - 조합 테스트 기법으로 조합의 개수를 보장성 있게 부여 - 대부분의 결함이 2개의 요소(Pair)의 상호 작용에 기인한다는 것에서 착안 |
III. 구조기반 기법과 명세기반 기법의 비교
구분 |
구조기반 테스트 |
명세기반 테스트 |
개념도 |
|
|
정의 |
- 프로그램 내부 로직을 참조 - 모든 경로를 테스트 |
- 외부 명세로부터 직접 테스트 - Data, I/O 위주 테스트 |
특징 |
- 구조테스트 - Logic Driven 테스트 - 모듈 테스트 |
- 기능테스트 - Data Driven 테스트 - I/O 테스트 |
적용 |
- 단위테스트 위주 |
- 대부분의 테스트에 적용 |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
리스크 기반 테스트 (0) | 2021.02.03 |
---|---|
회귀테스트(Regression Test) (0) | 2021.02.02 |
소스코드 커버리지(Source Code Coverage) (0) | 2021.02.02 |
구조기반 테스트(Structure-based Test) (0) | 2021.02.02 |
테스트 오라클(Test Oracle) (0) | 2021.02.02 |
테스트 베드(Test Bed) (0) | 2021.02.02 |
테스트 케이스(Test Case) (0) | 2021.02.02 |
소프트웨어 테스트 프로세스 (0) | 2021.02.02 |
댓글