- 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법이다.
- 화이트박스 테스트는 설계된 절차에 초점을 둔 구조적 테스트로 프로시저 설계의 제어 구조를 사용하여 테스트 케이스를 설계하며, 테스트 과정의 초기에 적용된다.
- 모듈 안의 작동을 직접 관찰한다.
- 원시 코드(모듈)의 모든 문장을 한 번 이상 실행함으로써 수행된다.
- 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어한다.
- 화이트 박스 테스트의 종류에는 기초 경로 검사, 제어 구조 검사 등이 있다.
기초 경로 검사(Base Path Testing) - 대표적인 화이트박스 테스트 기법이다.
- 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법으로 테스트 측정 결과는 실행 경로의 기초를 정의하는 데 지침으로 사용된다.제어 구조 검사(Control Structure Testing) - 조건 검사(Condition Testing): 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
- 루프 검사(Loop Testing): 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 데이터 흐름 검사(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 화이트박스 테스트의 검증 기준은 테스트 케이스들이 테스트에 얼마나 적정한지를 판단하는 기준으로, 문장 검증 기준, 분기 검증 기준, 조건 검증 기준, 분기/조건 기준이 있다.
문장 검증 기준(Statement Coverage) 소스코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스 설계 분기 검증 기준(Branch Coverage) 결정 검증 기준(Decision Coverage)이라고도 불리며, 소스 코드의 모든 조건문에 대해 조건이 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스 설계 조건 검증 기준(Condition Coverage) 소스코드의 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한번 이상 수행되도록 테스트 케이스 설계 분기/조건 기준(Branch/Condition Coverage) 분기 검증 기준과 조건 검증 기준을 모두 만족하는 설계로 조건문이 True인 경우와 False인 경우에 따라 조건 검증 기준의 입력 데이터를 구분하는 테스트 케이스 설계
- 블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로 기능 테스트라고도 한다.
- 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.
- 소프트웨어 인터페이스에서 실시되는 테스트이다.
- 부정확하거나 누락된 기능, 인터페이스 오류, 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능 오류, 초기화와 종료 오류 등을 발견하기 위해 사용되며, 테스트 과정의 후반부에 적용된다.
- 블랙박스 테스트의 종류에는 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사 등이 있다.
동치 분할 검사(Equivalence Partitioning Testing, 동치 클래스 분해) - 입력 자료에 초점을 맞춰 테스트 케이스(동치 클래스)를 만들고 검사하는 방법으로 동등 분할 기법이라고도 한다.
- 프로그램의 입력 조건에 타당한 압력 자료와 타당하지 않은 입력자료의 개수를 균등하게 하여 테스트 케이스를 정하고 해당 입력자료에 맞는 결과가 출력되는지 확인하는 기법이다.경계값 분석(Boundary Value Analysis) - 입력자료에만 치중한 동치 분할 기법을 보완하기 위한 기법이다.
- 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법이다.원인-효과 그래프 검사(Cause-Effect Graphing Testing) 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법이다. 오류 예측 검사(Error Guessing) - 과거의 경험이나 확인자의 감각으로 테스트하는 기법이다.
- 다른 블랙박스 테스트 기법으로는 찾아낼 수 없는 오류를 찾아내는 일련의 보충적 검사 기법이며, 데이터 확인 검사라고도 한다.비교 검사(Comparison Testing) 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법이다.
출처: 2024 시나공 정보처리기사 필기 기본서