본문 바로가기

정보처리기사

[정보처리기사] 실기 노트 - 애플리케이션 테스트 관리 1

  1. 애플리케이션 테스트
    1. 애플리케이션 테스트의 개요
      1. 애플리케이션 테스트의 개념
        1. 애플리케이션 테스트: 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차
      2. 애플리케이션 테스트의 기본 원리
        1. 완벽한 테스트 불가능
        2. 파레토 법칙 (Pareto Principle)
        3. 살충제 패러독스 (Pesticide Paradox)
        4. 테스팅은 정황 (Context) 의존
        5. 오류-부재의 궤변 (Absence of Errors Fallacy)
        6. 테스트와 위험은 반비례
        7. 테스트의 점진적 확대
        8. 테스트의 별도 팀 수행
    2. 애플리케이션 테스트의 분류
      1. 프로그램 실행 여부에 따른 테스트: 정적 테스트, 동적 테스트
      2. 테스트 기반 (Test Bases) 에 따른 테스트: 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트
      3. 시각에 따른 테스트: 검증 (Verification) 테스트, 확인 (Validation) 테스트
      4. 목적에 따른 테스트
        1. 회복 (Recovery) 테스트
        2. 안전 (Security) 테스트
        3. 강도 (Stress) 테스트
        4. 성능 (Performance) 테스트
        5. 구조 (Structure) 테스트
        6. 회귀 (Regression) 테스트
        7. 병행 (Parallel) 테스트
    3. 테스트 기법에 따른 애플리케이션 테스트
      1. 화이트박스 테스트 (White Box Test): 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
      2. 화이트박스 테스트의 종류: 기초 경로 검사 (Base Path Testing), 제어 구조 검사 (Control Structure Testing)
      3. 화이트박스 테스트의 검증 기준: 문장 검증 기준 (Statement Coverage), 분기 검증 기준 (Branch Coverage), 조건 검증 기준 (Condition Coverage), 분기/조건 기준 (Branch / Condition Coverage)
      4. 블랙박스 테스트 (Black Box Test): 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 함
      5. 블랙박스 테스트의 종류: 동치 분할 검사 (Equivalence Partitioning Testing), 경계값 분석 (Boundary Value Analysis), 원인-효과 그래프 검사 (Cause-Effect Graphing Testing), 오류 예측 검사 (Error Guessing), 비교 검사 (Comparison Testing)
    4. 개발 단계에 따른 애플리케이션 테스트
      1. 개발 단계에 따른 애플리케이션 테스트의 개념
        1. 소프트웨어의 개발 단계에 따라 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트로 분류된다. 이렇게 분류된 것을 테스트 레벨이라고 함
        2. 애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현한 것을 V-모델이라고 함
      2. 단위 테스트 (Unit Test): 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것
      3. 통합 테스트 (Integration Test): 단위 테스트가 완료된 모듈들을 겹합하여 하나의 시스템으로 완성시키는 과정에서의 테스트를 의미함
      4. 시스템 테스트 (System Test): 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는가를 점검하는 테스트
      5. 인수 테스트 (Acceptance Test): 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 방법
  2. 통합 테스트
    1. 통합 테스트 (Integration Test): 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법
    2. 하향식 통합 테스트 (Top Down Integration Test): 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
    3. 상향식 통합 테스트 (Bottom up Integration Test): 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
    4. 혼합식 통합 테스트: 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용하여 최적의 테스트를 지원하는 방식
    5. 회귀 테스팅 (Regression Testing): 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트