Certificate/정보처리기사

[정보처리기사][요약] 7.애플리케이션 테스트 관리

다닿 2026. 7. 9. 13:00

애플리케이션 테스트

기본 원리

  • 파레토 법칙 Pareto Principle
    20%에서 결함 80%발견
  • 살충제 패러독스 Pesticide Paradox
    동일한 테스트로는 더 이상 결함이 발견 안됨
  • 오류-부재의 궤변 Absence of Errors Fallacy
    결함이 없어도 사용자 만족 안되면 품질이 높지 않음

실행여부에 따른 테스트

  • 정적 테스트
    워크스루, 인스펙션, 코드 검사
  • 동적 테스트
    블랙박스 테스트, 화이트박스 테스트

시각에 따른 테스트

  • 검증 Verification 테스트
    명세서
  • 확인 Validation 테스트
    동작

목적에 따른 테스트

  • 회복 Recovery 테스트
  • 안전 Security 테스트
  • 강도 Stress 테스트
  • 성능 Performance 테스트
  • 구조 Structure 테스트
  • 회귀 Regression 테스트
    바뀐것들 문제 없는지
  • 병행 Parallel 테스트
    같은 값 넣어서

 

화이트박스 테스트

  • 기초 경로 검사 Base Path Testing
  • 제어 구조 검사 Control Structure Testing
    • 조건 검사 Condition Testing
    • 루프 검사 Loop Testing
    • 데이터 흐름 검사 Data Flow Testing

화이트박스 테스트의 검증 기준

  • 문장 검증 기준 Statement Coverage
    모든 구문 한번 이상
  • 결정 검증 기준 Decision Coverage
    조건식의 결과가 True, False 모두 
  • 조건 검증 기준 Condition Coverage
    조건식안의 개별 조건 True, False
  • 조건/결정 검증 기준 Condition/Decision Coverage
    결정검증기준과 조건검증기준 만족, 입력 데이터 구분
  • 변경 조건/결정 기준 Modified Condition/Decision Coverage
    개별 조건식 영향 안받고, 결과에 독립적으로 영향
  • 다중 조건 검증 기준 Multiple Condition Coverage
    모든 조합 고려

 

블랙박스 테스트

  • 동치 분할 검사 Equicalence Partitioning Testing
    맞는 자료, 틀린 자료 균등하게
  • 경계값 분석 Boundary Value Analysis
  • 원인-효과 그래프 검사 Cause-Effect Graphing Testing
    미치는 영향 분성
  • 오류 예측 검사 Error Guessing
  • 비교 검사 Comparison Testing
    여러 버전에 동일한 테스트로

 

개발 단계에 따른 애플리케이션 테스트

  1. 요구사항 Requirements
  2. 분석 Specification
  3. 설계 Design
  4. 구현 Code
  5. 단위 테스트 Unit Testing
    모듈이나 컴포넌트
  6. 통합 테스트 Integration Testing
    • 비점진적 통합 방식
      전부 통합, 빅뱅 통합 방식
    • 점진적 통합 방식
      • 하향식 통합 테스트 Top Down Integration Test
        스텁 stub
      • 상향식 통합 테스트 Bootom Up Integration Test
        하위 모듈을 클러스터 Cluster로 결합
        하위 모듈을 테스트 드라이버 Test Driver로 호출
  7. 시스템 테스트 System Testing
    완벽한지
  8. 인수 테스트 Acceptance Testing
    • 알파 테스트
    • 베타 테스트

 

 

테스트 오라클 Test Oracle

  • 참 True 오라클
  • 샘플링 Sampling 오라클
  • 추정 Heuristic 오라클
  • 일관성 검사 Consistent 오라클

 

테스트 자동화 도구

  • 정적 분석 도구 Static Analysis Tools
  • 테스트 케이스 생성 도구 Test Case Generation Tools
    • 자료 흐름도
    • 기능 테스트
    • 입력 도메인 분석
    • 랜덤 테스트
  • 테스트 실행 도구 Test Execution Tools
  • 성능 테스트 도구 Performance Test Tools

 

테스트 하네스의 구성 요소

  • 테스트 드라이버 Test Driver
  • 테스트 스텁 Test Stub
  • 테스트 슈트 Test Suites
  • 테스트 케이스 Test Case
  • 테스트 스크립트 Test Script
  • 목 오브젝트 Mock Object

 

결함 Fault

 

애플리케이션 성능 측정 지표

  • 처리량 Throughput
  • 응답 시간 Response Time
  • 경과 시간 Turn Around Time
  • 자원 사용률 Fesource Usage

 

빅오 표기법으로 표현한 최악의 시간 복잡도

O(1) 스택 pop, push
O(log₂n) 이진 트리, 이진 검색
O(n) for
O(nlog₂n) 힙 정렬, 합병 정렬
O(n²) 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬
O(2ⁿ) 피보나치 수열

 

 

순환 복잡도 Cyclomatic Complexity

맥케이브 순환도 McCabe's Cyclomatic

V(G) = E - N + 2 = 화살표 수 - 노드 수 + 2

 

 

코드 최적화

  • 가독성
  • 단순성
  • 의존성 배제
  • 중복성 최소화
  • 추상화

 

소스 코드 품질 분석 도구

  • 정적 분석 Static Analysis 도구
    pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura
  • 동적 분석 Dynamic Analysis 도구
    Avalanche, Valgrind