[소공 목차]

1. 요구명세서 기반 테스트, 블랙박스 테스트 (BlackBox Test)

1) 개념

- 소프트웨어 내부 구조를 고려하지 않고, 입력값에 대한 출력값을 확인하여 테스트하는 기법

- 특) 기능테스트, Data Driven, I/O Driven

 

2) 블랙박스 테스트 주요 기법

기법 활용예 상세 설명
동등 클래스
분할 기법
(Equivalence
Class
Partitioning)

- 등가 분할 된 대표 값을 이용 테스트케이스 도출
- 프로그램의 입력 도메인을 등가 영역들로 분할 후 각 영역별로 대표되는 값들을 선정하여 테스트 케이스를 설계하는 방법
) 입력데이터 x값이 0 ~ 100 사이여야 한다면 TC (x < 0), (x = 50), (x > 100)으로 분할하여 적용
경계값 분석
(Boundary Value Analysis)


- 결함은 경계 값 근처에서 많이 발생 이용
- 입력 영역의 분할 클래스의 경계값으로 테스트 케이스를 설계하는 방법
- 등가 분할 기법의 확장, 등가분할 된
경계의 유효한 값, 경계의 가장 가까운
유효하지 않는 값 선택 테스트 진행
) x값이 0∼100사이여야 한다면 TC
(x=0), (x=100), (x=-0.01), (x=100.1) 로 정의
의사결정 테이블 테스팅
(Decision
Table
Testing)

- 조건과 결과를 참/거짓으로 표현
- 주요한 의사결정 요소들을 표(결정테이블)로 만들고, 요소들간의 결합에 의한 테스트 케이스 설계
- 각 의사결정 요소들의 조합을 통해 다양한 형태의 테스트 시나리오를 도출
유스케이스
테스팅
(Use Case
Testing)

- usecase명세서 이용 테스트 케이스 설계
- 유즈케이스를 통해 도출되는 비즈니스 시나리오 (기본 흐름, 대체 흐름)를 기반으로 테스트를 명세화하여 테스트
- 컴포넌트/단위 레벨 유즈케이스 테스팅
- 시스템 레벨 유즈케이스 테스팅
분류 트리 기법(Classification Tree Method)

- SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하는 기법
- 트리구조를 시각화 하여 테스트 케이스를 설계하므로 불필요한 중복 및 누락을 회피
페어와이즈
테스팅
(Paireise
Testing)
- 대부분 결함이 2 개의 요소(Pair)의 상호 작용에 기인한다는 것에 착안하여, 각 값들이 다른 파라미터의 값과 최소 한번씩은 조합을 이루도록 구성하는 테스트 기법
- 모든 조합을 포함하지 않으므로 결함을 찾지 못하는 경우 발생 가능
원인-결과
그래프
(Cause Effect
Graph)
- 입력 데이터간 관계가 출력에 영향을 미치는 상황을 체계적으로 분석하여 테스트 케이스 설계 및 테스트
- 원인,결과에 근거한 테스트 케이스 생성하며 시스템 외부 동작만 고려 
오류예측
기법
(Error Guessing)
) 입력값 없이 Return 친다.
문법에 어긋난 입력을 시험한다 등
각 시험 기법들이 놓치기 쉬운 오류들을 감각과 경험으로 찾아 검증
- Ad-hoc Testing이라고도 하며 직관과 경험에 의한 특정 형태의 결함 예측 및 해당 결함을 드러내는 테스트 케이스 설계 기법.

 

2. 내부구조기반 테스트. 화이트박스 테스트 (White-Box Test)

1) 개념

- 소프트웨어의 내부 구조와 복잡도를 기반으로 테스트 케이스를 도출하여 테스트를 수행하는 방식

- 특) 구조 테스트, Logic Driven

 

2) 화이트박스 테스트 주요 기법

기법 설명 사례
제어구조 시험
(Control Structure Testing)
- McCabe에 의해 제안된 대표적 White Box Test 기법
- 프로그램의 처리 흐름을 제어하는 방법 및 수행 제어를 위해 사용되는 문장의 구조
- 순차형(순차 구조, Sequence)
- 선택형(분기구조, If Then Else)
- 반복형(반복구조, Do While)
루프 시험
(Loop Testing)
- 프로그램 루프 구조에 국한해서 실시하는 기법
- 루프 시험의 대상 결함 : 초기화 결함, 인덱싱 및 증가의 결함, 루프의 경계선에서 나타나는 경계 오류
- 루프의 유형 : 단순루프, 중첩루프, 연결루프, 비구조적 루프
- for, while
- go to

- Test Coverage 선정으로 테스트 범위 정의 가능

https://meta-study-group.tistory.com/322

 

코드 커버리지(김도현 부장님)

[소공 목차] 1. 코드에 대한 테스트 수행 범위 지표, 코드 커버리지의 개념 - What : 테스트 대상인 소스 코드 중 테스트를 통해 실행된 코드의 비율 지표 - Why : 테스트의 정확성(테스트 범위)을 판

meta-study-group.tistory.com

 

 

3. 블랙박스, 화이트박스 테스트 비교

구 분 블랙박스 테스트(명세기반) 화이트박스 테스트(구조기반)
개념도
개념 프로그램 내부 구조를 고려하지 않고, 요구사항 명세서나 사양서에서 테스트 케이스를 추출하여 테스트 하는 기법 컴포넌트 혹은 소프트웨어의 내부 구조 분석에 바탕을 두고 테스트케이스를 도출하여 테스트 하는 기법
특징 기능/데이터 위주, 명세 기반 내부로직 위주 설계, 알고리즘 위주, 구조 기반
관점 개발자 관점 사용자 관점
대상 시작/종료/인터페이스 결함 Loop, Decision 결함, 비 수행 구문
장점 시스템의 기능과 명세로 테스트 케이스를 도출하여 테스트케이스가 명확 내부 로직에 대한 테스트를 수행함으로써 상세한 테스트 가능
단점 내부 로직 테스트가 없어 테스트 범위가 구조기반보다 제한적 테스트케이스 도출 한계
기법 동등분할, 경계값분석, 의사결정테이블, 상태전이, Pairwise 분석 오류 예측, 원인결과 그래프 구문 커버리지, 결정 커버리지, 조건/결정 커버리지, 루프테스트, 제어구조 시험
활용 대부분의 테스트에 적용, 베타 테스트 단위 테스트 위주, 알파 테스트

* 알파테스트 : 자체 테스트 * 베타테스트 : 사용자 테스트

+ Recent posts