본문 바로가기
정보처리/소프트웨어개발

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

by 피갓자 2025. 4. 29.

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

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

테스트 기법에 따른 분류

블랙박스 테스트(Black-Box Test)

  • 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트)
  • 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어짐
  • 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능함
  • 명세 테스트라고도 부름

블랙박스 테스트 유형

등 분할 테스트 = 동치 분할 테스트, 균등 분할 테스트, 동치 클래스 분해 테스트(Equivalence Partitioning Testing)

  • 입력 데이터의 영역을 유사한 도메인별로 유효값/무효값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트하는 기법

곗값 분석 테스트 = 한곗값 테스트(Boundary Value Analysis Testing)

  • 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높으므로 경곗값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법
  • 최솟값 바로 위, 최대치 바로 아래 등 입력값의 극한 한계를 테스트하는 기법

정 테이블 테스트(Decision Table Testing)

  • 요구사항의 논리와 발생 조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하여 테스트하는 기법

태 전이 테스트(State Transition Testing)

  • 테스트 대상 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법

스케이스 테스트(Use Case Testing)

  • 시스템이 실제 사용되는 유스케이스로 모델링 되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법

류 트리 테스트(Classification Tree Method Testing)

  • SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법

어와이즈 테스트(Pairwise Testing)

  • 테스트 데이터값 간에 최소한 한 번씩을 조합하는 방식이며, 이는 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법

인-결과 그래프 테스트(Cause-Effect Graph Testing)

  • 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법

교 테스트(Comparison Testing)

  • 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교해 보는 테스트 기법

류 추정 테스트(Error Guessing Testing)

  • 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법
  • 특정 테스트 대상이 주어지면 테스터의 경험과 직관을 바탕으로 개발자가 범할 수 있는 실수를 나열하고, 해당 실수에 따른 결함을 노출하는 테스트로 다른 블랙박스 테스트 기법을 보완할 때 사용하는 기법

테스트 시각에 따른 분류

검증(Verification)

  • 소프트웨어 개발 과정을 테스트
  • 올바른 제품을 생산하고 있는지 검증
  • 이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단
  • 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정

확인(Validation)

  • 소프트웨어 결과를 테스트
  • 만들어진 제품이 제대로 동작하는지 확인
  • 최종 사용자 요구 또는 소프트웨어 요구에 적합한지 판단
  • 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정

테스트 목적에 따른 목적

테스트 목적에 따른 분류

  • 복 테스트(Recovery Testing) : 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트하는 기법
  • 전 테스트(Security Testing) : 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법
  • 능 테스트(Performance Testing) : 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법
  • 조 테스트(Structure Testing) : 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법
  • 귀 테스트(Regression Testing) : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
  • 행 테스트(Parallel Testing) : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법

성능 테스트의 상세 유형

  • 부하 테스트(Load Testing) : 시스템에 부하를 계속 증가시키면서 시스템의 임계점(Threshold)을 찾는 테스트, 부하 테스트를 통해 병목 지점을 찾아서 제거하는 과정을 반복
  • 강도 테스트(Stress Testing) : 시스템 처리 능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서 시스템의 동작 상태를 확인하는 테스트
  • 스파이크 테스트(Spike Testing) : 짧은 시간에 사용자가 몰릴 때 시스템의 반응을 측정하는 테스트
  • 내구성 테스트(Endurance Testing) : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템의 반응을 테스트

테스트 종류에 따른 분류

세 기반 테스트(블랙박스 테스트)

  • 프로그램의 요구사항 명세서를 기반으로 테스트 케이스를 선정하여 테스트하는 기법
  • 동등 분할 테스트, 경곗값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 그래프 테스트, 비교 테스트

조 기반 테스트(화이트박스 테스트)

  • 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트 기법
  • 구문 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트

험 기반 테스트(블랙박스 테스트)

  • 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트 기법
  • 탐색적 테스트, 오류 추정

정적 테스트

리뷰(Review)

  • 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행 상황을 점검하기 위한 활동으로, 전문가가 수행함

리뷰 프로세스

  • IEEE1028-2008에서 정의한 리뷰 프로세스는 경영진 준비, 리뷰 계획, 리뷰 절차 개요 설명, 작업물 개요 설명, 개별 준비, 그룹 검토, 재작업, 후속 작업 순으로 이루어져 있음

리뷰의 유형

동료 검토(Peer Review)

  • 2~3명이 진행하는 리뷰의 형태로 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행하는 검토 기법

인스펙션(Inspection)

  • 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 문제를 식별하고 문제에 대한 올바른 해결을 찾아내는 형식적인 검토 기법
  • 개발 초기에 검사해야만 개발 초기 작업물에서 문제를 발견할 수 있음

워크 스루(Walk Through)

  • 검토 자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 문제 식별, 대안 조사, 개선 활동, 학습 기회를 제공하는 가장 비형식적인 검토 기법
  • 결함을 검출할 뿐만 아니라 참가자들의 교육이나 지식 공유를 위해 수행하기도 함
  • 작성자 본인이 보통 회의를 주재하며 기록자 역할도 담당할 수 있고, 인스펙션과 마찬가지로 관리자 직책을 담당하는 사람은 멤버로 참여하는 것을 금지함

정적 분석(Static Analysis)

  • 리뷰는 사람이 직접 수행하는 수작업 중심의 방법이지만, 정적 분석은 도구의 지원을 받아 정적 테스트를 수행하는 방법임
  • 자동화된 도구를 이용하여 산출물의 결함을 검출하거나 복잡도를 측정함
  • 코딩 표준 부합, 코드 복잡도 계산, 자료 흐름 분석 등이 있음