1. 화이트박스 테스트
프로그램이 하얀색 투명한 박스에 담겨 있다면 그 안이 훤히 보일 거다.
이처럼 프로그램 내부 구조와 동작을 자세히 들여다보며 테스트하는 방법이다.
개발자 관점의 테스트다.
(1) 제어 흐름 테스트: if, case, loop 등 문장을 테스트.
프로그램 내 모든 문장을 적어도 한번 이상 실행하는 것을 기준으로 테스트한다.
(2) 데이터 흐름 테스트: 제어 흐름 그래프의 데이터 사용 현황(정의, 소멸, 사용)을 테스트.
어떤 한 변수의 정의부터 사용까지 값의 흐름을 테스트한다.
(3) (a) 조건 테스트: 전체 조건식의 결과와 상관없이 모든 기본 조건식의 결과 값이 참/거짓을 적어도 한번 이상 실행하는 것을 기준으로 테스트한다.
(b) 분기 테스트: 각 분기가 참/거짓을 적어도 한번 이상 실행하는 것을 기준으로 테스트한다.
(c) 조건/분기 테스트: 분기 테스트+조건 테스트
(4) 경로 테스트: 수행 가능한 모든 경로를 테스트한다.
2. 블랙박스 테스트
프로그램이 검은색 박스에 담겨 있다면 그 안이 안 보일 거다.
이처럼 프로그램 내부 구조를 모르는 상태에서 프로그램에 대한 요구사항과 결과물이 일치하는지 테스트하는 방법이다.
사용자 관점의 테스트다.
(1) 동등 분할 기법: 같은 영역 안에서 어떤 값을 선택했을 때 항상 같은 결과가 나올 것을 전제로 테스트한다.
테스트 대상의 입력이나 출력이 여러 영역으로 구분되는 경우에 적용하며, 테스트 강도가 낮아 실무에서 잘 안 쓴다.
(2) 경곗값 분석 기법: 분할 영역의 최댓값과 최솟값이 그 영역의 경곗값이 된다.
입력 조건의 중간 값 보다 경곗값에 오류가 발생할 확률이 보통 높다는 점에 착안해 경곗값을 포함해 테스트한다.
ex. 1~100 사이의 정수를 입력하라고 했을 때 1이나 100을 입력해 본다.
(3) 오류 예측 기법: 각 테스트 기법들이 놓치기 쉬운 오류들을 직감이나 경험에 기반해 테스트한다.
(4) 원인 결과 그래프 기법: 입력 데이터 간의 관계가 출력에 미치는 영향을 그래프로 표현한다.
(5) 의사결정 테이블 테스팅: 논리적인 조건이나 상황을 구현하는 시스템 요구사항을 도출하거나 내부 시스템 디자인을 문서화한다.
(6) 상태 전이 테스팅: 시스템의 상태가 변화는 것에 따라 테스트한다.
그 외에도 여러 가지 방법들이 있다.
'궁금해' 카테고리의 다른 글
QueryBox communications link failure 오류 (1) | 2022.09.20 |
---|---|
피보나치 수열 (0) | 2022.09.07 |
JavaScript Use strict란? (0) | 2022.09.06 |
JavaScript 곱셈 오류 (0) | 2022.08.21 |
자손 선택자와 span (0) | 2022.08.20 |