SW 테스트의 유형

I. SW 테스트의 유형에 따른 분류

구분

유형

특징

테스트 정보 획득 대상

화이트 박스

테스트

- 프로그램 내부 로직을 보면서 테스트 (구조 테스트)

- 구조 테스트 : 프로그램의 논리적 복잡도 측정 후 수행경로들의 집합을 정의

- 루프 테스트 : 프로그램의 루프 구조에 국한해서 실시

블랙 박스

테스트

- 프로그램 외부 명세를 보면서 테스트 (기능 테스트)

- 동등 분할/ 경계값 분석/Cause-Effect 그래프/오류예측기법 등

- Data driven Test

프로그램 실행여부

동적 테스트

- 프로그램 실행을 요구하는 테스트

- 화이트박스, 블랙박스

정적 테스트

- 프로그램 실행 없이 구조를 분석하여 논리성 검증

- 코드검사 : 오류 유형 체크리스트 및 역할에 의한 formal한 검사 방법(Fagan)

- 워크스루 : 역할/체크리스트가 없는 비공식적 검사방법

테스트에 대한시각

검증 (Verification)

- 과정을 테스트 (Are we building the product right?)

- 올바른 제품을 생산하고 있는 지 검증

확인 (Validation)

- 결과를 테스트 (Are we building the right product?)

- 만들어진 제품이 제대로 동작하는 지 확인

테스트 단계

단위테스트

- 모듈의 독립성 평가, White Box테스트

통합테스트

- 모듈간 인터페이스 테스트(결함테스트)

시스템테스트

- 전체 시스템의 기능수행 테스트 (회복,안전,강도,성능,구조)

인수테스트

- 사용자 요구사항 만족도 평가 (확인, 알파, 베타)

설치테스트

- 사용자 환경

테스트

목적

회복테스트

- 고의적 실패 유도

안전테스트

- 불법적인 소프트웨어

강도테스트

- 과다 정보량 부과

성능테스트

- 응답시간, 처리량, 속도

구조테스트

- 내부논리 경로, 복잡도 평가

회귀테스트

- 변경 또는 교정이 새로운 오류를 발생시키지 않음을 확인

병행테스트

- 변경시스템과 기존시스템에 동일한 데이터로 결과 비교

 

II. 테스트 시각에 의한 분류

구분

설명

검증(Verification)

- 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정 (Build the product right)

- SDLC에서 어느 단계의 산출물이, 이전 단계에서 설정된 개발규격과 요구들을 충족 시키는지 여부를 판단하기 위한 활동

확인 (Validation)

- 사용자 시각으로 올바른 소프트웨어가 개발되었는지를 입증하는 과정 (Build the right product)

- 어느 단계의 개발제품이 최초의 사용자 요구 또는 소프트웨어 요구에 적합한지를 입증하기 위한 활동

공인(Certification)

- 사용자 혹은 사용자를 보호하는 입장의 전문가가 SW 품질을 공식적으로 확인하는 것

- A written guarantee

 

 

III. 테스트 목적에 따른 분류

구분

설명

회복테스트(Recovery)

-소프트웨어가 다양한 방법으로 실패하도록 유도하고 회복이 적절하게 수행되는지를 검증하는 테스트

-회복이 시스템에 의해 자동으로 수행되면 재초기화, 데이터회복, 재시작 방법 등에 의해 정상적으로 회복되는지를 평가

-운영체제, DBMS, 통신용 소프트웨어 등의 안전성 test에 중요

안전테스트(Security)

-시스템 내의 보호 기능이 불법적인 침투로부터 시스템을 보호하는지에 대한 검증 테스트

-해커 등의 불법적 침입자로부터 시스템의 보호 목적으로 시행

- 메시지의 기밀성, 무결성, 사용자 인증, 접근 통제, 부인봉쇄 등의 보안 기능이 적절하게 제공되고 있는 지 테스트

강도테스트(Stress)

- 비정상적인 값, 양, 빈도의 자원 입력에 대한 정상 수행 상태를 테스트

- 부하, 메모리 부족, 특정 서비스나 하드웨어가 사용 불가능할 때와 같은 비정상적인 상황에서의 테스트

-민감도 테스트(sensitivity test) : 유효한 입력 유형 중에서 불안정하게 하거나 부적절한 결과를 일으키는 데이터의 조합을 밝히도록 함

성능테스트(Performance)

- 통합된 시스템의 전후 관계에서 소프트웨어의 실행 시간을 test하기 위해서 수행함

- 소프트웨어의 효율성을 진단하는 테스트

- 자원이용, 처리 시간, 요구된 응답 등에 대한 반응 등 목표치를 달성하는지에 대한 성능 테스트

- 통합시험 전후 단계에서 SW의 실시간 성능을 시험하기 위해 실시하고 강도시험과 함께 실시

- 엄격한 형식으로 자원의 이용율 측정이 필요

구조테스트(Structure)

-소프트웨어 내부의 논리적인 경로에 대한 복잡도를 평가하는 시험

- 프로그램 상에 허용되는 모든 논리적 경로를 파악하거나 경로들의 복잡도를 계산하여 테스트

- 소프트웨어의 내부적 형상의 구조를 이용하여 테스트

회귀테스트

- 어플리케이션에 대하여 변경, 결함 수정 또는 기능개선 등과 같은

원인으로 프로그램 코드에 대하여 물리적인 변경이 발생했을 경우,

새로운 결함에 대비하여 이미 실시했던 테스트케이스에 대하여 전체

또는 일부를 재시험하는 테스트

병행테스트

- 시스템간의 우열을 가리기 위하여 수행되는 것이 아니라, 신규 시스템과 기존 시스템의 처리 결과를 서로 비교하기 위해 수행되는 것

댓글