랑아
article thumbnail

시스템 테스트

05. 테스트 케이스

1) 테스트 케이스(Test Case)의 개념

  • 명세 기반 테스트를 위한 설계 산출물
  • 특정한 프로그램의 일부분 또는 경로에 따라 수행함
  • 실제로 다양한 데이터를 입력하여 그 결과를 확인해보는 과정
  • 인터페이스 테이블이나 파일 단위로 작성함
  • 가장 핵심적인 사항은 테스트 항목의 도출
  • 테스트할 대상 및 기능 등이 충분하고, 완전하게, 누락 없이, 일관성 있게, 구체적으로 테스트가 될 수 있도록 함
  • 인터페이스 구간에서의 데이터 및 프로세스 흐름에 따라 테스트 케이스를 작성함
  • 특정한 요구사항을 준수하는지 확인하기 위해 설계된 테스트 조건, 입력값, 실행 조건, 수행 결과로 구성된 테스트 항목의 명세서
  • 테스트 케이스 프로세스를 통해 정확성, 재사용성, 간결성을 보장할 수 있게 함

2) 테스트 케이스의 구성 항목(IEEE 829)

  • IEEE 829
    • 표준화 단체인 미국에 있는 전기, 전자기술자협회(IEEE)에서 테스트 케이스 구성 요소를 문서로 정의한 프로토콜
    • 규정 번로가 829
  항목     설명  
  식별자     항목 식별자, 일련번호  
  테스트 항목     테스트할 모듈 또는 기능  
  입력 명세     입력값 또는 테스트 조건  
  츨략 명세     테스트 케이스 실행 시 기대되는 출력값 결과  
  환경 설정     테스트 수행 시 필요한 하드웨어나 소프트웨어 환경  
  특수 절차 요구     테스트 케이스 수행 시 특별히 요구되는 절차  
  의존성 기술     테스트 케이스 간의 의존성  

3) 테스트 오라클(Test Oracle)

1. 테스트 오라클의 개념

  • 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법 및 활동

2. 테스트 오라클의 유형

  • 참(True) 오라클
    • 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생한 오류를 모두 컴출할 수 있는 오라클
  • 샘플링(Sampling) 오라클
    • 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해 주는 오라클
  • 휴리스틱(Heuristic, 추정) 오라클
    • 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 추정으로 처리하는 오라클
  • 일관성 테스트(Consistent Test) 오라클
    • 소프트웨어 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클

3. 테스트 오라클의 적용 방안

  • 참 오라클은 주로 항공기, 임베디드, 발전소 소프트웨어 등 작은 실수만으로도 치명적인 결과를 초래하는 업무에 적용함
  • 샘플링/추정 오라클은 일반, 업무용, 게임, 오락 등의 일반적인 업무에 적용함



06. 테스트 시나리오

1) 테스트 시나리오의 개념

  • 테스트를 위한 여러 테스트 케이스의 집합
  • 테스트 케이스의 동작 순서를 기술한 문서
  • 테스트 시나리오는 테스트 절차를 미리 정리하여 설계 단계에서 중요했던 요구사항이나 대안 흐름과 같은 테스트 항목을 누락 없이 테스트하기 위함

2) 테스트 시나리오 작성 시 유의점

  • 테스트 항목을 하나의 시나리오에 모두 작성하지 않음
  • 시스템별, 모듈별, 항목별 테스트 시나리오를 분리하여 작성함
  • 고객의 요구사항과 설계 문서 등을 기반으로 테스트 시나리오를 작성함
  • 테스트 항목은 식별자 번호, 순서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인 등의 항목을 포함하여 작성함



07. 테스트 환경 구축

1) 테스트 환경 구축의 개념

  • 애플리케이션이 실제 운영 시스템에서 정상적으로 작동하는지 테스트하기 위하여 실제 운영 시스템과 동일한 하드웨어, 소프트웨어, 네트워크 등의 시설을 구축하는 것

2) 테스트 환경 구축의 유형

  1. 하드웨어 기반의 테스트 환경 구축
    • 서버 장비, 클라이언트 장비, 네트워크 장비 등을 설치하는 작업
  2. 소프트웨어 기반의 테스트 환경 구축
    • 구축된 하드웨어 환경에 테스트할 애플리케이션을 설치하고 필요한 데이터를 준비하는 작업
  3. 가상 시스템 기반의 테스트 환경 구축
    • 가상 시스템은 물리적으로 독립된 테스트 환경을 구축하기 힘든 경우에 구축함
    • 가상 머신 기반의 서버 또는 클라우드 환경을 이용하여 테스트 환경을 구축함
    • 네트워크는 VLAN과 같은 기법을 이용하여 논리적 분할 환경을 구축할 수 있음



08. 테스트 데이터 및 테스트 조건

1) 테스트 데이터

1. 테스트 데이터의 개념

  • 컴퓨터의 동작이나 시스템의 적합성을 시험하기 위해 특별히 개발된 데이터 집합
  • 프로그램의 기능을 하나씩 순번에 따라 확실하게 테스트할 수 있도록 조건을 갖춘 데이터

2. 테스트 데이터의 필요성

  • 테스트 시 오류 데이터를 사용하면 오류 결과가 출력되어 시간과 비용이 낭비됨
  • 테스트를 효율적으로 운용하고 데이터의 기밀을 유지하며 신뢰성 및 예측 가능한 테스트를 위해 테스트 데이터의 준비가 필요함

3. 테스트 데이터의 유형

  • 선행된 연산에 의해 얻어진 실제 데이터 유형
  • 인위적으로 만들어진 가상의 데이터 유형

4. 테스트 데이터 준비

  • 실제 데이터는 연산에 의해 준비함
  • 실제 운영 데이터를 복제하여 준비함
  • 가상의 데이터는 스크립트를 통해서 생성함

2) 테스트 조건

  1. 테스트 시작 조건
    • 계획을 수립함
    • 사용자 요구사항에 대한 테스트 명세서를 작성함
    • 투입 조직 및 참여 인력의 역할과 책임을 정의함
    • 테스트 일정을 확정함
    • 테스트 환경을 구축함
  2. 테스트 종료 조건
    • 정상적인 테스트를 모두 수행한 경우
    • 차기 일정이 시작되는 시점이나 테스트 일정이 만료되었을 경우
    • 테스트에 소요되는 비용을 모두 소진한 경우
  3. 테스트 성공과 실패의 판단 기준
    • 기능 및 비기능 테스트 시나리오처럼 예상 결과를 만족하면 성공이고, 그렇지 않으면 실패로 판단함
    • 동일한 데이터 또는 이벤트를 중복하여 테스트하여도 여전히 이전의 테스트와 같은 결과가 나올 때 성공으로 판단함
profile

랑아

@RangA

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!