728x90
애플리케이션 테스트 관리
애플리케이션 테스트 케이스 설계
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), 샘플링, 휴리스틱(추정), 일관성검사(수행 전후 결과값 동일한지)
테스트 레벨
- 단위: 단위모듈, 서브루틴 테스트
- 통합: 컴포넌트, 인터페이스간 상호작용 검증, 정상실행 되는지(상향식/하향식/백본/빅뱅 테스트)
- 시스템: 시스템 정상수행 되는지(기능, 비기능 테스트)
- 인수: 요구사항 만족되었는지 확인(알파, 베타)
애플리케이션 통합 테스트
통합 테스트
- 점증적 방식
- 상향식 통합 테스트
- 하향식 통합 테스트
- 백본 테스트: 상향식 + 하향식
- 비 점증적 방식
- 빅뱅 테스트
테스트 자동화 도구
- 정적 분석 도구: 정적 테스팅 도구, 코드 검사 도구, 코드 인스펙션 툴 등
- 테스트 실행 도구: 데이터 주도 접근 방식, 키워드 주도 접근 방식
- 성능 테스트 도구
- 테스트 통제 도구
테스트 하네스(장치)
- 테스트를 지원하기 위한 코드와 데이터
- 드라이버: 상향식 테스트에 필요
- 스텁: 하향식 테스트에 필요
- 슈트: 테스트 케이스의 집합
- 케이스: 입력 값, 실행 조건, 기대 결과 등의 집합
- 시나리오
- 스크립트: 자동화된 테스트 실행 절차
- 목 오브젝트: 조건부로 상황에 예정된 행위를 수행하는 객체 발생한 결함을 추적하고 관리할 수 있게 해주는 도구
결함관리
- 발생한 결함을 추적하고 관리할 수 있게 해주는 도구
- 결함관리 프로세스
- 에러 발견
- 에러 등록
- 에러 분석
- 결함 확정
- 결함 할당
- 결함 조치
- 결함 조치 검토 및 승인
리팩토링
- 기능의 변경 없이 내부 구조를 개선하는 방법
- 소스코드 품질 분석
- 동료 검토(Peer Review)
- 워크스루(Walkthrough)
- 인스펙션(Inspection): 계획 - 사전교육 -준비 - 인스펙션 회의 - 수정 - 후속조치
클린코드
- 알고리즘 개선, 병목 현상 제거, 실행 시간 단축, 메모리 사용 최소화
- 코드 스멜
- 소스코드에서 발견할 수 있는 잠재적인 문제점
- 스파게티 코드,외계인 코드, 레거시 시스템
- 클린코드 작성원칙
- 가독성
- 단순성
- 의존성 배제
- 중복성 최소화
- 추상화
유지보수
- 수정 보수: 오류 수정
- 적응 보수: 환경 변화
- 향상 보수: 기능추가
- 예방 보수: 잠재적 오류 대비
애플리케이션 배포
- 최종 사용자에게 소프트웨어를 전달하는 전체 과정
- CI: 지속적인 통합
- CD: 지속적인 배포
- 릴리즈 노트: 소프트웨어 제품과 함게 배포되는 문서
DRM
- 디지털 콘텐츠의 불법 사용을 제한하고, 승인된 사용자에게만 콘텐츠 사용을 허용하는 기술
- DRM의 구성 및 흐름
- 콘텐츠 제공자
- 콘텐츠 분배자
- 패키저: 콘텐츠를 메타 데이터와 묶는 기술
- 보안 컨테이너: 안전한 유통을 위한 전자적 보안 장치
- DRM 컨트롤러: 콘텐츠의 이용 권한을 통제
- 클리어링 하우스: 키 관리 및 라이선스 발급 관리
DRM 사용 규칙 제어 기술
- 콘텐츠 식별 체계: 콘텐츠에 고유 식별 번호를 부여(DOI, URI)
- 메타데이터: 콘텐츠에 관한 구조화된 데이터
- 권리 표현 기술: 콘텐츠에 대한 규칙을 설정(XrML)
저작권 보호 기술
- 암호화 기술
- 위변조 방지: 콘텐츠에 무단 조작 시 감지하고 오류 동작을 유발
- 워터마킹
- 콘텐츠에 저작권 정보를 은닉
- 워터마킹(불법 복제 방지), 핑거프린팅(불법 유통 방지)
728x90
'자격증' 카테고리의 다른 글
[정보처리기사] 실기 용어 정리 응용 SW 기초기술(네트워크) (1) | 2024.04.26 |
---|---|
[정보처리기사] 실기 용어 정리 응용 SW 기초기술(운영체제) (1) | 2024.04.25 |
[정보처리기사] 실기 용어 정리 데이터 입출력 구현 (1) | 2024.04.24 |
[정보처리기사] 실기 기출문제(2023) 풀이 C언어 (4) | 2024.04.22 |
[정보처리기사] 실기 기출문제(2023-2020) 풀이 Python (2) | 2024.04.22 |