제어 흐름 그래프
기본블록(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%
기본 경로 테스트
기본 경로는 프로그램 나머지 경로를 만드는 데 기본이 되는 경로
목적 – 프로그램의 모든 경로를 선형적 조합으로 표현할 수 있는 독립적인 경로 집합을 구하는 것이다.
'CSTS (일반등급)' 카테고리의 다른 글
CSTS 11장 테스트 프로세스 개요 (3) | 2025.05.22 |
---|---|
CSTS 10장 명세 기반 테스트 (2) | 2025.05.22 |
CSTS 8장 정적테스트 (1) | 2025.05.22 |
CSTS 7 장 (정리중) (0) | 2025.05.22 |
CSTS 6장 소프트웨어 생명 주기 모델과 테스트 (0) | 2025.05.22 |