참고1. 노랑마킹은 시험에 나온 중요한 부분입니다.
참고2. 주황강조는 약어 혹은 중요한 내용입니다.
참고3. 회색마킹은 예시입니다.
제 2과목 소프트웨어 개발 > 애플리케이션 테스트 관리
테스트 케이스(Test Case)
테스트 케이스는 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합이다.
테스트 조건 / 테스트 데이터 / 예상 결과 [2021년 1회]
테스트 케이스 작성 절차
- 테스트 계획 검토 및 자료 확보
- 위험 평가 및 우선순위 결정
- 테스트 요구사항 정의
- 테스트 구조 설계 및 테스트 방법 결정
- 테스트 케이스 정의
- 테스트 케이스 타당성 확인 및 유지보수
테스트 케이스 구성요소(ISO/IEC/IEEE 29119-3 표준)
- 식별자 (Identifier)
- 테스트 항목 (Test Item)
- 입력명세 (Input Specification)
- 출력명세 (Output Specification)
- 환경설정 (Environmental Needs)
- 특수절차요구 (Special Procedure Requirement)
- 의존성 기술 (Inter-case Dependencies)
테스트 오라클(Test Oracle)
테스트 오라클은 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법이다. [2020년 3회, 4회]
테스트 오라클 종류 (참샘휴일)
참(True) 오라클 / 샘플링(Sampling) 오라클 / 휴리스틱(추정, Heuristic) 오라클 / 일관성 검사(Consistent) 오라클
테스트 레벨(Test Level)
- 테스트 레벨은 함께 편성되고 관리되는 테스트 활동의 그룹이다.
- 프로젝트에서 책임과 연관 되어있다.
- 각각의 테스트 레벨은 서로 독립적이다.
테스트 레벨 종류 (단통시인)
종류 | 설명 | 기법 |
단위 테스트 (Unit Test) |
사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계 | 인터페이스 테스트 자료 구조 테스트 실행 경로 테스트 오류 처리 테스트 |
통합 테스트 (Integration Test) |
단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트하는 단계 | 빅뱅 테스트 상향식/하향식 테스트 |
시스템 테스트 (System Test) |
개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에 대해 테스트하는 단계 | 기능/비기능 요구사항 테스트 |
인수 테스트 (Acceptance Test) |
계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계 | 알파/베타 테스트 *알파: 사용자-개발자 함께 확인 *베타: 사용자 확인 |
테스트 시나리오(Test Scenario)
테스트 시나리오는 애플리케이션의 테스트되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서이다.
테스트 지식 체계
프로그램 실행 여부에 따른 분류
분류 | 설명 | 유형 |
정적 테스트 | 테스트 대상을 실행하지 않고 구조를 분석하여 논리성 검증 | 리뷰(동료 검토, 워크 스루, 인스펙션), 정적분석 |
동적 테스트 | 소프트웨어를 실행하여 결함 검출 | 화이트/블랙박스 테스트, 경험기반 테스트 |
화이트/블랙박스 테스트
종류 | 설명 |
블랙박스 테스트 |
명세 기반 테스트, 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트) |
화이트박스 테스트 | 구조 기반 테스트, 모듈 내부 소스 코드를 보면서 수행하는 테스트 |
블랙박스 테스트 유형 (동경결상 유분페원비) [2020년 3회] [2021년 1회]
- 동등 분할 테스트 (Equivalence Partitioning Testing) (=동치 분할) (=균등 분할)
- 경곗값 분석 테스트 (Boundary Value Analysis Testing) (=한곗값)
- 결정 테이블 테스트 (Decision Table Testing)
- 상태전이 테스트 (State Transition Testing)
- 유스케이스 테스트 (Use Case Testing)
- 분류 트리 테스트 (Classification Tree Method Testing)
- 페어와이즈 테스트 (Pairwise Testing)
- 원인-결과 그래프 테스트 (Cause-Effect Graphing Testing)
- 비교 테스트 (Comparison Testing)
- 오류 예측 테스트
- 경험기반 테스트
화이트박스 테스트 유형 (구결조 조변다 기제데)
유형 | 설명 |
구문(문장) 커버리지 (Statement Coverage) |
프로그램 내의 모든 명령문을 적어도 한 번 수행 |
결정 커버리지 (Decision Coverage) (=선택/분기(Branch) 커버리지) |
결정 포인트 내의 전체 조건식이 적어도 한 번은 참(T)과 거짓(F)의 결과를 수행 |
조건 커버리지 (Condition Coverage) |
결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행 |
조건/결정 커버리지 (Condition/Decision Coverage) |
전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되고록 수행 |
변경 조건/결정 커버리지 (Modified Condition/Desition Coverage) |
개별 조건식이 다른 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지 |
다중 조건 커버리지 (Multiple Condition Coverage) |
결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장 |
(기본) 경로 커버리지 (Base Path Coverage) |
수행 가능한 모든 경로 테스트 |
제어 흐름 테스트 (Control Flow Testing) |
프로그램 제어구조를 그래프 형태로 나타내어 내부 로직 테스트 |
데이터 흐름 테스트 (Data Flow Testing) |
제어흐름 그래프에 데이터 사용현황을 추가한 그래프를 통해 테스트 |
테스트 시각에 따른 분류
검증(Verification) / 확인(Validation)
테스트 목적에 따른 분류 (회안성구회병)
회복(Recovery) 테스트 / 안전(Security) 테스트 / 성능(Performance) 테스트 / 구조(Structure) 테스트 / 회귀(Regression) 테스트 / 병행(Parallel) 테스트
→ 중국의 회안성에 사는 구회병씨
성능 테스트의 상세 유형 (부스스내)
부하 테스트 / 스트레스 테스트 / 스파이크 테스트 / 내구성 테스트
→ 부스스하고 내복 입고 일어남
소프트웨어 테스트의 원리 (결완초집 살정오)
결함이 존재 / 완벽한 테스팅 불가능 / 초기에 테스팅 시작 / 결함 집중 / 살충제 패러독스 / 정황에 의존 / 오류 부재의 궤변
(2) 애플리케이션 통합 테스트
코드 커버리지 유형 (구결조 조변다)
구분(문장) / 결정 / 조건 / 조건,결정 / 변경 조건,결정 / 다중 조건
테스트 자동화 도구
테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써 테스트 시간 단축과 인력 투입 비용을 최소화하며, 쉽고 효율적인 테스트를 수행할 수 있는 방법이다.
테스트 자동화 도구 유형
구분 | 테스트 자동화 도구 |
정적 분석 도구 (Static Analysis Tools) |
PMD, Checkstyle, Splint, Cppcheck, SonarQube 등 |
테스트 실행 도구 (Test Execution Tools) |
JMeter, OpenSTA 등 |
성능 테스트 도구 (Performance Test Tools) |
Cobertura, Clover 등 |
테스트 통제 도구 (Test Control Tools) |
Hudson, Ant, xUnit 등 |
테스트 장치(Test Harness) 구성요소 (드스슈 시스목)
테스트 드라이버(Driver) / 테스트 스텁(Stub) / 테스트 슈트(Suit) / 테스트 시나리오 / 테스트 스크립트 / 목(Mock) 오브젝트
* +) 테스트 케이스
구분 | 드라이버(Driver) | 스텁(Stub) [2021년 1회] |
개념 | 테스트 대상의 하위 모듈을 호출하는 도구로, 매개변수(Parameter)를 전달하고, 모듈 테스트 수행 후의 결과를 도출함 | 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 시험용 모듈 |
필요 시기 | 상위 모듈 없이 하위 모듈이 있는 경우 하위 모듈 구동 | 상위 모듈은 있지만 하위 모듈이 없는 경우 하위 모듈 대체 |
테스트 방식 | 상향식(Bottom Up) 테스트 | 하향식(Top-Down) 테스트 |
공통점 | 소프트웨어 개발과 테스트를 병행할 경우 사용 | |
차이점 | 이미 존재하는 하위 모듈과 존재하지 않는 상위 모듈 간의 인터페이스 역할을 함 소프트웨어 개발이 완료되면 드라이버는 본래의 모듈로 교체됨 |
일시적으로 필요한 조건만을 가지고 임시로 제공되는 가짜 모듈의 역할을 함 시험용 모듈이기 때문에 일반적으로 드라이버보다 작성하기 쉬움 |
통합 테스트(Integration Test)
- 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트이다.
- 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하는 것이다.
통합테스트 수행방법의 분류
(하스 상드) 하향식(스텁) / 상향식(드라이버)
구분 | 설명 |
하향식 통합 테스트 (Top Down Test) |
메인 제어 모듈(프로그램)로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하는 테스트이다. |
상향식 통합 테스트 (Bottom Up Test) |
애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 점진적으로 상위 모듈과 함께 테스트하는 기법이다. |
'IT License > 정처기필기-2과목' 카테고리의 다른 글
2024 #정보처리기사 필기요약 #2-5. 인터페이스 구현 (5) | 2024.07.05 |
---|---|
2024 #정보처리기사 필기요약 #2-2. 통합구현, 배포, 버전관리 (0) | 2024.07.05 |
2024 #정보처리기사 필기요약 #2-1. 트리 순회방법, 차수 구하기 (0) | 2024.07.05 |
2024 #정보처리기사 필기요약 #2-1. 데이터 입출력 구현 (0) | 2024.07.05 |
댓글