4.1 테스트 기법의 종류
4.1.1 테스트 기법의 종류와 특성
>블랙박스, 화이트박스, 경험 기반으로 분류
4.2 블랙박스 테스트 기법
4.2.1 동등 분할(Equivalence Partitioning)
: 특정 파티션의 모든 변수는 동일한 방식으로 처리된다는 가정으로 파티션에 데이터 분할
>유효값(valid values) : 컴포넌트, 시스템에 입력되는 값. 이를 포함하는 동등한 파티션을 "유효 동등 분할"이라 한다.
>비유효값(invalid values) : 컴포넌트, 시스템이 거부하는 값. 이를 포함하는 동등한 파티션을 "비유효 동등 분할"이라 한다.
-모든 테스트 레벨에 적용 가능
-분할은 테스트 대상과 관련된 모든 데이터 요소에 대해 식별할 수 있다.
-필요한 경우 모든 파티션은 하위파티션으로 나눌 수 있다.
-모든 값은 동등 분할에 포함되어야 하며 하나의 값은 하나의 동등분할에만 속해야 한다.
-비유효 동등 분할을 TC로 만들 때 장애가 가려지는 것을 방지하기 위해 개별적으로 테스트, 다른 비유효 동등 분할과 조합하지 않을 것.
-100% 커버리지 달성을 위해서는 식별한 모든 분할의 각 분할에서 최소 한 개의 값을 사용해 TC 작성.
(최소한 한 개의 값으로 테스트한 동등 분할 수) / (식별한 모든 동등 분할의 수) X 100
4.2.2 경계값 분석(Boundary Value Analysis)
: 동등 분할의 확장 형태. 각 파티션 순서화, 숫자/연속 데이터로 구성된 경우에만 적용 가능
: 분할의 최소값과 최대값(첫번째/마지막 값)은 해당 분할의 경계값이 된다.
-동등 분할의 경계에서 동작이 잘못될 확률 > 동등 분할 중간 값에서 잘못될 확률
- **명시된 경계값, 구현한 경계값 모두 의도했던 값보다 높거나 낮게 설정, 모두 생략 혹은 의도치 않은 추가가 있을 수 있다.
-모든 테스트 레벨에 적용 가능
- 숫자의 범위와 연관된 요구사항 테스트에 적용
- (테스트한 경계값의 수) / (식별한 모든 경계값의 수) X 100
4.2.3 결정 테이블 테스팅(Decision Table Testing)
: 시스템이 구현해야 하는 복잡한 비즈니스 규칙을 기록하기에 좋은 방법
-시스템의 조건(입력)과 예상 동작(출력)을 식별 > 테이블의 행(rows)을 형성, 조건은 위쪽/기대결과는 아래쪽
열(column)은 하나의 결정 규칙
-일반적인 표기법
조건 : Y, 조건이 참이라는 것을 의미 (T, 1 등으로 표현 가능)
N, 조건이 거짓이라는 것을 의미 (F, 0 등으로 표현 가능)
-, 조건의 값이 중요하지 않다는 것을 의미 (N/A로 표기할 수 있음)
기대결과 : X, 행동이 일어난다는 것을 의미(Y, T, 1로 표현 가능)
공백(blank), 행동이 일어나지 않음을 의미(-, N, F, 0로 표현 가능)
-일반적인 최소 커버리지 기준은 테이블의 결정 규칙당 최소 한 개의 테스트 케이스를 작성하는 것(모든 조건 조합 포함)
-중요한 모든 조건 조합을 식별하는 데 도움
-요구사항의 누락된 부분을 찾는 데 도움
-모든 테스트 레벨에 적용 가능
-(최소 한 개의 TC로 테스트한 결정 규칙의 수) / (식별한 모든 결정 규칙의 수) X 100
4.2.4 상태 전이 테스팅(State Transition Testing)
: 소프트웨어의 가능한 상태 뿐만 아니라 소프트웨어가 어떻게 진입하고 빠져나오는지에 대한 전이 방법
-이벤트(사용자가 입력 필드에 값을 입력) -> 전이
-하나의 이벤트에 의해 두 개 이상의 다른 전이/특정 행동 발생 가능
*상태 전이 테이블 : 상태 간의 모든 유효 전이와 잠재적인 비유효 전이, 유효 전이와 관련된 이벤트, 결과 조치
**상태 전이 다이어그램 : 유효한 전이만 표시(비유효 전이는 비표시)
-메뉴 기반 애플리케이션에 사용, 임베디드 소프트웨어 업계에서 사용
-(식별한 상태나 전이 중 테스트된 수) / (식별한 모든 상태, 전이의 수) X 100
4.2.5 유스케이스 테스팅(Use Case Testing)
: 도출한 테스트가 소프트웨어 항목 간의 상호작용을 설계하는 특정 방법
-소프트웨어 기능에 대한 요구사항 통합
*유스케이스 : 액터(actor)와 대상(적용하는 컴포넌트나 시스템) 간의 관계
-각 유스케이스는 대상이 한나 이상의 액터와 협력하여 수행할 수 있는 동작 명시
-유스케이스를 표현하는 방법은 다양함
>시각화 : 워크플로우, 활동 다이어그램, 비즈니스 프로세스 모델
-예외 동작 및 오류처리를 포함한 기본 동작의 가능한 변형이 포함 > 테스트는 정의한 동작을 실행하도록 설계
-(테스트한 유스케이스 동작 수) / (모든 유스케이스 동작 수)
4.3 화이트박스 테스트 기법
: 테스트 대상의 내부 구조를 기반으로 한다.
4.3.1 구문 테스팅과 커버리지
: 코드의 잠재적으로 실행 가능한 구문을 실행
-(테스트로 실행한 구문의 수) / (테스트 대상의 모든 실행 가능한 구문의 수)
4.3.2 결정 테스팅과 커버리지
: 코드에 존재하는 결정문을 실행하고 그 결과에 따라 실행되는 코드를 테스트
-TC는 결정문에서 시작되는 제어 흐름을 따라 실행
-(테스트로 실행된 결정문 결과의 수) / (테스트 대상의 가능한 모든 결정문 결과의 수) x 100
4.3.3 구문 및 결정 테스팅의 가치
: 구문 테스팅은 결정 테슽팅보다 커버리지가 낮다
: 구문 커버리지는 다른 테스트에 의해 실행되지 않은 코드의 결함을 찾는 데 도움
: 결정 커버리지는 다른 테스트가 참과 거짓 결과 모두를 테스트하지 않은 코드의 결함을 찾는 데 도움
-100% 결정 커버리지는 100% 구문 커버리지를 보장 but 역은 성립하지 않는다.
4.4 경험 기반 테스트 기법
: TC는 테스터의 기술 역량, 직관, 유사한 애플리케이션과 기술에 대한 경험 기반으로 도출. '
-체계적인 다른 기법으로는 쉽게 찾아내기 어려움 테스트 식별에 도움.
-커버리지 평가가 어렵거나 측정이 불가능한 경우 있음''4.1.1
4.4.1 오류 추정(Error Guessing)
: 애플리케이션의 과거 동작 / 발생하기 쉬운 오류의 유형 / 다른 애플리케이션에서 발생한 장애를 포함한 테슽터의 지식을 기반으로 오류, 결함 및 장애 발생을 예측하는 데 적용하는 기술
4.4.2 탐색적 테스팅(Exploratory Testing)
: 사전에 정의되지 않은 비공식 테스트를 테스트 실행 중 동적으로 설계, 실행, 기록하고 평가.
-테스트 결과는 컴포넌트나 시스템에 대해 더 많이 학습하고 더 많은 테스트가 필요한 영역에 대한 테스트를 작성하는 데 활용
-세션 기반 테스팅(탐색적 테스팅을 정해진 시한동안 수행)을 사용하여 활동 구성 ; 테스터는 테스트 차터를 활용해 테스팅 방향을 설정. 그 과정 중 테스트 세션 시트에 수행 단계와 발견 사항 기록.
-탐색적 테스팅은 명세가 충분하지 않거나 적은 경우, 테스팅에 상당한 시간적 압박이 있을 때 가장 유용.
-다른 보다 공식적인 테스팅 기법을 보완하는 데에도 유용.
4.4.3 체크리스트 기반 테스팅(Checklist-based Testing)
: 체크리스트에 기록된 테스트 컨디션을 커버하기 위해 테스터가 테스트를 설계, 구현, 실행
-새로운 체크리스트 작성/기존 체크리스트 확장 가능
-경험, 사용자에게 무엇이 중요한지에 대한 지식/소프트웨어가 실패하는 이유, 방법에 대한 이해 기반으로 작성
'QA.테스팅' 카테고리의 다른 글
[ISTQB] 제 6장 테스트 지원 도구 (0) | 2023.12.12 |
---|---|
[ISTQB] 제 5장 테스트 관리 (0) | 2023.12.11 |
[ISTQB] 제 3장 정적 테스팅(static testing) (0) | 2023.12.11 |
[ISTQB] 제 2장 소프트웨어 개발 수명주기와 테스팅 (1) | 2023.12.11 |
[ISTQB] 제1장 테스팅의 기초 (0) | 2023.12.10 |