yunyj99
라둥이
yunyj99
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (309)
    • 1. 프로그래밍 (50)
      • 1-1. Git (17)
      • 1-2. Java (13)
      • 1-2-1. Java GUI (1)
      • 오류 (12)
      • 기타 (7)
    • 2. Front-end (57)
      • 2-1. HTML (5)
      • 2-2. CSS (19)
      • 2-3. Java Script (33)
      • 2-4. React (0)
    • 3. Back-end (47)
      • 3-1. Spring MVC - 국비 (15)
      • 3-2. Spring MVC - 남궁성 (30)
      • 3-3. Spring - 김영한 (2)
    • 4. Android (1)
    • 5. DB (20)
      • 4-1. MySQL DBMS (20)
    • 6. 자료구조 & 알고리즘 (44)
      • 6-1. 자료구조 (14)
      • 6-2. 백준 (30)
    • 7. 웹 디자인 (7)
      • 7-1. UX 디자인 (7)
    • 8. 자격증 (35)
      • 8-1. 정보처리기사 (35)
    • 프로젝트 (3)
      • 프로젝트 기록 (3)
    • etc... (43)
      • 패스트캠퍼스 챌린지 (39)
      • 잡담 (4)

블로그 메뉴

  • 홈
  • 태그

최근 글

티스토리

hELLO · Designed By 정상우.
yunyj99

라둥이

쓰기
8. 자격증/8-1. 정보처리기사

정처기 2-4. 애플리케이션 테스트 관리

2021. 8. 5. 03:35

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

 

< 테스트 케이스 >

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

- 테스트 케이스 구성요소 : 식별자 / 테스트 항목 / 입력명세 / 출력명세 / 환경설정 / 특수절차요구 / 의존성 기술

 

- 테스트 오라클 : 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법

- 테스트 오라클 종류 : 

참 오라클 발생된 오류를 모두 검출할 수 있는 오라클
샘플링 오라클 특정한 몇 개의 입력값에 대해서만 기대한느 결과를 제공해주는 오라클
휴리스틱 오라클 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱으로 처리한느 올아클
일관성 검사 오라클 애플리케이션 변경이 있을 때, 수행 전과 후의 결괏값이 동일한지 확인하는 오라클

- 테스트 레벨 : 함께 편셩되고 관리되는 테스트 활동의 그룹

- 테스트 레벨 종류 : 단위 테스트 / 통합 테스트 / 시스템 테스트 / 인수 테스트

 

- 테스트 시나리오 : 애플리케이션의 테스트되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서

 

 

 

< 테스트 지식 체계 >

- 소프트웨어 테스트 종류 :

프로그램 실행 여부에 따른 분류 - 정적 테스트 : 동료 검토 / 워크 스루 / 인스펙션
- 동적 테스트 : 화이트박스 테스트, 블랙박스 테스트, 경험기반 테스트
테스트 기법에 따른 분류 - 화이트박스 테스트 : 구문 커버리지 / 결정 커버리지 / 조건 커버리지 / 조건,결정 커버리지 / 변경 조건,결정 커버리지 / 다중 조건 커버리지 / 기본 경로 커버리지 / 제어 흐름 테스트 / 데이터 흐름 테스트
- 블랙박스 테스트 : 동등 분할 테스트 / 경곗값 분석 테스트 / 결정 테이블 테스트 / 상태전이 테스트 / 유스케이스 테스브 / 분류 트리 테스트 / 페어와이즈 테스트 / 원인,결과 그래프 테스트 / 비교 테스트
테스트 시각에 따른 분류 - 검증
- 확인
테스트 목적에 따른 분류 회복 / 안전 / 성능(부하, 스트레스, 스파이크, 내구성) / 구조 / 회귀 / 병행
테스트 종류에 따른 분류 명세 기반 테스트 / 구조 기반 테스트 / 경험 기반 테스트

 

- 소프트웨어 테스트의 원리 : 결함이 존재 / 완벽한 테스팅 불가능 / 초기에 테스팅 시작 / 결함 집중 / 살충제 패러독스 / 정황에 의존 / 오류 부재의 궤변

 


2. 애플리케이션 통합 테스트

 

< 결함 관리 도구 >

- 결함 관리 도구 : 단계별 테스트 수행 수 발생한 결함의 재발 방지를 위해, 유사 결함 발견 시 처리 시간 단축을 위해 결함을 추적하고 관리하는 도구

- 결함 관리 프로세스 : 에러 발견 / 에러 등록 / 에러 분석 / 결함 확정 / 결함 할당 / 결함 조치 / 결함 조치 검토 및 승인

 

