셀테/2. 소프트웨어 공학

블랙박스, 화이트박스 테스트

SWExpert 2022. 10. 13. 22:47

I. 블랙박스, 화이트박스 테스트 개요

-. 테스트 설계 기법: 소프트웨어 테스트를 위하여 테스트 케이스와 테스트 데이터를 설계하고 명세화하는 기법

-. ISO/IEC/IEEE 29119-4에서 테스트 설계를 구조/경험/명세 기반으로 구분

-. 블랙박스 테스트 : 명세를 빠뜨리지 않고 테스트케이스화 하는 명세기반 테스트와 유사한 분야의 테스트 경험을 바탕으로 직감적으로 테스트 하는 경험기반 테스트 통칭

-. 화이트박스 테스트: 소프트웨어나 시스템의 구조를 중심으로 테스트하는 기법, 특정 커버리지를 달성하기 위한 테스트를 설계하고 케이스를 도출하기 위해 사용되는 기법

 

-. 설계 기법 분류 

 

II. 블랙박스, 화이트 박스 테스트

가. 블랙박스 테스트

  • 프로그램 구조를 고려하지 않고 시스템의 명세서를 기반으로 테스트케이스를 설계하여 테스트하는 기법
  • 요구사항 명세서, 설계 문서 등을 기반으로 테스트 케이스를 도출, 테스트를 실행하여 중대한 결함을 발견하는 테스트 기법
  • 주어진 명세(일반적으로 모델의 형태)를 바탕으로 테스트 케이스를 도출하는 것을 의미하며, 해당 테스트 케이스를 수행해서 중대한 결함이 없음을 보장하는 테스트 설계 기법
  • 공식적이거나 비공식적인 명세서 또는 모델을 기반으로 테스트 케이스를 생성하는 기법
  • SW 테스트 관련 국제표준(ISO/IEC 29119)에 따른 동적 소프트웨어 테스트 기법 중 명세기반 기법으로 소개된 테스트 기법은 등가분할, 분류 트리 기법, 경계값 분석, 상태 전이 테스트 등이 있음

구분 블랙박스 테스트 설명
명세기반기법 동등분할 입력 영역(domain)이 특정 관계에 따라 동등한 부집단으로 나뉘어 각 부집단에 대해 시험을 이룸
경계값 분석 변수의 입력 영역에 대한 경계 부근에 테스트케이스 지정. 많은 결함이 입력의 극한 값 주위에 집중되는 경향기반. 강건성(robustness) 시험은 변수의 입력 영역 바깥에서 테스트케이스를 선택하여 예상하지 못하거나 잘못된 입력에 대해 프로그램의 강건성을 검사함.
결정 테이블 분석 조건(입력)과 이에 따른 활동(출력) 간 논리적 연관성을 나타냄. 테스트케이스는 조건과 활동에 대한 모든 가능한 조합을 고려하여 추출. 이에 관계된 기법으로 원인-결과 그래프(cause-effect graph)가 있음.
상태 전이 테스팅 프로그램을 유한 상태 기계로 모델링하여, 이에 대한 상태와 변이를 다루기 위해 테스트가 선택됨
유즈케이스 테스팅 컴포넌트/단위 레벨 유즈케이스 테스팅
시스템 레벨 유즈케이스 테스팅
페어와이즈조합 테스팅 2개 이상 요소의 상호작용, 최소 한번씩 조합
직교배열 테스팅 페어와이즈 조합테스팅과 유사한 테스팅 기법이로, 차이점은 직교 배열의 각 행과 열이 페어와이즈 함
경험기반기법 탐색적 테스팅 접근법 테스트 목표와 차트를 기반으로 정해진 시간 내에 테스트 설계, 수행, 기록과 학습하는 테스팅 기법
오류추정 가능한 결함을 리스트업하고 이를 발견하기 위한 케이스 작성
체크리스트 문서 기반의 테스트 케이스를 작성시에도 체크리스트의 경험과 노하우를 반영하는 노력 요구

 

나. 화이트박스 테스트

-. 코드와 개발 설계 등의 소프트웨어 구현 정보를 기반으로 특정 커버리지를 달성하기 위해 테스트를 설계하고, 테스트 케이스를 도출하기 위해 사용되는 기법

구분 화이트박스 테스트 설명
단일 커버리지 구문 커버리지 모든 명령문을 적어도 한번 수행하는 테스트 케이스
결정 커버리지 전체 결정문이 적어도 한번은 참과 거짓의 결과를 수행하는 테스트 케이스
조건 커버리지 명령문 내의 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 테스트 케이스
복합 커버리지 조건/결정 커버리지 전체 결정문 뿐만 아니라 개별 조건식도 참 한번, 거짓 한번 결과가 되도록 수행하는 테스트 케이스
변경 조건/결정 커버리지 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 결정문에 독립적으로 영향을 주도록 하는 테스트 케이스
다중 조건 커버리지 모든 개별식 조건의 모든 조합을 고려한 커버리지

 

'셀테 > 2. 소프트웨어 공학' 카테고리의 다른 글

테스트 설계  (0) 2022.10.13
테스트 종류  (0) 2022.10.13
테스트 프로세스  (1) 2022.10.13
SW 테스트 설계 기법  (0) 2022.07.23