소프트웨어 개발 - 애플리케이션 테스트
#애플리케이션 테스트 케이스 설계
테스트 케이스 (Test Case)
특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합
정확성, 재사용성, 간경성 보장
■ 테스트 케이스 작성 절차
테스트 계획 검토 및 자료 확보 → 위험 평가 및 우선순위 결정 → 테스트 요구사항 정의 → 테스트 구조 설계 및 테스트 방법 결정 → 테스트 케이스 정의 및 작성 → 테스트 케이스 타당성 확인 및 유지보수
■ 테스트 케이스 구성요소
- 식별자 (Identifier)
- 테스트 항목 (Test Item)
- 입력명세 (Input Specification)
- 출력명세 (Output Specification)
- 환경설정 (Environmental Needs)
- 특수절차요구 (Special Procedure Requirement)
- 의존성 기술 (Inter-case Dependencies)
테스트 오라클 (Test Oracle)
테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
@참샘휴일
■ 참 오라클
모든 입력값에 대하여 기대하는 결과 생성, 발생된 오류를 모두 검출
■ 샘플링 오라클
특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
■ 휴리스틱 오라클
샘플링 오라클을 개선한 오라클, 특정 입력값에 대해 올바른 결과를 제공하고 나머지 값들에 대해서는 추정으로 처리
■ 일관성 오라클
애플리케이션 변경이 있을 때 수행 전과 후의 결괏값이 동일한지 확인
테스트 레벨 (Test Level)
- 소프트웨어의 개발 단계에 따라 분류한 것
- 함께 편성되고 관리되는 테스트 활동의 그룹
- 프로젝트에서 책임과 연관됨
- 각각 테스트 레벨은 서로 독립적
소프트웨어 생명주기의 V 모델
(소프트웨어 아키텍처)
요구사항 → 분석 → 검증 / 디자인 → 구현
(테스트 매니저)
단위 테스트 → 통합테스트 / 확인 → 시스템 테스트 → 인수 테스트
테스트 레벨 종류
■ 단위 테스트
사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
- 자료 구조, 인터페이스, 외부적 I/O, 독립적 기초 경로, 오류 처리 경로, 결계 조건 등을 검사
- 명세기반 테스트 (블랙박스 테스트), 구조 기반 테스트(화이트박스 테스트)로 나뉨
■ 통합 테스트
- 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트하는 단계
■ 시스템 테스트
- 개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에 대해 테스트하는 단계
- 기능적 요구사항 테스트 (블랙박스 테스트)
- 비기능적 요구사항 (화이트박스 테스트)
■ 인수 테스트
계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계
- 알파 테스트: 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트
- 베타 테스트: 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트
테스트 시나리오 (Test Scenario)
애플리케이션의 테스트되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서
■ 테스트 시나리오 작성 시 유의점
- 테스트 시나리오 분리 작성 (시스템별, 모듈별, 항목별)
- 고객의 요구사항과 설계 문서 등을 토대로 테스트 시나리오를 작성
- 식별자 번호, 순서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인 등의 항목을 포함하여 작성
프로그램 실행 여부에 따른 분류
- 정적 테스트 : 리뷰, 정적 분류
- 동적 테스트 : 화이트박스 / 블랙박스 / 경험기반 테스트
블랙박스 테스트 (Black-box Test)
- 프로그램 외부 사용자의 요구사항 명세를 보며 수행하는 테스트
- 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어짐
- 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능
- = 명세 테스트
■ 블랙박스 테스트 유형
@동경결상 유분페원비오
- 동등 분할 테스트
- 경곗값 분석 테스트
- 결정 테이블 테스트
- 상태전이 테스트
- 유스케이스 테스트
- 분류 트리 테스트
- 페어와이즈 테스트
- 원인-결과 그래프 테스트
- 비교 테스트
- 오류 추정 테스트
화이트박스 테스트 (White-box Test)
- 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트
- 코드 분석과 프로그램 구조에 대한 지식을 바탕으로 문제가 발생할 가능성이 있는 모듈 내부를 직접 관찰하고, 테스트하는 방법
- 소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행
- = 구조 기반 테스트, 코드 기반 테스트, 로직 기반 테스트, 글래스박스 테스트
■ 화이트박스 테스트 유형
@구결조 조변다 기제데루
- 구문 커버리지 (=문장 커버리지)
- 결정 커버리지 (=선택 커버리지)
- 조건 커버리지
- 조건-결정 커버리지
- 변경 조건-결정 커버리지
- 다중 조건 커버리지
- 기본 경로 커버리지 (= 경로 커버리지)
- 제어 흐름 테스트
- 루프 테스트
테스트 시각에 따른 분류
■ 검증
- 소프트웨어 개발 과정을 테스트
- 올바른 제품을 생산하고 있는지 검증
- 개발자 혹은 시험자의 시각
■ 확인
- 소프트웨어 결과를 테스트
- 만들어진 제품이 제대로 동작하는지 확인
- 최종 사용자 요구 또는 소프트웨어 요구에 적합한지 판단
- 사용자 시각
테스트 목적에 따른 분류
- 회복 테스트
- 안전 테스트
- 성능 테스트
- 강도 테스트
- 구조 테스트
- 회귀 테스트
- 병행 테스트
소프트웨어 테스트의 원리
- 결함 존재 증명
- 완벽 테스팅은 불가능
- 초기 집중
- 결함 집중
- 살충제 패러독스
- 정황 의존성
- 오류-부재의 궤변
This post is licensed under CC BY 4.0 by the author.