1. 화이트박스 테스트(White Box Test)
- 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적인 모든 경로를 테스트하는 방식으로 테스트 케이스를 설계하는 방법
- 설계된 절차에 초점을 둔 구조적 테스트로, 프로시저 설계의 제어 구조를 사용하여 테스트 케이스를 설계
- 테스트 과정의 초기에 적용되며, 모듈 안의 작동을 직접 관찰
- 원시 코드의 모든 문장을 한 번 이상 실행하면서 수행
- 프로그램의 제어 구조에 따라 선택/반복 등의 분기점 부분을 수행하며 논리적 경로를 제어함
2. 화이트박스 테스트의 종류
1) 기초 경로 검사
- 대표적인 화이트박스 테스트 기법으로, 테스트 케이스 설계자가 절차적 설계의 논리적 복합성을 측정 할 수 있게함
- 테스트 측정 결과는 실행 경로의 기초를 정의하는데 지침으로 사용
2) 제어 구조 검사
- 조건 심사(Condition Testing): 프로그램 모듈 내에 있는 논리적 조건을 테스트하기 위해 테스트 케이스를 설계하는 기법
- 루프 검사(Loop Testing): 반복 구조에 초점을 맞춘 테스트 케이스 설계 기법
- 데이터 흐름 검사(Data Flow Testing): 변수의 정의 및 사용 위치에 초점을 맞춰 테스트 케이스를 설계하는 기법
3. 화이트박스 테스트의 검증 기준
1) 문장 검증 기준(Statement Coverage)
- 소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스 설계
2) 분기 검증 기준(Branch C)
- 소스 코드의 모든 조건문이 한 번 이상 수행되도록 테스트 케이스 설계
3) 조건 검증 기준(Condition C)
- 소스 코드의 모든 조건문에 대해 조건이 T/F인 경우가 각각 한 번 이상 수행되도록 테스트 케이스 설계
4) 분기/조건 검증 기준
- 소스 코드의 모든 조건문과 각 조건문에 포함된 개별 조건식의 결과가 T/F인 경우가 각각 한 번 이상 수행되도록 테스트 케이스 설계
[검증 기준의 종류]
- 기능 기반 커버리지: 실제 테스트가 수행된 기능의 수/ 전체 기능의 수
- 라인 커버리지 : 테스트 시나리오가 수행한 소스 코드의 라인 수/ 전체 소스 코드 라인 수
- 코드 커버리지 : 소스 코드의 구문, 분기, 조건 등의 구조 코드 자체가 얼마나 테스트 되었는지 측정하는 방법
4. 블랙박스 테스트(Black Box Test)
- SW가 수행 할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트, 기능 테스트라고함.
- 사용자 요구사항 명세를 보면서 테스트하는 것으로, 구현된 기능을 테스트 한다.
- SW의 인터페이스에서 실시되는 테스트이다.
- 기능이나 인터페이스의 부정확, 누락, 오류 등을 발견하는 과정이며, 테스트의 후반부에 적용
5. 블랙박스 테스트의 종류
1) 동치 분할 검사(Equivalence Partitioning Testing)
- 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법
- 동등 분할 기법이라고 부름
- 프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 나눠 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법
2) 경계값 분석(Boundary Value Analysis)
- 입력 자료에만 치중한 동치 분할 기법을 보완하기 위한 기법
- 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용
- 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
3) 원인-효과 그래프 검사(Cause Effect Graphing Testing)
- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 후, 효용성 높은 테스트 케이스를 선정하여 검사하는 기법
4) 오류 예측 검사(Error Testing)
- 과거 경험이나 확인자의 감각으로 테스트하는 기법으로, 데이터 확인 검사라고도 부름
- 다른 블랙 박스 테스트 기법으로는 찾아 낼 수 없는 오류를 찾아내는 보충적 검사 기법
5) 비교 검사(Comparison Testing)
- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 확인하는 기법
'정보처리기사' 카테고리의 다른 글
★ 018 애플리케이션 테스트 관리[통합테스트] (0) | 2020.06.02 |
---|---|
★ 017 애플리케이션 테스트 관리[개발 단계에 따른 애플리케이션 테스트] (0) | 2020.06.02 |
★ 015 제품 SW 패키징[SW 버전 관리 도구] (0) | 2020.06.01 |
★ 014 제품 SW 패키징[디지털 저작권 관리(DRM)] (0) | 2020.06.01 |
★ 013 데이터 입출력 구현[데이터저장소/데이터베이스/DBMS] (0) | 2020.06.01 |