화이트박스 테스트
- 코드분석과 프로그램 구조에 대한 지식을 바탕으로 문제가 발생할 가능성이 있는 모듈 내부를 테스트하는 방법
- 화이트박스 테스트, 코드기반 테스트, 로직기반 테스트, 글래스 테스트
- 프로그램 소스코드의 논리적인 구조를 커버하도록 테스트케이스를 설계하는 방법.
Black Box | White Box | |
대상 | 프로그램 | 소스코드 |
사전지식 | 메뉴얼이해, 프로그램이해, 사전지식거의없음 | 개발언어, 코드내용 |
난이도 | 하 | 상 |
소요시간 | 하 | 상 (2~3오래걸림 소스코드 분석) |
테스트 유형
- 정적테스트
: 소프트웨어 실행 x
: 동료검토, 워크쓰루, 인스펙션, 공식검토 등
- 동적테스트
: 소프트웨어 실행o
: 명세기반 테스트, 구조기반 테스트, 경험기반 테스트
테스트 커버리지
- 시스템 또는 컴포넌트에서 테스트가 수행된 정도
: 얼마나 많은 범위를 테스트했는가?
- 100%커버리지?
: 모든 경로를 테스트할 수 있다록 가정해도 오류가 발생할 수 있음.
- 테스트 커버리지 측정의 장점
: 커버리지를 높이기 위해 추가로 테스트 케이스 도출
: 테스트 케이스에 의해 수행되지 않은 프로그램의 영역을 찾을 수 있음
: 프로그램의 품질을 간접적으로 측정할 수 있는 정량적 방법.
- 테스트 커버리지 측정의 단점
: 코드로 작성된 부분에 대해서만 커버리지 측정이 가능
: 특정 기능이 구현되지 않거나 명세서의 기능이 생략된 경우 결함 발견이 안됨.
화이트박스 테스트의 목표
: 적합한 테스트가 수행되도록 일부 경로를 선택하여 실행
(여기서 부터 실습예제는 책 참고)
문장 커버리지
: 프로그램 내 모든 문장을 적어도 한번이상 실행하는 것을 기준으로 하는 테스트방법
분기 커버리지 (결정 커버리지)
: 각 분기가 참/거짓을 적어도 한번 이상 실행시키는 것을 기준으로 하는 테스트 방법
: 실행된 분기가 몇 %인지 측정하는 커버리지.
조건 커버리지
: 전체 조건식의 결과와 관계없이 모든 기본 조건식의 결과 값이 참/거짓을 적어도 한번이상 실행시키는 것을 기준으로 테스트하는것.
* 조건커버리 100% 만족했다해서 분기커버리지가 100%만족된것이 아니면 그 반대도 마찬가지
조건/분기 커버리지
: 각 기본 조건식 및 전체 조건식의 결과 값이 참/거짓을 적어도 한번이상 실행시키는 것을 기준으로 하는 테스트
분기커버리지 + 조건커버리지
다중 조건 커버리지 (기본조건식 사이 모든 조합)
: 각 조건문 내의 기본조건식이 가능한 논리적인 조합이 적어도 한번 테스트 되도록 테스트케이스를 도출하는 방법
= TC에 의해 실행된 기본조건식의 참/거짓 조합의 수 모든 기본조건식의 참/거짓 모든 조합의 수
화이트박스 테스트는 어떤 경우에 사용하기 적합한가?
: 규모가 작으며 신뢰성이 높게 요구되는 임베디드 sw의 테스트
: 높은 신뢰성이 요구되는 주요 모듈만 선별적으로 테스트 하는 경우
: 자동화 테스트 도구 사용이 가능한 환경
화이트박스 테스트만 수행하면 테스트가 완료되는가?
: 화이트박스 테스트가 모든 것을 해결해주는것은 아니다.
요구사항에 기반한 명세기반 시험과 병행하는 것이 가장 좋다.
테스트
1. 소스코드 내의 모든 ()들을 한번 이상 실행하도록 테스트케이스를 설계하는 방법을 문장 커버리지라고 한다.
2. 각 분기가 a와 b를 적어도 한번 이상 실행 시키는 테스트 방법을 분기 커버리지라고 한다.
3. 전체 조건식의 결과와 관계없이 모든 ()의 결과 값이 참/거짓을 적어도 한번이상 실행시키는 테스트 방법을 조건 커버리지라고 한다.
4. 각 a조건식 및 b조건식의 결과 값이 참과 거짓을 적어도 한번 이상 실행시키는 테스트방법을 조건/분기 커버리지라고 한다.
5. 각 조건문 내 기본 조건식의 ()을 적어도 한번 이상 실행시키는 테스트방법을 다중 조건 커버리지라고 한다.
답
1. 문장
2. 참, 거짓
3. 기본조건식
4. 기본, 전체
5. 가능한 논리적인 조합
'개발 > QA' 카테고리의 다른 글
13. 블랙박스 테스트2 (0) | 2020.07.10 |
---|---|
12. 블랙박스 테스트 (0) | 2020.07.09 |
10. 테스트 실행 (0) | 2020.07.08 |
9. 테스트 분석 및 설계 (0) | 2020.07.08 |
8. 위험도 분석 (0) | 2020.07.08 |