10. 애플리케이션 테스트 관리

정보처리기사 정보처리기사요약 애플리케이션테스트 화이트박스테스트 블랙박스테스트 단위테스트 통합테스트 클린코드 리팩토링

애플리케이션 테스트 케이스 설계

애플리케이션 테스트 케이스 작성 :star::star::star:

  • 소프트웨어 테스트의 이해

    • 개념: 사용자가 요구하는 기능과 성능만족하는지 확인하고 결함을 찾는 활동이다.

    • 필요성: 오류 견, 오류 방, 품질 #발예향

  • 소프트웨어 테스트의 기본 원칙

    • 원리: 함 존재 증명, 벽 테스팅은 불가능, 기 집중, 결함 중, 충제 패러독스, 황 의존적, 류-부재의 궤변 #결완초집 살정오

    • 소프트웨어 테스트 프로세스: 테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 → 테스트 수행 → 테스트 결과 평가 및 리포팅

    • 테스트 산출물: 테스트 계획서, 테스트 베이시스, 테스트 케이스, 테스트 슈트, 테스트 시나리오, 테스트 스크립트, 테스트 결과서

  • 소프트웨어 테스트 유형

    • 프로그램 실행 여부에 따른 분류

      • 정적 테스트

      👉 종류: 인스펙션, 워크 스루

      • 동적 테스트

      👉 화이트박스 테스트: 문 커버리지(모든 명령문), 정 커버리지, 건 커버리지, 건/결정 커버리지, 경 조건/결정 커버리지, 중 조건 커버리지, 본 경로 커버리지, 어 흐름 테스트, 이터 흐름 테스트 #구결조 조변다 기제데

      👉 블랙박스 테스트: 등분할 테스트, 곗값 분석 테스트, 정 테이블 테스트, 태 전이 테스트, 스케이스 테스트, 류 트리 테스트, 어와이즈 테스트, 인-결과 그래프 테스트, 교 테스트 #동경결상 유분페원비

      👉 경험기반 테스트: 탐색적 테스트, 오류 추정

      • 테스트 커버리지: 프로그램의 테스트 수행 정도를 나타내는 값으로 테스트 수행의 완벽성을 측정하는 도구이다.

      👉 유형: 기능 기반 커버리지, 라인 커버리지, 코드 커버리지

    • 테스트 시각에 따른 분류: 검증, 확인

    • 테스트 목적에 따른 분류: 복 테스트, 전 테스트, 능 테스트, 조 테스트, 귀 테스트, 행 테스트 #회안성 구회병

      • 성능 테스트 상세 유형: 부하 테스트(임계점 찾기), 강도 테스트(임계점 이상의 부하), 스파이크 테스트(사용자 트래픽 증가), 내구성 테스트(긴 시간 부가를 가함)
    • 테스트 종류에 따른 분류: 세 기반 테스트, 조 기반 테스트, 험 기반 테스트 #명구경

  • 테스트 케이스

    • 개념: 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건 예상된 결과의 집합이다.

    • 주요 항목: 테스트 ID, 테스트 일자, 테스트 목적, 테스트 기능, 입력 데이터, 케이스 설명, 예상 출력, 중요도, 테스트 환경, 전제 조건, 성공/실패 기준, 기대 결과

  • 테스트 오라클

    • 개념: 테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참값입력하여 비교하는 기법이다.

    • 종류: 참 오라클, 샘플링 오라클, 휴리스틱 오라클, 일관성 검사

애플리케이션 테스트 시나리오 작성 :star::star:

  • 테스트 레벨

    • 개념: 테스트 활동의 그룹이다. 테스트 레벨은 독립적이다.

    • 종류: 위 테스트, 합 테스트, 스템 테스트, 수 테스트(사용자 인수 테스트, 운영상의 인수 테스트, 계약 인수 테스트, 규정 인수 테스트, 알파 테스트, 베타 테스트) #단통시인

  • 테스트 시나리오

    • 개념: 테스트 케이스의 동작 순서기술문서이며 테스트를 위한 절차를 명세한 문서이다.

