반응형
-
소프트웨어 테스트 기법의 개요
-
소프트웨어 테스트 기법의 개념
- 테스트 기법들은 가능한 한 많은 잠재적 장애를 도출하고자 하는 테스트의 목적을 달성하고자 개발
- 테스트 기법 적용의 주된 원칙은 입력 도메인, 시나리오, 상태, 데이터 흐름 등을 고려하여 체계적으로 접근하는 것
-
일반적인 테스트 기법의 분류
-
화이트 박스(White-box) 테스트
- 모듈의 구조, 분기, 실행 경로 등을 테스트하는 과정
- 테스트하는 사람이 모듈의 내용을 상세히 알고 있다는 것을 전제
-
블랙 박스(Black-box) 테스트
- 테스트를 실시하는 사람이 모듈 내부에 대한 상세 지식이 없다는 것을 전제
- 프로그램 사양서로부터 가능한 모든 입력 조건(예측 가능/불가능 포함)에 대하여 테스트 케이스를 선정
- 블랙 박스 테스트와 화이트 박스 테스트의 비교
-
-
구분 | 블랙 박스 테스트 | 화이트 박스 테스트 |
제품지식 | 제품의 기능을 알고 있음 | 제품의 내부 작용을 알고 있음 |
테스트 결과 | 작동 결과를 보여줌 | 내부 로직의 맞물림을 보여줌 |
사용처 | 소프트웨어 인터페이스 | 세부적인 절차 테스트 |
테스트 항목 |
|
|
오류 형태 | 부정확/누락 기능, 인터페이스 오류, 자료구조/외부 DB 접근 오류, 성능 오류, 초기화 및 종료 오류 | 초기화 결함, 인덱싱 및 증가 결함, Loop의 경계선에 나타나는 경계 결함 |
테스트 유형 |
|
|
-
소프트웨어 엔지니어의 직관과 경험에 의한 분류
-
임시 응변식(Ad hoc) 테스트
- 정형화된 기법에 의해 식별하기 쉽지 않은 특별한 테스트를 시행할 때 유용한 방법으로, 가장 일반화된 기법
- 소프트웨어 엔지니어가 가진 유사한 프로그램에 대한 기법, 직관, 경험에 의존
-
탐색(Exploratory) 테스트
- 테스트 계획 수립 시에 미리 테스트를 정의하지 않고 테스트 수행 시점에서 동적으로 설계하고 실행하는 기법
-
테스트의 효과성은 소프트웨어 엔지니어의 지식과 경험에 의해 좌우되며 테스트하는 동안 관찰된 제품 수행 결과 , 애플리케이션에 대한 친숙성, 플랫폼, 자애 프로세수, 결함과 장애의 유형, 특정 제품과 관련된 위험 등의 출처로 부터 도출됨
-
-
명세 기반 기법(Specification-based Techniques)에 따른 분류
-
동등 집단 분할법(Equivalent Partitioning)
- 입력 도메인을 부분 집합들의 모음이나 동등 집단(Equivalent Class)로 나누고, 각 클래스를 대표하는 테스트 케이스를 선정하는 방법
- 프로그램 처리 로직상 같은 방식으로 처리되는 입력 데이터들을 하나의 클래스로 간주하고, 이 클래스에 대한 테스트 케이스를 만드는 방법
-
경계값 분석법(Boundary-value Analysis)
- 보다 쉽게 오류를 발견할 수 있도록 테스트 케이스에서 변수들의 입력 값 도메인을 경계나 그 근처로 선택하는 방법
- 견고성(Robustness) 테스트는 경계 값 분석 기법의 확정 형태로 기대하지 않은 입력이나 잘못된 입력에 대한 프로그램의 테스트를 위하여 테스트 케이스 생성시 변수의 입력 도메인 외부에서 선택하는 방법
-
의사 결정 테이블(Decision Table)
- 조건과 결과로 예측도는 행동의 논리적 관계를 파악하여 가능한 조합을 고려하여 테스트 케이스를 선택
- 대표적 기법인 Cause-Effect Graphing에서 입력 데이터 간의 관계가 출력에 미치는 상황을 체계적으로 분석하여 효율성 높은 테스트 케이스 생성
-
유한 상태 머신 기반(Finite-state Machine-based)
- 프로그램을 유한적 상태를 지닌 기계로 모델링하여 실행해야 할 상태와 전이를 다루기 위한 테스트를 선택
-
정형화된 명세에서의 테스트(Testing from Formal Specification)
- 기능적 테스트 케이스 도출 및 테스트 결과를 검사하기 위한 참조 출력으로 명세를 동시에 사용
-
랜덤 테스트(Random Test)
-
테스트 케이스를 순수하게 랜덤으로 생성
-
-
-
코드 기반의 기법에 따른 분류
-
제어 흐름 기반 기준(Control Flow-based Criteria)
-
경로 테스트제어 흐름도에서 모든 입.출구의 제어 흐름 경로가 실행되도록 테스트 케이스 설계
-
문장 테스트프로그램 내의 각 코드 라인이 단 한 번이라도 실행되도록 테스트 케이스를 설계
-
분기 테스트프로그램의 모든 실행 경로가 최소한 번 이상 실행되도록 테스트 케이스를 설계
-
논리적 경로 테스트발생 가능한 모든 경로들의 조합들에 대하여 최소한 한번 이상 실행되도록 테스트 케이스를 설계
-
-
데이터 흐름 기반 기준(Data Flow-based Criteria)제어 흐름도에 프로그램 변수들의 정의, 사용, 소멸에 대한 상세한 설명이 되어 있어 이 정의와 사용에 따라 테스트 경로를 선택
-
-
결함 기반 기법에 따른 분류
-
오류 예측(Error Guessing)전문 지식과 이력 레코드(Historical Record)를 이용하여 주어진 프로그램에서 가장 잠재되어 있을 만한 결함을 찾아내기 위한 테스트 케이스 구성
-
돌연변이(Mutation) 테스트테스트 대상 프로그램에 약간의 구문 변화를 준 프로그램을 만들어 모든 테스트 케이스를 원 프로그램과 수정된 프로그램에 적용하여 차이를 발견
-
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
소프트웨어 테스트의 개요 (0) | 2010.12.27 |
---|---|
소프트웨어 테스트의 분류 (0) | 2010.12.27 |
소프트웨어 테스트 프로세스 (0) | 2010.12.27 |
소프트웨어 설계 개요 (0) | 2010.11.25 |
소프트웨어 설계 원리 (0) | 2010.11.25 |