통합 테스트 / {테스트 케이스,테스트 시나리오,테스트 오라클,테스트 하네스}

2023. 2. 16. 14:12정처기 필기/2과목 - 소프트웨어 개발

통합 테스트

1. 상향식 통합 테스트

- 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법

- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터 필요

  * 클러스터 : 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합

 

과정

하위 모듈들을 클러스터로 결합 --> 드라이버 작성 --> 클러스터 단위로 테스트 --> 테스트 완료 후 클러스터는 프로그램 구조의 상위로 이동해 결합하고 드라이버는 실제 모듈로 대체됨

 

2. 하향식 통합 테스트

- 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트

- 깊이 우선 통합법, 넓이 우선 통합법 사용

- 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있음

- 상위 모듈에서는 테스트 케이스를 사용하기 어려움

 

3. 혼합식 통합 테스트 (센드위치식 테스트)

- 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용하는 최적의 테스트 방식 

 


테스트 케이스,테스트 시나리오,테스트 오라클,테스트 하네스

1. 테스트 케이스

- 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서

- 명세 기반 테스트의 설계 산출물에 해당

- 미리 설계해두면 테스트 오류 방지 및 테스트 수행 자원의 낭비를 줄일 수 있음

 

2. 테스트 시나리오

- 테스트 케이스를 적용하는 순서에 다라 여러 개의 테스트 케이스를 묶은 집합

- 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서

 

*** 작성 시 유의 사항

- 시스템별, 모듈별, 항목별 등과 같이 여러 개의 시나리오로 분리해 작성

- 사용자의 요구사항과 설계 문서 등을 토대로 작성

 

3. 테스트 오라클

- 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입해 비교하는 활동

 

** 특징

- 제한된 검증 : 모든 테스트 케이스에 적용할 수 없음

- 수학적 기법 : 값을 수학적 기법을 이용해 구할 수 있음

- 자동화 기능 : 프로그램 실행, 결과 비교, 커버리지 측정 등을 자동화할 수 있음

종류 설명
참 오라클 모든 테스트 케이스 입력 값에 대해 기대하는 결과를 제공하는 오라클, 발생된 모든 오류를 검출할 수 있음
샘플링 오라클 특정 테이스 케이스의 입력 값에 대해서만 결과를 제공하는 오라클
휴리스틱 오라클 샘플링 오라클 + 나머지 입력 값에는 추정으로 처리
일관성 오라클 변경이 있을 때 테스트 케이스의 수행 전과 후의 결과 값이 동일한지 확인하는 오라클

 

4. 테스트 하네스

구성 요소 설명
테스트 드라이버 시스템을 제어하거나 호출하는 컴포넌트를 대체하는 테스트 툴 또는 컴포넌트
테스트 스텁 스텁을 호출하거나 스텁에 의존적인 컴포넌트를 개발하거나 테스트할 때 사용된다.
테스트 슈트 테스트 대상 컴포넌트나 모듈 등 시스템에 사용되는 테스트 케이스의 집합
테스트 케이스 사용자의 요구사항을 충족했는지 확인하는 입력 값, 실행 조건, 기대 결과 등으로 만들어진 명세서
테스트 스크립트 자동화된 테스트 실행 절차에 대한 명세서
목 오브젝트 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체