본문 바로가기
IT License/정처기필기-2과목

2024 #정보처리기사 필기요약 #2-4. 테스트, 구현

by 시뮝 2024. 7. 5.
728x90

참고1. 노랑마킹은 시험에 나온 중요한 부분입니다.

참고2. 주황강조는 약어 혹은 중요한 내용입니다.

참고3. 회색마킹은 예시입니다. 


제 2과목 소프트웨어 개발 > 애플리케이션 테스트 관리


테스트 케이스(Test Case)

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

테스트 조건 / 테스트 데이터 / 예상 결과 [2021년 1회]

테스트 케이스 작성 절차

  1. 테스트 계획 검토 및 자료 확보
  2. 위험 평가 및 우선순위 결정
  3. 테스트 요구사항 정의
  4. 테스트 구조 설계 및 테스트 방법 결정
  5. 테스트 케이스 정의
  6. 테스트 케이스 타당성 확인 및 유지보수

테스트 케이스 구성요소(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)
애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 점진적으로 상위 모듈과 함께 테스트하는 기법이다.

 

728x90

댓글