도서 및 강의/소프트웨어 테스트 전문가(CSTS) 가이드

1장 테스트 개요 - 1.5 테스트 기본 용어

간쥬 2025. 11. 24. 00:38

1.5 테스트 기본 요어

  1. 테스트 대상과 테스트 레벨
  2. 피처와 테스트 유형
  3. 테스트 설계 기법
    1. 정적 테스트
    2. 동적 테스트
  4. 테스트 케이스
  5. 테스트 절차
  6. 테스트 환경
  7. 테스트 기본 용어 요약

 

1.5.1 테스트 대상과 테스트 레벨

테스트 대상(Test Item)

테스트를 통해 결함을 검출하려는 대상 소프트웨어

전체 소프트웨어 혹은 전체 소프트웨어의 일부분이 대상이 될 수 있음

일부분 대상 테스트 ➡️ 전체 대상 테스트 순서가 효과적

 

시스템 테스트: 전체 소프트웨어를 대상으로 한 테스트

컴포넌트 테스트 / 단위(Unit) 테스트: 일부분을 대상으로 한 테스트

통합 테스트: 시스템을 구성하는 각 부분의 연결에 초첨을 둔 테스트

 

레벨 테스트

컴포넌트 테스트, 통합 테스트, 시스템 테스트를 통칭하는 말

 

1.5.2 피처와 테스트 유형

피처(Feature)

테스트 대상의 특성 중에서 테스트하고자 하는 측면, 관점

테스트 계획을 수립할 때 식별되어 테스트 범위로 기술

테스트 설계 활동을 통해 피처가 구체화되며 이를 기준으로 테스트 케이스 및 테스트 절차가 개발됨

 

1.5.3 테스트 설계 기법

1.5.3.1 정적 테스트

테스트 대상을 실행하지 않고 테스트를 수행하는 방식

 

종류

  • 리뷰(Review): 각 갭라 단계별로 해당 단계의 산출물이 품질 목표에 부합하는지 점검하고 산출물에 존재하는 결함을 검출
  • 정적 분석(Static analysis): 소스 코드를 대상으로 결함을 판단

장점

  • 테스트 대상에 대한 실행 환경이 필요하지 않음
  • 소스 코드가 작성되기 이전의 개발 단계의 산출물에 대한 테스트 수행 가능
  • 소스 코드 작성 전에 결함 검출하여 경제적
  • 자동화 도구를 사용하여 자동으로 수행 가능하며 대규모 소스 코드 분석 가능

단점

  • 자동화 도구는 결함이 아닌 문제를 결함으로 보고하기도 하고
  • 이러한 보고에 따라 개발자가 도구의 테스트 결과를 신뢰하지 못 하는 부작용이 발생

1.5.3.2 동적 테스트

테스트 대상을 실행하여 테스트를 수행하는 방식

소프트웨어의 일부 요구사항은 정적 테스트로 확인하기 어려울 때가 있고 이럴 때 동적 테스트 사용

마찬가지로 소프트웨어의 품질 요구사항인 가용성, 확장성, 신뢰성 등도 동적 테스트로 확인 가능

 

종류

명세 기반 방법

사용자의 요구 명세나 설계 정보 등을 이용하여 테스트 케이스 개발

컴포넌트 테스트, 통합 테스트, 시스템 테스트 및 인수 테스트 등 전 과정에 걸쳐 사용 가능

 

구조 기반 방법

프로그램의 제어 흐름이나 자료 흐름 정보를 이용하여 테스트 케이스를 설계하는 방법

구조적 테스트, 화이트박스 테스트, 글래스 박스 테스트 라고도 함

 

경험 기반 방법

테스트 케이스 바탕이 아닌 도메인에 대한 테스터의 경험, 기존 테스트 결과, 테스터의 직관을 활용

오류 추정, 탐색정 테스트 방법이 있음

 

장점

소스 코드는 사용되지 않기 때문에 소스 코드가 없는 경우에도 테스트 수행 가능

 

단점

소프트웨어를 실행시키기 위한 환경이 요구됨

 

1.5.4 테스트 케이스

  • 동적 테스트를 수행할 때는 테스트 대상을 실행하기 위해 적절한 입력값을 설정해야 함
  • 특정한 입력값으로 테스트 대상을 실행하였을 때 기대되는 값(예상값)도 결정해야 함
  • 실제 출력되는 값과 예상값이 다를 경우 결함이 있다고 간주할 수 있음

 

테스트 케이스 = 입력값 + 예상값 ( + 입력값을 테스트 대상에 제공하는 방법 + 예상 결과와 실제 결과를 비교하는 방법)

 

1.5.5. 테스트 절차

  • 테스트의 수행은 테스트 환경 구축 ➡️ 테스트 대상 실행 ➡️ 테스트 대상의 동착 관찰하여 결과 추출 ➡️ 테스트 케이스이 예상값과 비교
  • 테스트 절차는 이러한 수행 절차를 정의한 것으로 이 과정의 문서가 없을 경우 테스트를 수행할 때마다 다른 결과가 나올 위험이 있음
  • 디버깅을 하려면 동일한 결함이 나오는 상황을 재연해야 하는데, 테스트 절차는 검출된 결함을 재연할 때도 사용 됨
  • 테스트 스크립트: 테스트 문서를 문서로 기록하는 대신에 자동화 도구가 해석하고 실행하는 언어로 작성한 것

 

1.5.6 테스트 환경

  • 테스트 대상을 실행하는 모든 환경으로 하드웨어, 운영체제를 포함한 시스템 소프트웨어, 외부 연동 시스템 등 포함
  • 테스트 대상이 일부인 컴포넌트•단위 테스트의 경우 이를 보완하기 위해 드라이버와 스텁이 사용되며, 이 또한 테스트 환경에 포함
  • 테스트 실행 시 사용될 수 있는 다양한 테스트 도구도 테스트 환경으로 간주
  • 실제 환경과 테스트 환경의 차이가 클 수록 테스트를 통해 검증되었던 테스트 케이스가 실패할 가능성이 커지기 때문에 실제 환경과 최대한 유사한 환경에서 테스트를 수행하는 것이 중요함

1.5.7 테스트 기본 용어 요약

 

하나의 테스트 대상에 대하여 복수 개의 피처 있을 수 있음

➡️ 각 피처에 대한 테스트 수행

➡️ 피처 = 기능 피처 + 비기능 피처

➡️ 유형 테스트: 피처에 초점을 둔 테스트

 

테스트 설계기법 = 정적 테스트(실행x) + 동적 테스트(실행o)

 

테스트 케이스는 피처에 따라 따라 결정 되며 동적 테스트 방법을 적할 때 복수 개의 테스트 케이스 설계 됨

 

테스트 케이스가 테스트 환경에서 수행될 수 있도록 순서를 정한 것이 테스트 절차

 

하나의 테스트 케이스는 여러 테스트 절차에서 사용 가능