테스트 설계 기법
테스트를 설계하기 전에 테스트를 분석하는 과정에서 테스트 조건을 식별하기 위해 테스트 베이시스를 분석한다.
테스트 조건이란 하나 이상의 테스트 케이스로 확인 가능한 항목 또는 이벤트이다. 예를 들어서 트랜젝션, 품질 특성 등
테스트 설계 과정에서 테스트 설계 기법을 이용하여 테스트 케이스, 테스트 데이터를 설계한다.
테스트 케이스 구성요소
- 입력값의 묶음
- 실행 사전 조건
- 기대 결과(결과값, 데이터 상태변화, 다른 테스트의 결과)
- 실행 사후 조건
테스트 설계 기법을 블랙박스 기법과 화이트박스 기법으로 나뉘는 것은 전통적이다.
블랙박스 기법과 화이트 박스 기법의 차이점은 무엇일까 ??
- 블랙박스 기법: 테스트 대상의 내부 구조(코드,상세 설계 정보) 등을 보지 않고 경험을 바탕으로 기능적, 비기능적 테스트 케이스를 도출한다. 즉 입력값과 결과값을 확인한다. (명세 기반 기법 / 경험 기반 기법)
- 화이트박스 기법: 블랙박스와는 달리 내부 구조(코드, 상세 설계 정보)를 중심으로 테스트 케이스를 설계한다. (구조 기반 기법) 커버리지를 도출한다.
명세 기반/블랙박스 기법
- 동등 분할
- 대상의 입력값은 입력의 결과로 나타날 결과값이 동일한 경우 하나의 동등 분할 클래스로 간주하고 이 클래스 내 입력값은 내부적으로 같은 방식으로 처리 됨을 나타낸다.
- 이는 유효한 데이터, 잘못된 데이터, 거부할 데이터 모두에 가능하다. 입력값 외에도 출력값, 시간값, 내부값, 인터페이스 파라미터 대해서도 정의 가능하다.
- 이의 용도는 입력값 또는 출력값에 대한 특정 커버리지를 달성하기 위해 사용된다.
- 경계값 분석
- 동등 분할의 경계 부분에 입력값에서 결함이 내부 입력 값에서보다 발견될 확률이 높다는 것을 이용하여 경계값도 포함하여 테스팅한다.
- 해당 분할 영역의 최대값 최소값이 바로 경계값이다.
- 결정 테이블 테스팅
- 결정 테이블은 논리적 조건이나 상황을 구현하는 시스템 요구사항을 도출하거나 내부 시스템 디자인을 문서화하는 유용한 도구이다. 즉 비지니스 규칙을 문서로 만드는데 유용하다.
- 결정 테이블 작성시 명세서를 분석하고 컨디션과 시스템의 조건은 식별된다. 즉 입력조건과 동작을 T/F로 나타내어 각 예상 결과. 심지어 조합에 대해서 예상 결과 까지 포함한다. 테이블의 컬럼이 비지니스 규칙과 대응된다.
- 테이블의 컬럼은 조건의 조합을 정의한다. 컬럼당 하나의 테스트 케이스를 생성한다 .
- 상태전이 테스팅
- 상태전이 다이어그램을 통해 표현한다.
- 즉 상태와 상태 관계, 전이, 상태 전이를 일으키는 이벤트와 입력값, 상태 변화로 유발되는 동작을 정의한다.
- 전형적인 상태의 순서를 커버하는 방식, 모든 상태를 커버하는 방식, 모든 상태전이를 실행하는 방식, 특정 상태전이를 실행하는 방식으로 나뉜다.
- 유즈케이스 테스팅
- 유즈케이스는 액터와 액터 사이 상호작용, 해당 상호작용은 고객에게 결과값을 제공한다.
- 성공적으로 수행하기 위해 전제 조건과 수행 완료 후 후속조건을 통해 종료된다.
- 시나리오, 대체 흐름, 기본 흐름으로 구성된다.
- 인수테스트를 설계할 때 유용하다.
구조 기반/화이트박스 기법
시스템이나 소프트웨어의 구조를 통해 테스팅하는 것이다.
- 컴포넌트 레벨: 구문, 결정, 분기
- 통합 레벨: 한 모듈이 다른 모듈을 호출하는 관계를 도식화한 콜 트리
- 시스템 레벨: 메뉴 구조, 비지니스 프로세스, 웹페이지 구조
구문 테스팅과 커버리지
테스트 케이스 묶음에 의해 실행한 구문이 몇 퍼센트인지 측정한다.
구문 테스팅은 구문 커버리지를 늘리기 위해 테스트 케이스를 도출한다.
구문 커버리지 = 테스트 케이스가 커버하는 실행 가능 구문 수 / 테스트중 모든 실행 가능 구문의 수
결정 테스팅과 커버리지
분기문과 관련이 있다.
테스트 케이스 묶음에 의해 실행된 조건문 분기가 몇 퍼센트인지 측정한다. ( if 구문의 참 거짓)
결정 커버리지 = 테스트 케이스가 커버하는 결과값들의 수 / 테스트중 모든 가능한 결과값의 수
경험 기반 기법
테스터가 다루었던 유사 응용 프로그램이나 기술에서의 경험으로 테스트 케이스를 도출하는 기법이다.
기본적으로 오류 추정이다. 경험에 의해 결함을 예측한다.
즉 결함을 예측 하고 가능한 결함을 모두 나열한 후 이 오류를 공격하도록 테스트를 설계한다. 이를 결점 공격이라 불른다.
'Test Engineer & QA' 카테고리의 다른 글
테스트- 정적기법 (0) | 2019.08.05 |
---|---|
테스트 - 테스트유형 (0) | 2019.08.05 |
테스트- 테스트 레벨 (0) | 2019.08.03 |
테스트 프로세스 (0) | 2019.08.03 |