I. 소프트웨어 테스트 정의
- 노출되지 않은 숨어 있는 결함(fault)를 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차
- 오류 발견을 목적으로 프로그램을 실행하여 품질을 평가하는 과정
II. 소프트웨어 테스트 목적 및 특징
가. 소프트웨어 테스트 목적:
- 프로그램에 잠재된 오류 발견
- 기술적인 기능 및 성능의 확인
- 사용자의 요구 만족도 향상, 제품의 신뢰도 향상
나. 소프트웨어 테스트 특징
- Test Case 선정, 테스트 계획 수립에 따른 영향을 받음
- Good Case는 미발견 결함 발견 확률이 높음
- 성공적인 시험은 결함을 찾는데 있음
III. 소프트웨어 테스트 유형별 종류 및 대상별 종류
가. 소프트웨어 유형별 종류
구분 | 종류 | 특징 |
테스트 기법 | 화이트박스 테스트 | - 프로그램 내부 로직을 보면서 테스트(구조 테스트) - 구조: 프로그램의 논리적 복잡도 측정 후 수행경로들의 집합 정의 - 루프: 프로그램 루프구조를 대상(초기/경계/증가값 등) |
블랙박스 테스트 | - 프로그램 외부 명세를 보면서 테스트(기능 테스트) - 동등분할, 경계값 분석, Cause-Effect 그래프, 오류예측 기법 등 - Data Driven Test |
|
프로그램 실행여부 |
동적테스트 | - 프로그램 실행을 요구하는 테스트 - 화이트박스, 블랙박스 |
정적테스트 | - 프로그램 실행 없이 구조를 분석하여 논리성 검증 - 코드검사: 오류유형 체크리스트 및 역할에 의한 공식적인 검사방법 - 워크스루: 역할 및 체크리스트가 없는 비공식적 검사방법 |
|
테스트에 대한 시각 |
검증 (Verification) |
- 과정을 테스트(Are we building the product right?) - 올바른 제품을 생산하고 있는지 검증 |
확인 (Validation) |
- 결과를 테스트(Are we building the right product?) - 만들어진 제품이 제대로 동작하는지 확인 |
|
테스트 단계 | 단위테스트 | - 모듈의 독립성 평가, White Box 테스트 |
통합테스트 | - 모듈간 인터페이스 테스트(결함 테스트) | |
시스템 테스트 | - 전체 시스템의 기능수행 테스트(회복, 안전, 강도, 성능, 구조) | |
인수테스트 | - 사용자 요구사항 만족도 평가(확인, 알파, 베타) | |
설치테스트 | - 사용자 환경 | |
테스트 목적 | 회복테스트 | - Recovery, 고의적 실패 유도 |
안전테스트 | - Security, 불법적인 소프트웨어 | |
강도테스트 | - Stress, 과다 정보량 부과 | |
성능테스트 | - Performance,응답시간, 처리량, 속도 | |
구조테스트 | - Structure, 내부논리 경로, 복잡도 평가 | |
회귀테스트 | - Regression,변경 또는 교정이 새로운 오류를 발생시키지 않음 확인 | |
병행테스트 | - 변경시스템과 기존 시스템에 동등한 데이터로 결과 비교 |
나.소프트웨어 대상별 종류
테스트 대상 | 종류 | 내용 |
산출물 | 정적기법 | 실제 제품이 구현되기 전에 요구사항 정의서, 설계서, 코드등의 개발 중간 산출물을 실행없이 테스트 하는 기법 비공식 리뷰, 기술적리뷰, 워크쓰루, 인스펙션, 정적분석 |
실제 시스템 | 동적기법 | 실제 프로그램을 테스터가 직접 실행 하는 기법으로 내부 구조에 의한 방법 및 테스트 설계에 따라 분류됨 시스템 내부 구조의 참조여부 : 블랙박스, 화이트 박스 테스트 설계 근원에 따른 분류 : 명세,구조, 경험기반 테스트 |
'셀테 > 2. 소프트웨어 공학' 카테고리의 다른 글
테스트 설계 (0) | 2022.10.13 |
---|---|
블랙박스, 화이트박스 테스트 (0) | 2022.10.13 |
테스트 프로세스 (1) | 2022.10.13 |
SW 테스트 설계 기법 (0) | 2022.07.23 |