- 결함 추이 분석 : 테스트 완료 후 발견된 결함의 결함 관리 측정 지표의 속성 값들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업

- 결함 추이 유형 : 결함 분포 분석 / 결함 추이 분석 / 결함 에이징 분석

 

- 테스트 커버리지 : 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준

- 테스트 커버리지 유형 : 기능 기반 커버리지 / 라인 커버리지 / 코드 커버리지(구문 / 결정 / 조건 / 조건,결정 / 변경 조건,결정 / 다중 조건)

 

- 결함의 식별 : 에러, 오류 / 결함, 결점, 버그 / 실패, 문제

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

- 결함 우선순위 : 결정적 -> 높음 -> 보통 -> 낮음

 

 

 

< 테스트 자동화 도구 >

- 테스트 자동화 도구 : 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써 테스트 시간 단축과 인력 투입 비용을 최소화하며, 쉽고 효율적인 테스트를 수행할 수 있는 방법

- 테스트 자동화 도구 유형 :

  1. 정적 분석 도구 : PMD, Checkstyle, Splint, Cppcheck, SonarQube
  2. 테스트 실행 도구 : 스크립트를 실행하는 도구. 데이터 주도 접근 방식과 키워드 주도 접근 방식으로 나뉨.                                       JMeter, OpenSTA,
  3. 성능 테스트 도구 : Cobertura, Clover
  4. 테스트 통제 도구 : Hudson, Ant, xUnit

 

- 테스트 장치 : 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말함

- 테스트 장치 구성요소 : 테스트 드라이버 / 테스트 스텁 / 테스트 슈트 / 테스트 케이스 / 테스트 시나리오 / 테스트 스크립트 / 목 오브젝트

 

 

 

< 통합 테스트 >

- 통합 테스트 : 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트

- 수행 방법의 분류 : 하향식 통합 테스트 / 상향식 통합 테스트 / 샌드위치 통합 테스트 / 빅뱅

하향식 통합 테스트 - 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하는 테스트
- 깊이-우선, 너비-우선
- 스텁
상향식 통합 테스트 - 최하위 레벨의 모듈 또는 컴포넌트로부터 점진적으로 상위 모듈과 함께 테스트하는 기법
- 드라이버

 


3. 애플리케이션 성능 개선

 

< 알고리즘 >

- 알고리즘 : 어떠한 문제를 해결하기 위한 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 기법

- 특성 : 입력, 출력, 명확성, 유한성, 유효성

- 기법 : 분할과 정복 / 동적 계획법 / 탐욕법 / 백트랙킹

해싱함수 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수
거품 정렬 두 인접한 원소를 검사하여 정렬하는 방법
삽입 정렬  앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하며, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘
선택 정렬 가장 작은 데이터를 찾아 정렬되지 않은 부분의 가장 앞의 데이터와 교환해나가는 알고리즘

 

 

< 소스 코드 품질 분석 >

- 소스 코드 품질 분석 : 소스 코드에 대한 코딩 스타일, 설정된 코딩 표준, 코드의 복잡도 등을 발견하기 위한 활동

- 유형 : 정적 분석 도구(pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura) / 동적 분석 도구(Avalanche, Valgrind)

- 소스 코드 복잡도 분석 : 맥케이브 회전 복잡도

 

 

 

< 코드 최적화 >

- 코드 최적화 : 읽기 쉽고 변경 및 추가가 쉬운 클린 코드를 작성하는 것

- 클린 코드 작성 원칙 : 가독성 / 단순성 / 의존성 최소 / 중복성 제거 / 추상화

 


 

'8. 자격증 > 8-1. 정보처리기사' 카테고리의 다른 글

정처기 3-1. SQL 응용 / 3-2. SQL 활용  (0) 2021.08.09
정처기 2-5. 인터페이스 구현  (0) 2021.08.05
정처기 2-3. 제품 소프트웨어 패키징  (0) 2021.08.03
정처기 2-2. 통합 구현  (0) 2021.08.01
정처기 2-1. 데이터 입출력 구현  (0) 2021.08.01
    '8. 자격증/8-1. 정보처리기사' 카테고리의 다른 글
    • 정처기 3-1. SQL 응용 / 3-2. SQL 활용
    • 정처기 2-5. 인터페이스 구현
    • 정처기 2-3. 제품 소프트웨어 패키징
    • 정처기 2-2. 통합 구현
    yunyj99
    yunyj99
    개발자를 목표로 하는, 새싹처럼 성장하고 싶은 사람의 학습 공간 ^v^

    티스토리툴바