애플리케이션 테스트 수행 :star::star::star:

  • 단위 테스트

    • 개념: 개별적인 모듈을 테스트한다.

    • 목 객체 생성 프레임워크

      • 개념: 테스트 대상의 간접적인 출력 결과검증하고, 테스트 대상 오브젝트와 의존 오브젝트 사이에서 일어나는 일을 검증할 수 있도록 설계된 오브젝트이다.

      • 유형: 미 객체, 테스트 텁, 테스트 라이버, 테스트 파이, 짜 객체 #더스드 스가

  • 통합 테스트

    • 개념: 소프트웨어 각 모듈 간인터페이스 관련 오류결함찾아내기 위한 체계적인 테스트 기법이다.

    • 방법의 분류 #하스상드(하향식-스텁, 상향식-드라이버)

      • 하향식 통합: 메인 모률로부터 아래 방향으로 진행, 깊이-우선, 너비-우선 방식으로 통합된다.

      • 상향식 통합: 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하며 수행한다.

      • 샌드위치 통합

  • 테스트 자동화 도구

    • 개념: 반복적인 테스트 작업을 스크립트 형태구현, 시간 단축인력 투입 비용 최소화할 수 있는 방법이다.

    • 유형: 적 분석 도구, 테스트 행 도구, 능 테스트 도구, 테스트 제 도구 #정실성통

    • 테스트 하네스

      • 개념: 테스트지원하기 위한 코드데이터이다. 코드 개발자직접 작성한다.

      • 구성요소: 테스트 라이버, 테스트 텁, 테스트 트, 테스트 이스, 테스트 나리오, 테스트 크립트, 오브젝트 #드 스슈 케시스목

애플리케이션 테스트 결과 분석 :star:

  • 테스트 결과 분석

    • 소프트웨어 결함: 오류(사람에 의해 생성), 결점, 버그, 고장/문제(결점이 포함된 제품이 실행되면 발생)
  • 결함 분석

    • 방법: 구체화, 고립화, 일반화

애플리케이션 개선 조치사항 작성 :star::star:

  • 테스트 커버리지

    • 개념: 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위측정하는 테스트 품질 측정 기준이다.

    • 유형: 능 기반 커버리지, 인 커버리지, 드 커버리지 #기라코

  • 결함 식별 및 관리

    • 결함 심각도별 분류: 명적 결함, 요 결함, 통 결함, 미한 결함, 순한 결함 #치주보 경단

애플리케이션 성능 개선

애플리케이션 성능 분석 :star:

  • 애플리케이션 성능 점검 개요

    • 측정 지표: 리량, 답 시간, 과 시간, 원 사용률 #처응경자

    • 유형별 성능 분석 도구

    • 성능 분석 도구: JMeter, LoadUI, OpenSTA

    • 시스템 모니터링 도구: Scouter, Zabbix

  • 애플리케이션 성능 저하 원인

    • 데이터베이스 관련 성능 저하 원인: DB , 불필요한 DB 치, 연결 누수(Leak), 부적절한 커넥션 풀 크기(Size), 밋 관련 #락패릭사커
  • 애플리케이션 성능 테스트 프로세스

    • 수행 절차: 성능 테스트 구 설치 → 테스트 경 설정 → 나리오 생성 → 능 테스트 실행 및 모니터링 #도환시성

애플리케이션 성능 개선 :star::star:

  • 소스 코드 최적화의 이해

    • 배드 코드

      • 사례: 외계인 코드, 스파게티 코드, 알 수 없는 변수명, 로직 중복

      • 유형: 오염, 문서부족, 의미 없는 이름, 높은 결합도, 아키텍처 침식

    • 클린코드

      • 원칙: 독성, 순성, 존성 최소, 복성 제거, 상화 #가단의 중추

      • 유형: 의미 있는 이름, 간결하고 명확한 주석, 보기 좋은 배치, 작은 함수, 읽기 쉬운 제어 흐름, 오류 처리, 클래스 분할 배치, 느슨한 결합 기법 적용, 코딩 형식 기법 적용

  • 소스 코드 품질 분석 도구

    • 유형: 정적 분석 도구(pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura), 동적 분석 도구(Avalanche, Valgrind)
  • 리팩토링

    • 목적: 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질향상