본문 바로가기
법, 용어/SI 법

SW 테스트의 유형

by 3604 2024. 5. 2.
728x90

출처: http://www.jidum.com/jidums/view.do?jidumId=558

 

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) -소프트웨어 내부의 논리적인 경로에 대한 복잡도를 평가하는 시험
- 프로그램 상에 허용되는 모든 논리적 경로를 파악하거나 경로들의 복잡도를 계산하여 테스트
- 소프트웨어의 내부적 형상의 구조를 이용하여 테스트
회귀테스트 - 어플리케이션에 대하여 변경, 결함 수정 또는 기능개선 등과 같은
원인으로 프로그램 코드에 대하여 물리적인 변경이 발생했을 경우,
새로운 결함에 대비하여 이미 실시했던 테스트케이스에 대하여 전체
또는 일부를 재시험하는 테스트
병행테스트 - 시스템간의 우열을 가리기 위하여 수행되는 것이 아니라, 신규 시스템과 기존 시스템의 처리 결과를 서로 비교하기 위해 수행되는 것
728x90