문제8) 화이트박스 테스트(White Box Test)와 블랙박스 테스트(Black Box Test)
답)
1. 개발자 관점의 내부구조 테스트 방식, 화이트박스 테스트의 개요
가. 화이트박스 테스트(White Box Test)의 개념
- 개발자가 소프트웨어 또는 컴포넌트 등의 내부 Logic에 대한 테스트를 수행하기 위하여 설계 단계에서 요구된 사항을 확인하여 테스트 하는 유형
나. 화이트박스 테스트기법 및 검증 유형
기법
|
설명
|
사례
|
제어구조 시험
(Control Structure Testing) |
|
|
루프 시험
(Loop Testing) |
|
|
- 검증유형
테스트 유형
|
설명
|
사례
|
구문 커버리지
(Statement Coverage) |
|
|
결정 커버리지
(Decision Coverage) |
|
|
조건 커버리지
(Condition Coverage) |
|
|
조건/결정 커버리지
(Condition/Decision Coverage) |
|
|
변경조건/결정 커버리지
(MC/DC) |
|
|
다중조건/결정 커버리지
(Multiple Condition Coverage) |
|
|
2. 요구명세서 기반 기능위주의 테스트 방식, 블랙박스 테스트(Black Box Test)의 개요
가. 블랙박스 테스트(Black Box Test)의 개념
- 테스트 대상의 내부 구조를 참조하지 않고 테스트 베이시스 개발자, 테스터, 사용자 경험 바탕으로 기능적, 비기능적 테스트 케이스 도출하고 선택하는 기법
나. 블랙박스 테스트의 기법 설명
기법
|
개념도
|
상세 설명
|
동등 클래스 분할 기법
(Equivalance Class Partitioning) |
|
|
경계값 분석
(Boundary Value Analysis) |
|
|
의사결정 테이블 테스팅
(Decision Table Testing) |
|
|
상태 전이 테스팅
(State Transition Testing) |
|
|
유스케이스 테스팅
(Use Case Testing) |
|
|
분류 트리 기법
(Classification Tree Method) |
|
|
페어와이즈 테스팅
(Paireise Testing) |
|
|
원인-결과 그래프
(Cause Effect Graph) |
|
|
오류예측기법
(Error Guessing) |
|
|
3. 블랙박스 테스트와 화이트박스 테스트의 비교
구분
|
블랙박스 테스트(명세기반)
|
화이트박스 테스트(구조기반)
|
개념도
|
|
|
개념
|
프로그램 내부 구조를 고려하지 않고. 요구사항 명세서나 사양서에서 테스트 케이스를 추출하여 테스트 하는 기법
|
컴포넌트 혹은 소프트웨어의 내부 구조 분석에 바탕을 두고 테스트케이스를 도출하여 테스트 하는 기법
|
특징
|
기능/테스트 위주, 명세 기반
|
내부로직 위주 설계, 알고리즘 위주, 구조 기반
|
관점
|
개발자 관점
|
사용자 관점
|
대상
|
시작/종료/인터페이스 결함
|
Loop, Decision 결함, 비 수행 구문
|
장점
|
시스템의 기능과 명세로 테스트 케이스를 도출하여 테스트케이스가 명확
|
내부 로직에 대한 테스트를 수행함으로써 상세한 테스트 가능
|
단점
|
내부 로직 테스트가 없어 테스트 범위가 구조기반보다 제한적
|
테스트케이스 도출 한계
|
기법
|
동등분할, 경계값분석, 의사결정테이블, 상태전이, Pairwise 분석 오류 예측, 원인결과 그래프
|
구문 커버리지, 결정 커버리지, 조건/결정 커버리지, 루프테스트, 제어구조 시험
|
활용
|
대부분의 테스트에 적용, 베타 테스트
|
단위 테스트 위주, 알파 테스트
|
'정보관리기술 > 소프트웨어공학' 카테고리의 다른 글
통합테스트(Integration Test) (0) | 2024.01.11 |
---|---|
임베디드 소프트웨어 테스트(Embeded Software Test) / ① (1) | 2024.01.10 |
테스트 커버리지(Test Coverage), 코드 커버리지(Code Coverage) / ① (1) | 2024.01.09 |
데브옵스(DevOps) / ① (1) | 2024.01.09 |
절차지향 프로그래밍(Procedure Oriented Programming)과 객체지향 프로그래밍(Object Oriented Programming) (0) | 2024.01.08 |