[정보처리기사] 개정 후 2020 시나공 필기 요약 정리 - 2과목 4장. 애플리케이션 테스트 관리



:bulb: 정보처리기사 2과목 소프트웨어 개발

4장. 애플리케이션 테스트 관리

049 애플리케이션 테스트 Ⓑ

애플리케이션 테스트의 기본 원리

  • 파레토 법칙 : 오류의 80%는 20% 모듈에서 발견되므로 20%의 모듈을 집중적으로 테스트해야 한다.
  • 살충제 패러독스(Pesticide Paradox) : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않음

050 애플리케이션 테스트의 분류 Ⓑ

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

  • 정적 테스트 : 프로그램을 실행하지 않음 (ex. 워크스루, 인스펙션, 코드 검사)
  • 동적 테스트 : 프로그램을 실행하여 오류를 찾음 (ex. 블랙박스 테스트, 화이트박스 테스트)

테스트 기반에 따른 테스트

  • 명세 기반 테스트 : 요구사항을 테스트 케이스로 만들어 테스트 (ex. 동등 분할, 경계 값 분석)
  • 구조 기반 테스트 : 소프트웨어 내부 논리 흐름에 따라 테스트 (ex. 구문 기반, 결정 기반, 조건 기반)
  • 경험 기반 테스트 : 테스터의 경험을 기반으로 테슽 (ex. 에러 추정, 체크 리스트, 탐색적 테스팅)

시각에 따른 테스트

  • 검증 테스트(Verification) : 개발자의 시각에서 테스트
  • 확인 테스트(Validation) : 사용자의 시각에서 테스트

051 테스트 기법에 따른 애플리케이션 테스트 Ⓐ

화이트박스 테스트

  • 원시 코드의 논리적인 모든 경로 테스트
  • 모듈 안의 작동 직접 관찰
  • 선택, 반복 등의 분기점을 수행
  • ex) 기초 경로 검사, 조건 검사, 루프 검사, 데이터 흐름 검사

블랙박스 테스트

  • 구현된 기능을 테스트
  • 요구사항 명세를 보면서 테스트
  • ex) 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사

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

애플리케이션 테스트

  • 단위 테스트(Unit Test)
    • 코딩 직후 모듈이나 컴포넌트에 초점을 맞춰 테스트
    • ex) 구조 기반 테스트, 명세 기반 테스트
  • 통합 테스트(Integration Test)
  • 시스템 테스트(System Test)
  • 인수 테스트(Acceptance Test)
    • 소프트웨어가 사용자의 요구사항을 충족하는지 테스트
    • 알파 테스트 : 사용자가 개발자 앞에서 테스트, 통제된 환경에서 시행
    • 베타 테스트 : 사용자는 제어되지 않은 상태에서 테스트

053 통합 테스트 Ⓐ

하향식 통합 테스트

  • 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트
  • 사용자에게 시스템 구조를 보여줄 수 있음
  • 스텁(Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행, 일시적인 시험용 모듈
  • ex) 깊이 우선 통합법, 넓이 우선 통합법

상향식 통합 테스트

  • 하위 모듈에서 상휘 모듈 방향으로 통합하면서 테스트
  • 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster) 필요
  • 드라이버(Driver) : 테스트 대상의 모듈 호출, 파라미터 전달, 결과 도출

회귀 테스팅(Regression Testing)

  • 이미 테스트된 프로그램의 테스팅 반복
  • 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인

057 결합 관리 Ⓑ

결함 관리 도구

  • Mantis, Trac, Redmine, Bugzilla

058 애플리케이션 성능 분석 Ⓒ

성능 테스트 도구

  • 애플리케이션에 부하나 스트레스를 가하며 성능을 점검
  • JMeter, LoadUI, OpenSTA

시스템 모니터링 도구

  • 애플리케이션이 실행되었을 때 시스템 자원의 사용량 확인 및 분석
  • Scouter, Zabbix

059 애플리케이션 성능 개선 Ⓒ

소스 코드 품질 분석 도구

  • 정적 분석 도구
    • 코드를 실행하지 않고 코드를 확인
    • ex) pmd, cppcheck, SonarQube, checkStyle, ccm, cobertura
  • 동적 분석 도구
    • 소스 코드를 실행하여 코드의 메모리 누수, 스레드 결함을 분석
    • ex) Avalanche, Valgrind



:bookmark: REFERENCE
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편[개정판]