[정보처리기사 필기] 애플리케이션 테스트 관리 - 045. 애플리케이션 테스트의 분류

1. 프로그램 실행 여부에 따른 테스트

  • 정적 테스트
    • 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트
    • 소프트웨어 개발 초기에 결함을 발견할 수 있어 소프트웨어의 개발 비용을 낮추는데 도움
    • 종류 : 워크스루, 인스펙션, 코드검사 등
      • 워크스루 (검토회의) Walkthrough
        • 소프트웨어 개발자의 작업 내역을 개발자가 모집한 전문가들이 검토하는 것
        • 소프트웨어 검토를 위해 미리 준비된 자료를 바탕으로 정해진 절차에 따라 평가
        • 오류의 조기 검출을 목적으로 하며 발견된 오류는 문서화
      • 인스렉션 Inspaction
        • 워크스루를 발전시킨 형태
        • 소프트웨어 개발 단계에서 산출된 결과물의 품질을 평가하여 이를 개선하기 위한 방법 등을 제시
  • 동적 테스트
    • 프로그램을 실행하여 오류를 찾는 테스트
    • 소프트웨어 개발의 모든 단계에서 테스트를 수행할 수 있음
    • 종류 : 블랙박스 테스트, 화이트박스 테스트

2. 테스트 기반(Test Bases)에 따른 테스트

  • 명세 기반 테스트
    • 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트
      • 테스트 케이스 Tast Case : 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세
    • 종류 : 동등 분할, 경계 값 분석 등
  • 구조 기반 테스트
    • 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트
    • 종류 : 구문 기반, 결정 기반, 조건 기반 등
  • 경험 기반 테스트
    • 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트
    • 사용자의 요구사항에 대한 명세가 불충분하거나 테스트 시간에 제약이 있는 경우 수행하면 효과적
    • 종류 : 에러 추정, 체크 리스트, 탐색적 테스팅

3. 시각에 따른 테스트

  • 검증 테스트 : 개발자의 시각에서 제품의 생산 과정을 테스트하는 것, 제품이 명세서대로 완성됐는지를 테스트
  • 확인 테스트 : 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것, 사용자가 요구한대로 제품이 완성됐는지 제품이 정상적으로 동작하는지를 테스트

4. 목적에 따른 테스트

  • 회복 테스트 Recovery : 시스템에 여러 가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인하는 테스트
  • 안전 테스트 Security : 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지를 확인하는 테스트
  • 강도 테스트 Stress : 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트
  • 성능 테스트 Performance : 소프트웨어의 실시간 성능, 전체적인 효율성을 진단하는 테스트, 소프트웨어의 응답 시간, 처리량 등을 테스트
  • 구조 테스트 Structure : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트
  • 회귀 테스트 Regression : 소프트웨어의 변경, 수정된 코드에 새로운 결함이 없음을 확인하는 테스트
  • 병행 테스트 Parallel : 변경된 소프트웨어와 기존 소프트웨어 동일한 데이터를 입력하여 결과를 비교하는 테스트