본문 바로가기
CSTS (일반등급)

CSTS 9장 구조 기반 테스트

by record2840 2025. 5. 22.

제어 흐름 그래프
기본블록(Basic block) : 모두 함께 실행 or not. 기본 블록은 각각 제어 흐름 그래프의 노드가 되며 박스로 표시.
제어흐름(Control flow): 기본 블록 간의 실행 순서. 화살표로 표시

문장테스트
모든 문장을 최소한 한 번은 행하도록 요구한다.

 

1.     테스트 대상 프로그램에 해당하는 제어 흐름 그래프를 작성한다.
2.     모든 실행 가능한 기본 블록들을 지나가는 프로그램 경로 집합을 식별한다.
3.     프로그램 경로 집합에 있는 각 프로그램 경로에 대해 다음을 수행한다.
 -
경로를 실행하는 입력 데이터를 식별한다.
 -
명세 등에서 해당 입력에 대한 기대 출력을 식별한다.

 

문장 커버리지
TC
에 의해 문장 테스트가 어느 정도 이루어졌는지 정량적으로 알 수 있다.

 

결정 테스트

(= 분기 테스트)
모든 결정문의 결과가 참이 되는 경우와 거짓이 되는 경우를 최소한 한 번은 실행되도록 요구

1.     테스트 대상 프로그램에 해당하는 제어 흐름 그래프를 작성한다.  
2.     아직 실행되지 않은 결정의 결과에 도달하는 프로그램 경로 집합을 식별한다.
3.     프로그램 경로 집합에 있는 각 프로그램 경로에 대해 다음을 수행한다.
 -
경로를 실행하는 입력 데이터를 식별한다.
 -
명세 등에서 해당 입력에 대한 기대 출력을 식별한다.

4.     2~3을 모든 결정의 결과가 실행될 때까지 반복한다.

 

 

테스트 요건 간의 관계는 포용 관계를 서로 비교할 수 있다.
결정 테스트는 문장 테스트를 포용한다.

 

조건 테스트
조건 논리 연산자 and or 를 포함하지 않은 Boolean , 관계 연산자(=, <>, <=) 만을 사용 Boolean 변수로만 이루어짐
결정조건들이 논리 연산자를 사용하여 구성된 Boolean
조건 테스트는 프로그램의 조건에 나타난 모든 조건이 true 가 되는 경우와 false가 되는 경우 모두를 발생하게 하는 입력 데이터를 테스트 집합으로 사용할 것을 요구한다.

 

조건 테스트는 결정 테스트를 어느 쪽도 포용하지 않는다.
 

결정/조건 테스트
결정 테스트와 조건 테스트를 모두 만족하는  테스트 케이스 집합을 설계하도록 요구한다.
각 기본 조건식 및 전체 조건식의 결과값이 참과 거짓을 적어도 한 번 이상 실행시키는 것을 기준으로 한다.
테스트 케이스 수트에 의해 전체 조건식과 기본 조건식이 몇 %인지 측정

 

다중 조건 테스트 (Multiple Condition Test)
프로그램의 결정들에 사용된 모든 조건의 조합을 테스트할 수 있는 입력 데이터들을 테스트 데이터 집합으로 선정한다.
다중 조건 테스트는 문장 테스트, 결정 테스트, 조건 테스트 및 결정/조건 테스트를 포용한다.
구조 기반 테스트 커버리지 중 테스트 강도가 가장 높으며, 기본 조건식의 가능한 논리적인 조합이 적어도 한번 테스트 되도록 테스트 케이스를 도출한다.

 

 

변형된 조건/결정 테스트 (MCDC)
조건 테스트와 결정 테스트를 모두 만족해야 한다.
결정을 구성하는 각 조건이 독립적으로 결정의 결과에 영향을 미쳐야 한다.
(
독립적 →
 결정을 구성하는 다른 조건의 값은 고정하고 해당 조건의 값만 변경해야 한다.)

 

다중 조건 테스트를 만족하는 테스트 집합 (외우기) -> P 187 다시 읽기

테스트케이스 입력 기대출력 X>0 && Y>0 Z>10
X Y Z X>0 Y>0 Z>10
1 1 1 1 20 true true false
2 -1 1 1 10 false true false
3 1 0 0 10 true false false
4 1 0 20 20 true false true

 

테스트 케이스 1, 2, MCDC 커버리지는 (1/3)*100 = 34%

기본 경로 테스트
기본 경로는 프로그램 나머지 경로를 만드는 데 기본이 되는 경로
목적 프로그램의 모든 경로를 선형적 조합으로 표현할 수 있는 독립적인 경로 집합을 구하는 것이다.

반응형