[소공 목차]
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 분석 오류 예측, 원인결과 그래프 | 구문 커버리지, 결정 커버리지, 조건/결정 커버리지, 루프테스트, 제어구조 시험 |
활용 | 대부분의 테스트에 적용, 베타 테스트 | 단위 테스트 위주, 알파 테스트 |
* 알파테스트 : 자체 테스트 * 베타테스트 : 사용자 테스트
'메가노트 > 토픽과제(정리)' 카테고리의 다른 글
모듈화(황선환 이사님) (0) | 2022.10.08 |
---|---|
테스트 설계(홍진택 주무관님) (0) | 2022.10.08 |
사업타당성 평가(이재용 부장님) (0) | 2022.10.08 |
공공소프트웨어 사업영향평가제도(안혜진 선임님) (0) | 2022.10.08 |
Agile방법론(이상희 부장님) (0) | 2022.10.08 |