소프트웨어공학

테스트 설계기법_동적테스트_명세기반(블랙박스)_ 동등분할, 경계값분석, 의사결정테이블, 상태전이, 유즈케이스, 분류트리, 페어와이즈, 클래스 태스팅 기법

스윙스윙 2021. 9. 22. 16:35

▣ 테스트 설계기법_동적테스트_명세기반(블랙박스)_ 동등분할, 경계값분석, 의사결정테이블, 상태전이, 유즈케이스, 분류트리, 페어와이즈

- 프로그램 구조를 고려하지 않고 프로그램의 요구 사항 명세서를 기반으로 테스트 케이스를 선정하여 테스트하는 기법

- Black Box Test : 시스템 내부는 Black Box로 간주

- Data Driven: 입출력 데이터 흐름에 초점

 

기법 개념도 내용
동등분할
(Equivalence
Class Partitioning)
대표값을 이용 테스트 케이스도출 입력 정보를 유사한 특징을 가진 클래스로 분류, 각 클래스의 대표 테스트 케이스를 작성하는 방법
- 클래스는 유한개의 독립적 집합으로 분리
- 동일한 입력에 대해서는 동일한 결과
- 출력 결과에 대해서도 동등분할
경계값 분석
(Boundary Value Analysis)
결함은 경계값 근처에서 많이 발생한다는 점을 이용 입력 조건의 중간 값보다 경계 값에서 에러 발생 확률이 높다는 이론을 이용
- 경계치에 치중하여 출력 유형 고려
- 동등 분할 후 분할된 클래스의 경계값에 근거하여 테스트 케이스 작성
의사결정
테이블
(Decision Table
Testing)
조건에 따라 참/거짓으로 표현 명세서가 논리적인 관계를 가지고 있는 경우 대상을 조건과 결과로 구분하여 조합 관계를 고려한 테스트 방법
- 주요한 의사 결정 요소들을 표로 만들고 요소들간의 결합에 의한 테스트 케이스 설계, 결정요소 조합을 통해 테스트 시나리오 도출

입력조건과 동작은 참과 거짓으로 표현(대부분)
상태전이
(State transition testing)
전이 트리 구성도 상태 전이 다이어그램 기반으로 시스템 동작을 확인하는 기법
테스트 대상 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 테스트 케이스로 구성하는 기법
- 상태, 전이, 이벤트, 가드, 액션 사이의 관계를 검증하는 기법
- Embedded 소프트웨어 테스트에 유용

상태 : 하나 이상의 이벤트를 기다리는 시스템 모드
전이 : 이벤트에 의해 한가지 상태에서 다른 상태로의 변경
이벤트 : 상태의 전이를 유발하는 요인
가드 : 이벤트가 발생하는 조건
액션 : 상태전이에 따라서 유발되는 동작

유즈케이스
(Usecase testing)
Use case명세서를 이용한 테스트 케이스 설계 유즈케이스 명세서를 기반으로 테스트 시나리오를 구성하여 테스트하는 방법
- 고객의 기능적 요구사항대로 시스템이 개발되었는지 검증 가능
- 이벤트 흐름의 경로 기반 테스트
- 개발 초기부터 테스트 케이스 작성 가능
분류 트리 동등 분할 테스트를 분류 트리를 이용하여 체계적으로 수행 흐름을 트리 구조로 표현하여 테스트 케이스 설계
- 경험기반 경계값 분석 등을 활용조합 기반의 케이스 도출
- 입력변수들 간의 조합
- 트리 구조의 시각화
페어와이즈
조합
(Pairwise
testing)
Test case 의 최소화 입력 데이터의 파라미터 값들이 다른 파라미터의 값과 최소 한번씩은 조합을 이루도록 테스트하는 방법
- 조합 테스트 기법으로 조합의 개수를 보장성 있게 부여
- 대부분의 결함이 2개의 요소(Pair)의 상호 작용에 기인한다는 것에서 착안

 

■ 객체지향 소프트웨어 개발시 클래스 태스팅 기법

슬라이싱 기법 클래스 내부의 일정 단위를 슬라이스라고 하는데 주로 멤버변수와 이를 사용하는 멤버함수를 의미함
클래스는 슬라이스의 조합이므로 슬라이스의 시퀀스를 생각하여 테스트 케이스를 만드는 것
MM-Path기법 MM이란 메소드/메시지를 의미함
MM-Path란 한 메시지와 연결된 메소드들의 호출 시퀀스를 의미하며 시퀀스 조합들을 도출하여 테스트 케이스를 만드는 것
상태기반기법 객체의 상태가 변경(전이)되는 순간들을 조합하여 테스트 케이스를 만드는 것

 

 


