[정보처리기사] 실기 용어 정리 애플리케이션 테스트 관리

728x90

7장 애플리케이션 테스트 관리

애플리케이션 테스트 관리

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

1. 애플리케이션 테스트 케이스 작성

소프트웨어 테스트 필요성

  • 오류 발견, 오류 예방, 품질 향상

 

소프트웨어 테스트 원리

  • 함존재 증명
  • 벽 테스팅 불가
  • 기 집중
  • 함 집중(파레토법칙)
  • 충제 패러독스
  • 황 의존성
  • 류 부재의 궤변

 

소프트웨어 테스트 산출물

  • 테스트 계획서
  • 베이시스: 테스트 설계를 위한 기준이 되는 문서
  • 케이스: 테스트를 위한 설계 산출물
  • 슈트: 테스트 케이스의 집합
  • 시나리오: 테스트가 필요한 상황을 작성한 문서
  • 스크립트: 테스트 케이스의 순서(절차)
  • 결과서

 

소프트웨어 테스트 유형

  • 정적 테스트
    • 리뷰-동료검토, 인스펙션, 워크스루, 정적 분석
  • 동적 테스트
    • 블랙박스 테스트, 화이트박스 테스트

 

화이트박스 테스트

  • 프로그램 내부 구조와 동작을 검사하는 테스트(구조 기반)
  • 구문(문장): 모든 명령문을 적어도 한번 수행
  • 결정(선택, 분기): 전체식이 적어도 한번은 T/F결과 수행
  • 조건: 각 개별 조건식이 적어도 한번은 T/F 결과 수행
  • 조건/결정: 전체조건 + 개별식도 T/F
  • 변경 조건/결정: 조건/결정 향상
  • 다중조건: 모든 경우의 수, 논리적인 조합이 적어도 한 번은 테스트 되도록(100%)
  • 기본 경로: 수행가능한 모든 경로(맥케이브 순환복잡도 기반)
  • 제어흐름 테스트: 그래프 형태
  • 데이터흐름 테스트

 

블랙박스 테스트

  • 외부 사용자의 요구사항 명세를 보면서 수행하는 기능테스트(명세 기반)
  • 동등 분할 검사(Equivalence Partitioning): 유사한 도메인별로 유효값과 무효값을 그룹핑하여 나누어서 검사
  • 경계값 분석(Boundary Value Analysis):  0 ≤ x ≤ 10이면 -1, 0, 10, 11 검사
  • 원인-효과 그래프 검사(Cause-effect Graph)
  • 오류 예측 검사
  • 비교 검사(Comparison Testing)
  • 상태전이 검사
  • 결정 테이블
  • 유스케이스
  • 분류 트리
  • 페어와이즈

 

테스트 시각에 따른 분류

  • 검증 - 개발자 시각
  • 확인 - 사용자 시각

 

테스트 목적에 따른 분류

  • 회복 테스트: 시스템이 장애 상황에서도 정상 작동하는지
  • 안전 테스트: 보안 취약점을 검증하여 해킹 등의 공격으로부터 안전한지
  • 성능 테스트: 시스템의 용량, 응답시간, 처리량 등 성능
  • 구조 테스트: SW 코드 내부 구조를 검증하여 구조적 결함, 버그 수정
  • 회귀 테스트: 기존에 동작하던 SW가 새로운 기능 추가, 버그 수정으로 인해 영향을 받지 않는지 테스트
  • 병행 테스트:여러 사용자의 요구를 동시에 처리할 수 있는지

 

테스트 종류에 따른 분류

  • 명세기반 테스트(블랙박스): 요구사항 명세사 기반 테스트
  • 구조기반 테스트(화이트박스): 내부 논리 흐름에 따라서 테스트 케이스 작성하고 확인
  • 경험기반 테스트(블랙박스): 경험을 토대로 직관과 기술능력으로 테스트

 

테스트 커버리지

  • 테스트를 얼마나 수행했는지 측정하는 기준
  • 기능 기반 커버리지, 라인 커버리지, 코드 커버리지

 

테스트 오라클

  • 테스트 결과가 참인지 거짓인지 비교하기 위하여 사전에 정의된 참값을 입력하여 비교
  • (ALL), 샘플링, 휴리스틱(추정), 일관성검사(수행 전후 결과값 동일한지)

 

