[2023 정보처리기사] 2과목 – 10. 어플리케이션 테스트의 분류

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

  • 정적 테스트: 프로그램을 실행하지 않고, 명세서나 소스코드를 대상으로 분석.

– 개발 초기에 결함 발견 가능, 개발 비용이 낮음.

Ex) 워크스루, 인스펙션, 코드검사 등

  • 동적 테스트: 프로그램을 실행하여 오류를 찾는 테스트.

– 개발의 모든 단계에서 테스트 수행 가능.

Ex) 블랙박스 테스트, 화이트박스 테스트

 

2. 테스트 기반에 따른 테스트

  • 명세 기반 테스트: 사용자의 요구사항에 대한 명세를 모두 테스트 케이스로 작성.

– 종류: 동등 분할 테스트, 경계값 분석 테스트 등

  • 구조 기반 테스트: 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스 작성.

– 종류: 구문 기반 테스트, 결정 기반 테스트, 조건 기반 테스트

  • 경험 기반 테스트: 유사 소프트웨어나 기술 등에 대한 테스트의 경험을 기반으로 수행.

– 종류: 에러 추정, 체크 리스트, 탐색정 테스팅

 

3. 시각에 따른 테스트

  • 검증(Verification): 개발자의 시각에서 제품의 생산 과정을 테스트.  => 제품이 명세서대로 완성 되었는지.
  • 확인(Validation): 사용자의 시각에서 생산된 제품의 결과를 테스트.  => 사용자의 요구대로 완성 되었는지.

 

4. 목적에 따른 테스트

  • 회복(Recovery): 시스템에 결함을 주어 실패하도록 한 후 올바르게 복구되는가.
  • 안전(Security): 불법적인 침입으로부터 시스템을 보호할 수 있는가.
  • 강도(Stress): 과부하 시 소프트웨어가 정상실행 되는가.
  • 성능(Perfomance): 실시간 성능이나 전체적인 효율성을 진단.
  • 구조(Structured): 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡성을 평가.
  • 회기(Regression): 소프트웨어의 변경•수정된 코드에 새로운 경함이 없는가.
  • 병행(Paralled): 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력해 결과를 비교.

 

5. 기법에 따른 테스트

  5. 1. 화이트박스 테스트

: 모듈 내부의 내용을 보고, 논리적인 경로를 테스트.

    5. 1. 1. 화이트박스 테스트의 종류

    • 기초 경로 검사

– 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해줌.

    • 제어 구조 검사

– 조건 검사: 모듈 내에 있는 논리적 조건을 테스트.

– 루프 검사: 반복 구조에 초점을 맞춰 테스트.

– 데이터 흐름 검사: 프로그램의 변수 정의와 변수 사용에 초점을 맞춰 테스트.

    5. 1. 2. 검증 기준 ★

    • 문장 검증 기준: 소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트.
    • 분기 검증 기준: 소스 코드의 모든 조건문이 한 번 이상 수행되도록 테스트.
    • 조건 검증 기준: 소스 코드의 모든 조건문에 대해 조건이 True/False인 경우가 한 번 이상 수행되도록 테스트.
    • 분기 / 조건 기준: 모든 조건문과 조건문의 개별 조건식의 결과가 True/False인 경우가 한 번 이상 수행되도록 테스트.

    5. 1. 3. 검증 기준(Coverage)종류

    • 기능 기반 커버리지: 테스트 기능 수 ÷ 전체 기능 수
    • 라인 커버리지: 테스트 라인 수 ÷ 전체 코드 라인 수
    • 코드 커버리지: 코드의 구문•분기•조건 등의 코드 자체가 얼마나 테스트 되었는지 측정.

  5. 2. 블랙박스 테스트

: 모듈 내부의 내용을 볼 수 없음. 소프트웨어의 각 기능이 완전히 작동되는지 입증하는 테스트.

    5. 2. 1. 블랙박스 테스트의 종류

    • 동치 분할 검사(Equivalance Partitioning): 입력조건에 True/False 조건의 자료를 균등하게 분할
    • 경계값 분석(Boundary Value Analysis): 경계값까지 포함하여 테스트.
    • 원인•효과 그래프(Cause-Effect Graph): 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 분석 후 효용성이 높은 케이스를 선정.
    • 오류 예측 검사(Error Guessing): 과거의 경험이나 감각으로 테스트
    • 비교 검사(Comparison Tesing): 여러 버전의 프로그램에 동일한 테스트 자료를 제공해 동일한 결과가 출력되는지 테스트.

Leave a Comment