정보처리/소프트웨어개발

애플리케이션 테스트 관리 테스트 케이스 설계 4/4

피갓자 2025. 5. 1. 09:00

애플리케이션 테스트 관리 테스트 케이스 설계
애플리케이션 테스트 관리 테스트 케이스 설계

애플리케이션 테스트 케이스 작성

테스트 케이스

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

  • 특정 요구사항에 준수하는지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합

테스트 케이스 작성 절차

1. 테스트 계획 검토 및 자료 확보

  • 테스트 대상 프로젝트 범위와 접근 방법 이해를 위하여 테스트 계획을 검토
  • 테스트 대상 시스템 자료와 정보를 확보하여, 시스템 요구사항과 기능 명세서를 검토

2. 위험 평가 및 우선순위 결정

  • 결함 해결에 있어 상대적 중요성을 지니는 대상 및 테스트의 초점을 결정

3. 테스트 요구사항 정의

  • 시스템 요구사항, 테스트 대상 재검토, 테스트할 특성, 조건, 기능을 식별 및 분석

4. 테스트 구조 설계 및 테스트 방법 결정

  • 테스트 케이스의 일반적 형식을 결정하고, 테스트 케이스 분류 방법을 결정
  • 테스트 절차, 장비, 도구, 테스트 문서화 방법을 결정

5. 테스트 케이스 정의 및 작성

  • 각 요구사항에 대해 테스트 케이스를 작성하고, 입력값, 실행 조건, 예상 결과를 기술

6. 테스트 케이스 타당성 확인 및 유지보수

  • 기능 또는 환경 변화에 따라 테스트 케이스를 갱신하고, 테스트 케이스의 유용성을 검토

테스트 케이스 필요 항목

공통 작성 항목 요소

  • 테스트 단계명, 작성자, 승인자, 작성 일자, 문서 버전 : 단위/통합/시스템/인수 테스트 등의 테스트 단계와 테스트 케이스 작성자, 승인자, 작성 일자, 버전 등을 작성
  • 대상 시스템 : 애플리케이션 개발 서버 또는 개발 시스템명 등을 작성
  • 변경 여부 : 테스트 케이스 변경 여부 및 변경 사유 등을 작성
  • 테스트 범위 : 테스트 대상 애플리케이션의 기능별 테스트 범위 및 업무별 테스트 범위를 식별
  • 테스트 조직 : 테스트 케이스 작성 및 테스트 수행을 담당할 조직 식별

개별 테스트 케이스 항목 요소

  • 테스트 ID : 테스트 케이스를 고유하게 식별하기 위한 ID를 작성
  • 테스트 목적 : 테스트 시 고려해야 할 중점 사항이나 테스트 케이스의 목적을 작성
  • 테스트할 기능 : 애플리케이션의 테스트할 기능을 간략하게 작성
  • 테스트 데이터(=입력 데이터) : 테스트 실행 시 입력할 데이터(입력값, 선택 버튼, 체크 리스트 값 등)를 작성
  • 예상 결과(=기대 결과) : 테스트 실행 후 기대되는 결과 데이터(출력 데이터, 결과 화면, 기대 동작 등)를 작성
  • 테스트 환경 : 테스트 시 사용할 물리적, 논리적 테스트 환경, 사용할 데이터, 결과 기록 서버 등의 내용을 작성
  • 테스트 조건(=전제 조건) : 테스트 간의 종속성, 테스트 수행 전 실행되어야 할 고려 사항 등을 작성
  • 성공/실패 기준 : 테스트를 거친 애플리케이션 기능의 성공과 실패를 판단하는 조건을 명확하게 작성
  • 기타 요소 : 사용자의 테스트 요구사항 중 특별히 고려해야 할 내용을 간략하게 기술

테스트 오라클

테스트 오라클(Test Oracle)의 개념

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

테스트 오라클 종류

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

애플리케이션 테스트 시나리오 작성

테스트 레벨

테스트 레벨(Test Level) 개념

  • 함께 편성되고 관리되는 테스트 활동의 그룹
  • 프로젝트에서 책임과 연관되어 있음
  • 각각의 테스트 레벨은 서로 독립적

테스트 레벨 종류

테스트 레벨의 종류

위 테스트

  • 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
  • 자료 구조 테스트, 실행 경로 테스트, 오류 처리 테스트, 인터페이스 테스트

합 테스트

  • 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호 작용을 검증하는 테스트 단계
  • 빅뱅 테스트, 샌드위치 테스트, 상향식 테스트, 하향식 테스트

스템 테스트

  • 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계
  • 기능, 비기능 요구사항 테스트

수 테스트

  • 계약상의 요구사항이 만족하였는지 확인하기 위한 테스트 단계
  • 계약 인수, 규정 인수, 사용자 인수, 운영상의 인수, 알파, 베타 테스트

단위 테스트(Unit Test)

  • 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춘 테스트
  • 사용자의 요구사항을 기반으로 한 기능성 위주의 테스트를 수행
  • 명세 기반 테스트(블랙박스 테스트)와 구조 기반 테스트(화이트박스 테스트)로 나누어지지만 주로 구조 기반 테스트 위주로 수행

통합 테스트(Integration Test)

  • 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법
  • 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하는 테스트

시스템 테스트(System Test)

  • 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트
  • 컴퓨터 시스템을 완벽하게 검사하기 위한 목적 또는 성능 목표를 가지고 테스트

인수 테스트(Acceptance Test)

  • 최종 사용자와 업무의 이해관계자 등이 테스트를 수행함으로써 개발된 제품에 대해 운영 여부를 결정하는 테스트
  • 시스템의 일부 또는 특정한 비기능적인 특성에 대해 인수 테스트를 통해 확인

인수 테스트 종류

  • 알파 테스트(Alpha Test) : 선택된 사용자(회사 내의 다른 사용자 또는 실제 사용자)가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트
  • 베타 테스트(Beta Test) : 실제 환경에서 제한된 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트

테스트 시나리오

테스트 시나리오(Test Scenario) 개념

  • 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서
  • 테스트 수행 절차를 미리 정함으로써 설계 단계에서 중요시되던 요구사항이나 대안 흐름과 같은 테스트 항목을 빠짐없이 테스트

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

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