테스트 레벨

  • 단위: 단위모듈, 서브루틴 테스트
  • 통합: 컴포넌트, 인터페이스간 상호작용 검증, 정상실행 되는지(상향식/하향식/백본/빅뱅 테스트)
  • 시스템: 시스템 정상수행 되는지(기능, 비기능 테스트)
  • 인수: 요구사항 만족되었는지 확인(알파, 베타)

 

애플리케이션 통합 테스트

통합 테스트

  • 점증적 방식
    • 상향식 통합 테스트
    • 하향식 통합 테스트
    • 백본 테스트: 상향식 + 하향식
  • 비 점증적 방식
    • 빅뱅 테스트

 

테스트 자동화 도구

  • 정적 분석 도구: 정적 테스팅 도구, 코드 검사 도구, 코드 인스펙션 툴 등
  • 테스트 실행 도구: 데이터 주도 접근 방식, 키워드 주도 접근 방식
  • 성능 테스트 도구
  • 테스트 통제 도구

 

테스트 하네스(장치)

  • 테스트를 지원하기 위한 코드와 데이터
  • 드라이버: 상향식 테스트에 필요
  • 스텁: 하향식 테스트에 필요
  • 트: 테스트 케이스의 집합
  • 이스: 입력 값, 실행 조건, 기대 결과 등의 집합
  • 나리오
  • 크립트: 자동화된 테스트 실행 절차
  • 오브젝트: 조건부로 상황에 예정된 행위를 수행하는 객체 발생한 결함을 추적하고 관리할 수 있게 해주는 도구

 

결함관리

  • 발생한 결함을 추적하고 관리할 수 있게 해주는 도구
  • 결함관리 프로세스
    1. 에러 발견
    2. 에러 등록
    3. 에러 분석
    4. 결함 확정
    5. 결함 할당
    6. 결함 조치
    7. 결함 조치 검토 및 승인

 

리팩토링

  • 기능의 변경 없이 내부 구조를 개선하는 방법
  • 소스코드 품질 분석
    • 동료 검토(Peer Review)
    • 워크스루(Walkthrough)
    • 인스펙션(Inspection): 계획 - 사전교육 -준비 - 인스펙션 회의 - 수정 - 후속조치

 

클린코드

  • 알고리즘 개선, 병목 현상 제거, 실행 시간 단축, 메모리 사용 최소화
  • 코드 스멜
    • 소스코드에서 발견할 수 있는 잠재적인 문제점
    • 스파게티 코드,외계인 코드, 레거시 시스템 
  • 클린코드 작성원칙
    • 가독성
    • 단순성
    • 의존성 배제
    • 중복성 최소화
    • 추상화

 

유지보수

  • 수정 보수: 오류 수정
  • 적응 보수: 환경 변화
  • 향상 보수: 기능추가
  • 예방 보수: 잠재적 오류 대비

 

애플리케이션 배포

  • 최종 사용자에게 소프트웨어를 전달하는 전체 과정
  • CI: 지속적인 통합
  • CD: 지속적인 배포
  • 릴리즈 노트: 소프트웨어 제품과 함게 배포되는 문서

 

DRM

  • 디지털 콘텐츠의 불법 사용을 제한하고, 승인된 사용자에게만 콘텐츠 사용을 허용하는 기술
  • DRM의 구성 및 흐름
    • 콘텐츠 제공자
    • 콘텐츠 분배자
    • 패키저: 콘텐츠를 메타 데이터와 묶는 기술
    • 보안 컨테이너: 안전한 유통을 위한 전자적 보안 장치
    • DRM 컨트롤러: 콘텐츠의 이용 권한을 통제
    • 클리어링 하우스: 키 관리 및 라이선스 발급 관리

 

DRM 사용 규칙 제어 기술

  • 콘텐츠 식별 체계: 콘텐츠에 고유 식별 번호를 부여(DOI, URI)
  • 메타데이터: 콘텐츠에 관한 구조화된 데이터
  • 권리 표현 기술: 콘텐츠에 대한 규칙을 설정(XrML)

 

저작권 보호 기술

  • 암호화 기술
  • 위변조 방지: 콘텐츠에 무단 조작 시 감지하고 오류 동작을 유발
  • 워터마킹
    • 콘텐츠에 저작권 정보를 은닉
    • 워터마킹(불법 복제 방지), 핑거프린팅(불법 유통 방지)

 

 

 

 

 

 

 

728x90