자격증/CSTS

Part01. 테스트 개요(제2장 테스트 분류와 테스팅 방법)

송윤슬 2023. 7. 30. 19:33

제2장 테스트 분류와 테스팅 방법

2.1 개요

- 테스트 분류 : 테스트 레벨(컴포넌트, 통합, 시스템, 인스), 테스트 유형(기능, 품질), 테스트 설계 기법

- 테스팅 방법 : 개발 생명 주기, 프로젝트 단계


2.2 테스트 분류

2.2.1 개요

- 테스트 레벨 : 컴포넌트 테스트, 통합 테스트, 시스셈 테스트, 인수 테스트

- 테스트 유형 : 기능 테스트, 성능 테스트, 신뢰성 테스트, 보안 테스트 등

- 비기능 테스트 : 성능 테스트, 신뢰성 테스트, 보안 테스트 등

- 테스트 설계 기법 : 정적 테스트, 동적 테스트

 

2.2.2 테스트 레벨에 의한 분류

- 컴포넌트/단위 테스트 : 시스템을 구성하는 단위 모듈을 테스트 대상. 개별 단위 모듈을 독립적으로 테스트

- 통합 테스트 : 시스템을 구성하는 단위 모듈들이 정확하게 통합되었는지. 구조 설계 명세서를 바탕으로 테스트 진행

- 시스템 테스트 : 전체 시스템을 테스트 대상. 요구사항 명세서에 초점

- 인수 테스트 : 전체 시스템을 테스트 대상. 고객/사용자 관점에서 고객이 기대하는 방식으로 동작하는지 확인

V 모델

2.2.3 테스트 유형에 의한 분류

[기능 테스트]

- 기능 요구사항 측면의 겨람 검출 및 충족 여부 확인을 목적

- 모든 테스트 수준에서 진행

 

[비기능 테스트]

- 품질 요구사항 측면의 결함 검출 및 충족 여부 확인을 목적

- 시스템 테스트와 인수 테스트 수준에서 진행

 

[ISO 25010 품질 모델]

- 주특성 : 기능 적합성, 사용성, 성능 효율성, 호환성, 신뢰성, 보안성, 유지보수성, 이식성

- 부특성 : 8개의 주특성별로 세부적인 품질 특성

 

2.2.4 테스트 설계 기법에 따른 분류

2.2.4.1 개요

- 정적 테스트 : 리뷰, 정적 분석

- 동적 테스트 : 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트

 

2.2.4.2 정적 테스트

- 정적 테스트 : 테스트 대상을 실행하지 않는 방식.

 

2.2.4.2.1 리뷰

- 리뷰 : 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행 사항을 점검하기 위한 활동

- 순서

1) 경영진 준비                        5) 개별 준비

2) 리뷰 계획                            6) 그룹 검토

3) 리뷰 절차 개요 설명            7) 재작업

4) 작업물 개요 설명                 8) 후속 작업

리뷰 유형 설명
관리 리뷰 프로젝트 진행 사항황에 대한 검토를 바타으로 일정, 인력, 범위 등에 대한 통제 및 의사 결정을 지원
기술 리뷰 정의된 계획 및 명세를 준수하고 있는지에 대한 검토를 수행
인스펙션 문제를 식별하고 문제에 대한 올바른 해결을 검증
워크쓰루 문제를 식별하고 더 나아가서 대안 조사, 개선 활동, 학습 기회 제공을 수행
감사 객관적인 표준과 규제에 대한 준수를 독립적으로 평가

 

2.2.4.2.2 정적 분석

- 정적 분석 : 산출물의 구조적 속성을 이용하여 자동화된 방식으로 도구에 의해서 수행

 

2.2.4.3 동적 테스트

- 동적 테스트 : 테스트 대상을 실행하여 결함을 검출하는 방법

 

2.2.4.3.1 명세 기반 테스트와 구조 기반 테스트

- 명세 기반 테스트 : 소스 코드를 참고하지 않고 테스트 케이스를 결정 (ex. 임의 테스트 방법)

- 구조 기반 테스트 : 구현된 소스 코드를 참고해서 테스트 케이스를 결정

 

2.2.4.3.2 경험 기반 테스트

- 경험 기반 테스트 : 기존의 테스트 경험, 테스트 대상이 되는 시스템 및 해당 도메인에 대한 경험 등을 바탕으로 수행

 

2.2.4.3.2.1 오류 추정

- 오류 추정 : 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하는 방법

- 동등 분할이나 경곗값 분석 같은 명세 기반 테스트 방법과 함께 사용

 

2.2.4.3.2.2 탐색적 테스트

- 탐색적 테스트 : 테스트 대상에 대상에 대한 이해를 바탕으로 즉석에서 테스트 케이스를 결정한 후, 문서화 없이 해당 테스트를 바로 수행


2.3 테스팅 방법

2.3.1 개요

2.3.2 리그레이션 테스트

- 리그레이션 테스트 : 소프트웨어가 변경된 후에 수행하는 테스트

- Retest-all 전략, 선택적 리그레이션 테스트 전략, 테스트 최소화 전략, 테스트 우선 순위화 전략

 

2.3.3 소프트웨어 생명 주기 모델과 테스트

- 소프트웨어 생명 주기 : 소프트웨어 개발 체계의 추상적 표현이며 순차적 또는 병렬적인 일련의 단계로 구성

- 순차적 생명 주기 모델 : 폭포수 모델, V-모델

- 진화적 개발 모델

- 애자일 개발 방법론 : 테스트 주도 개발(TDD)

 

2.3.4 위험 기반 테스트

- 위험 기반 테스트 : 피처에 대한 위험 분석을 바타으로 테스트에 대한 계획과 설계 그리고 실행 등의 활동을 수행하는 것

 

2.3.5 모델 기반 테스트

- 모델 기반 테스트 : 테스트 절차를 수행할 수 있는 정보가 자동으로 추출될 수 있을 정도로 정형화되고 상세한 모델을 바탕으로 테스트