자격증/CSTS

Part02. 테스트 설계기법(제9장 구조 기반 테스트)

송윤슬 2023. 8. 23. 21:24

제9장 구조 기반 테스트

 

9.1 개요

- 구조 기반 테스트 : 프로그램 제어 흐름이나 자료 흐름 정보를 이용하여 테스트 케이스를 설계하는 방법


9.2 제어 흐름 그래프

- 제어 흐름 그래프 : 프로그램 구조를 매우 효과적으로 나타낼 수 있는 수단

  • 기본 블록 : 단일 진입점과 단일 진출점을 가진 일련의 연속적인 실행 가능한 문장들의 집합
  • 제어 흐름 : 기본 블록간의 실행 순서를 나타냄

- 시작 노드 : 입력 간선이 없는 노드

- 종료 노드 : 출력 간선이 없는 노드


9.3 구조 기반 테스트의 이해

- 모든 가능한 경로를 테스트하는 대신 일부 경로만 테스트

  • 문장 테스트
  • 분기 테스트
  • 조건 테스트
  • 다중 조건 테스트
  • MCDC 및 자료 흐름 테스트

9.4 문장 테스트

- 문장 테스트 : 프로그램의 모든 문장을 최소한 한 번은 행하도록 요구

- 단점 : 프로그램상에 존재하는 가능한 경우들을 모두 검증하지 못함

- 문장 커버리지 : 테스트 케이스 집합에 의해 문장 테스트가 어느 정도 이루어졌는지 정량적으로 알 수 있음

문장 커버리지


9.5 결정 테스트

- 결정 테스트 : 프로그램상에 나타난 모든 결정문의 결과가 참이 되는 경우와 거짓이 되는 경우를 최소한 한 번은 실행하도록 요구

- 결정 커버리지

결정 커버리지

- 결정 테스트는 문장 테스트를 포용한다.


9.6 조건 테스트

 - 조건 테스트 : 프로그램의 조건에 나타난 모든 조건이 true가 되는 경우와 false가 되는 경우 모두를 발생하게 하는 입력 데이터를 테스트 집합으로 사용할 것을 요구

- 조건 커버리지

조건 커버리지

- 조건 테스트와 결정 테스트는 서로 포용하지 않는다.


9.7 결정/조건 테스트

- 결정/조건 테스트 : 결정 테스트와 조건 테스트를 모두 만족하는 테스트 케이스 집합을 설계하도록 요구

- 결정/조건 커버리지

결정/조건 커버리지


9.8 다중 조건 테스트

- 다중 조건 테스트 : 프로그램의 결정들에 사용된 모든 조건의 조합을 테스트할 수 있는 입력 데이터들을 테스트 데이터 집합으로 선정

- 문장 테스트, 결정 테스트, 조건 테스트 및 결정 조건 테스트를 포용한다.

- 다중 조건 커버리지

다중 조건 커버리지


9.9 변형된 조건/결정 테스트(MCDC)

- 변형된 조건/결정 테스트 : 전체 결정의 평가에 영향을 미치는지 알아보기 위한 테스트 케이스 생성

- 결정/조건 테스트와 다른 점은 결정을 구성하는 각 조건이 독립적으로 결정의 결과에 영향을 미쳐야 함

- 독립적 : 결정을 구성하는 다른 조건의 값을 고정하고 해당 조건의 값만 변경해야 한다

- MCDC 커버리지

MCDC 커버리지


9.10 기본 경로 테스트

- 기본 경로 테스트 : 프로그램 경로 중에서 기본 경를 테스트하도록 요구

- 기본 경로 : 프로그램 나머지 경로를 만드는 데 기본이 되는 경로