1. 화이트박스 테스트

- 모듈의 원시 코드를 오픈시킨 상태에서 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계

- 설계된 절차에 초점을 둔 구조적 테스트

- 프로시저 설계의 제어 구조를 사용하여 테스트 케이스를 설계하며, 테스트 과정 초기에 적용

- 모듈 안의 작동을 직접 관찰

- 프로그램의 제어 구조에 따라 선택, 반복 등 분기점 부분들을 수행함으로써 논리적 경로를 제어한다

 

2. 화이트박스 테스트 종류

1. 기초 경로 검사(Base Path Testing) : 수행 가능한 모든 경로를 의미

- 대표적인 화이트박스 테스트

- 절차적 설계의 논리적 복잡성을 측정할 수 있게 해줌

- 테스트 결과는 실행 경로의 기초를 정의하는 데 지침으로 사용됨

 

2. 제어 구조 검사(Control Structure Testing)

- 조건 검사(Condition Testing) : 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법

- 루프 검사(Loop Testing) : 반복 구조에 초점을 맞춰 실시하는 기법

- 데이터 흐름 검사(Data Flow Testing) : 변서의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법

 

3. 화이트박스 테스트 검증 기준

1. 문장 검증 기준(Statement Coverage) - 소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스 설계

2. 분기 검증 기준(Branch Coverage) - 소스 코드의 모든 조건문이 한 번 이상 수행되도록 테스트 케이스 설계

3. 조건 검증 기준(Condition Coverage) - 소스 코드의 모든 조건문에 대해 조건이 참인 경우와 불인 경우가 한 번 이상 수행되도록 설계

4. 분기/조건 기준(Branch/Condition Coverage) - 모든 조건문과 각 조건문에 포함된 개별 조건식의 결과가 참/불인 경우가 한 번 이상으로 설계

 

검증 기준(Coverage) 종류
1. 기능 기반 커버리지 : 실제 테스트가 수행된 기능의 수 / 전체 기능의 수
2. 라인 커러비리 : 테스트 시나리오가 수행한 소스 코드의 라인 수 / 전체 소스 코드의 라인 수
3. 코드 커버리지 : 소스 코드의 구문, 분기, 조건 등의 구조 코드 자체가 얼마나 테스트 되었는지를 측정

 

4. 블랙박스 테스트

- aka 기능 테스트

- 요구사항 명세서를 보면서 테스트하는 것. 주로 구현된 기능을 테스트 함

- 소프트웨어 인터페이스에서 실시되는 테스트

- 부정확하거나 누락된 기능, 인터페이스 오류, 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능 오류, 초기화와 종료 오류 등을 발견하기 위해 사용

- 테스트 과정 후반에 적용

 

5. 블랙박스 테스트 종류

1. 동치 분할 검사(Equivalence Partitioning Testing)

     - 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사

     - 타당한 입력 자료와 아닌 자료를 균등하게 하여 테스트 케이스 정함

     - 입력 자료에 맞는 결과가 출력되는지 확인

 

2. 경계값 분석(Boundary Value Analysis)

     - 입력 자료에만 치중한 동치 분할 기법을 보완함

     - 입력 조건의 중간값보다 경계값에서 오류 발생 확률이 높음. 따라서 경계값을 테스트 케이스로 선정 및 검사

     

3. 원인-효과 그래프 검사(Cause-Effect Graphing Testing)

     - 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석하고 효용성이 높은 테스트 케이스를 선정 및 검사

 

4. 오류 예측 검사(Error Guessing)

     - 과거의 경험 / 확인자의 감각으로 테스트

     - 일련의 보충적 검사 기법, 데이터 확인 검사

 

5. 비교 검사(Comparison Testing)

     - 여러 버전의 프로그램에 동일한 테스트 자료를 제공하고 동일한 결과를 출력하는지 테스트