1. 단위테스트(Unit Test)

  • 테스트가 가능한 최소 단위로 나누어진 소프트웨어(모듈, 프로그램, 객체,클래스 등) 내에서 결함을 찾고 그 기능을 검증하는 것
  • 구현 단계에서 각 모듈이 구현된 후에 단위 테스트를 수행
  • 모듈을 단독적으로 실행할 수 있는 환경이 필요
    • 테스트 드라이버(Test driver)
    • 테스트 스텁(Test stub)

 

1) 테스트 드라이버

  • 테스트 대상이 되는 모듈을 호출하여 준비한 테스트 데이터를 제공하고 모듈의 실행결과를 받는 모듈
  • 이란적으로 상향식 테스트에서 아직 통합되지 않은 상위 컴포넌트의 동작을 시뮬레이션 하기 위해 사용
    1. 테스트 케이스가 저장되어 있는 파일이나 데이터베이스로부터 하나의 테스트케이스를 읽는다.
    2. 읽은 테스트 케이스를 입력 인자로 사용하여 테스트 대상이 되는 모듈을 호출
    3. 모듈의 실행 결과를 저장하고 다음 테스트 케이스를 읽는다. 경우에 따라서는 테스트 드라이버가 테스트 오라클 역할을 수행할 수 있다.
      즉, 실행 결과가 원하는 결과인지를 판별하여 프로그램에 오류가 검출되었는지를 판별하는 기능을 수행할 수있다.
    4. 2-3 과정을 더 이상 실행할 테스트 케이스가 없을 때까지 반복하여 수행

 

2) 테스트 스텁

  • 호출되는 모듈의 개발이 완료되지 않은 경우, 호출하는 모듈을 시험하기 위해 생성한 더미 모듈
  • 함수와 헤더 등의 코드 루틴만 정의하고 내부 코드는 제한적으로 구현하거나 구현하지 않는 경우가 많음
  • 테스트 스텁을 이용하여 실제 모듈 사용 시에 발생하기 어려운 경우를 강제적으로 만들어 테스트할 수 있음

 

2. 통합 테스트(Integration Test)

  • 모듈을 통합하는 과정에서 수행되는 테스트
  • 모듈 간의 상호 작용이 올바르게 되는 지를 검사하는 테스트
  • 통합테스트에서 오류가 발생되는 경우
    • 개별적인 모듈에 대한 테스트가 불충분하여 오류가 발생
      • 제한된 상황만을 고려하여 작성한 테스트 드라이버/스텁으로 인해 실제 모듈과 통합하는 과정에서 오류가 발생
    • 개별 모듈에서 동일한 전역 변수를 사용하는 등으로 인해 모듈 간의 예기치 못한 상호 작용이 발생하여 오류 발생

 

1) 통합 전략

  • 빅뱅통합
    • 개별적인 모듈에 대해 단위테스트를 수행한 후에 전체 시스템에 대해 한번에 통합테스트를 수행
    • 단시간에 테스트가 가능하나 오류가 발생했을 경우 오류가 발생한 모듈 및 원인을 찾기가 매우 어려움
  • 점진적 테스트
    • 한번에 모듈들을 통합하지 않고 점진적으로 모듈들을 통합하면서 테스트
    • 하향식 통합, 상향식 통합, 샌드위치 통합방식이 있음

 

2-1) 하향식 통합

  • 시스템을 구성하는 모듈들의 계층 구조에서 가장 상위에 있는 모듈부터 시작하여 하위에 있는 모듈들을 점진적으로 통합하는 방식
  • 상위 모듈을 테스트할 때, 하위 모듈을 대치할 테스트 스텁이 필요
    1. 가장 상위 모듈을 테스트 하기 위해 하위 모듈을 테스트 스텁으로 대치한 후 테스트 수행
    2. 깊이 우선방식이나 너비 우선 방식을 사용하여 테스트 스텁을 한번에 하나씩 실제 모듈로 대치.
      추가된 모듈이 호출하는 하위모듈을 테스트 스텁으로 대치한 후 회귀 테스트 수행
    3. 깊이 우선, 너비 우선

 

2-2) 하향식 통합 장/단점

  • 장점
    • 설계상의 오류를 빨리 발견할 수 있음
  • 단점
    • 많은 수의 테스트 스텁이 필요하고 만약 테스트 스텁을 구현할 때 비용이 많이 소요되는 경우에는 효과적이지 않음
    • 블랙박스 테스트만을 사용하는 경우에는 하위 모듈이 충분하게 테스트가 이루어지지 않을 수 있다.

 

3-1) 상향식 통합

  • 하위 모듈을 먼저 통합하고 상위에 있는 모듈들을 통합하는 방식으로 테스트 드라이버 필요
  • 클러스터 또는 빌드 : 특별한 기능을 제공하는 하위의 모듈들의 모임
    1. 하위 모듈을 클러스터링한 후에 테스트 드라이버를 작성하여 테스트 수행
    2. 클러스터를 테스트한 후에 테스트 드라이버를 제거하고 결합
    3. 위 과정을 시스템이 완전히 통합 될 때까지 반복하여 수행

 

3-2) 상향식 통합 장/단점 

  • 장점
    • 하위에 있는 모듈들을 충분하게 테스트할 수 있음
    • 테스트 스텁을 제공하는 비용이 들지 않음
  • 단점
    • 설계 오류를 조기에 발견하지 못함

 

4) 샌드위치 통합

  • 상향식 통합 방식과 하향식 통합방식을 절충하여 통합

'용어정리' 카테고리의 다른 글

[JSTL] 기본개념  (0) 2021.08.08
[네트워크] MAC주소  (0) 2021.07.26
[CSTS] SW품질  (0) 2021.06.14
[Git] branch name  (0) 2021.06.08
[네트워크] GET방식과 POST방식  (0) 2021.05.26

+ Recent posts