2018년 30번

정답 : 3번

여기서 라디오 버튼 제한 조건을 주었기 때문에 15개가 아닌 10개로 분할 됨

 

■ 명세기반 테스트(동등 클래스 분할 기법)

정상동작이 예상되는 범위는 균일하게 나눔

분단위의 반올림이 있기 때문에 해당 테스트 범위를 대표하는 값들이 정상적으로 이루어지는지 확인

경력/신입사원 가각 5개 범주(제한조건 때문)

■ Each choice vs All combination

 


2019년 27번

정답 : 3번

엘리베이터의 상태(정지상태 도는 이동중 상태)에 따라 버튼의 명령어에 따른 동작(문 개폐 또는 명령무시)이 달라지는 경우에 적용할 수 있는 기법은 상태 전이 테스팅임

 

상태전이 테스팅(State Transition Testing)

테스트 대상 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 테스트 케이스로 구성하는 테스트 설계기법

주어진 명세(일반적으로 모델의 형태)를 바탕으로 테스트 케이스(Test Case)를 도출하는 명세기반 테스트 설계기법의 한 종류

 

구분 설 명 표기법
상태 하나 또는 그 이상의 이벤트를 기다리는 시스템의 모드 원으로 표기, 원 안에 상태명 표기
전이 이벤트에 의해 한가지 상태에서 다른 상태로의 변경 화살표 형태의 링크로 표시하며 상태와 상태를 연결함
 이벤트 상태의 전이를 유발하는 요인 화살표에 이름과 값으로 표시
가드 이벤트가 발생하는 조건 이벤트 오른편의 [ ]안에 조건이나 값으로 표시
액션 상태의 전이에 따라서 유발되는 동작 화살표에 이름과 값으로 표시

 


2011년 41번

정답 : 4번

감마테스트는 SW 제품 인도 후 사용자가 수행하는 테스트 임

슬라이싱 기법 클래스 내부의 일정 단위를 슬라이스라고 하는데 주로 멤버변수와 이를 사용하는 멤버함수를 의미함
클래스는 슬라이스의 조합이므로 슬라이스의 시퀀스를 생각하여 테스트 케이스를 만드는 것
MM-Path기법 MM이란 메소드/메시지를 의미함
MM-Path란 한 메시지와 연결된 메소드들의 호출 시퀀스를 의미하며 시퀀스 조합들을 도출하여 테스트 케이스를 만드는 것
상태기반기법 객체의 상태가 변경(전이)되는 순간들을 조합하여 테스트 케이스를 만드는 것

 


2011년 42번

정답 : 1번, 2번

의사결정표는 처리 규칙을 기술하는데 이용되는 표

모든 조건과 결과를 가로와 세로의 2차원 테이블에 표시

 

의사결정표는 조건(condition)과 행동(action)의 2가지 부분으로 이루어져 있음

조건은 변수나 요인들이고, 행동은 파생되는 결과나 행위를 말함

 

지문이 길지만, not과 and의 2연산을 이해하면 쉽게 풀수 있음

A2의 조건을 단순화 한것을 고르는 문제

1) not W -> 식1~식4 모두 1이 됨 

2) (not W) and X -> 식1~식4 모두 1이 된 W를 X의 모든 1과 and 연산하면 모두 1이됨

 


2016년 35번

정답 : 4번

화이트박스(구조기반), 블랙 박스(명세기반) 테스트 구분 문제임. (소스를 볼수 있느냐 없느냐?)

동적테스트_명세기반(블랙박스)_ 동등분할, 경계값분석, 의사결정테이블, 상태전이, 유즈케이스, 분류트리, 페어와이즈, 클래스 태스팅 기법

 

결정(decision)테스팅은 화이트 박스(white box)테스팅 기법, 각 분기별로 TRUE/FALSE가 적어도 한번 이상 수행되도록 테스트 케이스를 설계하는 것임. 구조기반 테스트(소스 볼수 있음)

 

조합(Pairwise) 테스팅 : 입력 파리미터의 각 쌍의 개별 조합을 실행하기 위한 테스트 케이스를 설계하는 블랙박스 테스트 설계 기법, 합리적으로 일정 수준의 보장성을 확보하면서 조합(테스트 케이스)를 줄여주는 테스트 방법

 


2020년 29번

정답 : 2번

C1-C2-C2-C1 또는 C2-C1-C1-C2 임

 

모든 조합 테스트 2*2*2 =8임

페어와이즈 조합 테스팅은 각쌍(pair, A-B, A-C, B-C)들 기준의 조합임

 


2021년 44번

정답 : 1번

all combination testing, each choice testing