728x90
블랙박스 테스트(Black-Box Test)
- 외부 사용자의 기능 테스트
블랙박스 테스트 유형(영문명도 암기)
유형 | 설명 |
동등 분할 테스트 (=동치/균등/동치 클래스 테스트) (Equivalence Partioning Testing) |
입력 데이터의 영역을 유사한 도메인별로 유효값/무효값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트하는 기법 |
경곗값 분석 테스트 (=한계값 테스트) (Boundary Value Analysis Testing) |
등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법 |
최솟값 바로 위, 최대치 바로 아래 등 입력값의 극한 한계를 테스트하는 기법 | |
결정 테이블 테스트 (Decision Table Testing) |
요구사항의 논리와 발생조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하여 테스트하는 기법 |
상태 전이 테스트 (State Transition Testing) |
테스트 대상·시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법 |
유스케이스 테스트 (Use Case Testing) |
시스템이 실제 사용되는 유스케이스로 모델링 되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법 |
분류 트리 테스트 (Classification Tree Method Testing) |
SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법 |
페어와이즈 테스트 (Pairwise Testing) |
테스트 데이터 값들 간에 최소한 한 번씩 조합하는 방식, 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법 |
원인-결과 그래프 테스트 (Cause-Effect Graph Testing) |
그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법 |
비교 테스트 (Comparison Testing) |
여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교해보는 테스트 기법 |
오류 추정 테스트 (Error Guessing Testing) |
개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법 |
특정 테스트 대상이 주어지면 테스터의 경험과 직관을 바탕으로 개발자가 범할 수 있는 실수들을 나열하고, 해당 실수에 따른 결함을 노출하는 테스트로 다른 블랙박스 테스트 기법을 보완할 때 사용하는 기법 |
화이트박스 테스트(White-box Test)
- 화이트박스 테스트는 구조 기반 테스트, 코드 기반 테스트, 로직 기반 테스트, 글래스(Glass) 박스 테스트라고도 부른다.
- 가장 좋은 화이트박스 테스트는 프로그램의 모든 경로를 최소한 한 번은 테스트하는 방법이지만, 프로그램의 경로가 많기 때문에 불가능에 가깝다.
테스트 커버리지(TestCoverage)
- 테스트 커버리지 유형
- 기능 기반 커버리지:
실제 테스트가 수행된 기능의 수를 측정하는 방법, 전체 기능을 모수로 설정 - 라인 커버리지:
전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 소스 코드의 라인 수를 측정하는 방법 - 코드 커버리지:
일반적으로 테스트 커버리지라고 하면 코드 커버리지를 일컫는다. 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트 되었는지 측정하는 방법
- 기능 기반 커버리지:
- 테스트 커버리지 구성
- 구문(Statement)
- 결정(Decision)
- 조건(Condition)
- 결정 포인트(Decision Point)
화이트 박스 커버리지 유형
유형 | 설명 |
구문 커버리지(=문장) (Statement Coverage) |
구문 커버리지는 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 테스트 커버리지이다. |
문장 커버리지(%) = 테스트 케이스 집합에 의해 실행된 문장의 수 / (전체 실행 가능한 프로그램 문장의 수)x100 | |
결정 커버리지(=선택, 분기) (Decision Coverage) |
결정 커버리지는 (각 분기의) 결정 포인트 내의 전체 조건식이 적어도 한 번은 참(T)과 거짓(F)의 결과를 수행하는 테스트 커버리지이다. 결정 커버리지는 구문 커버리지를 포함한다. 선택 커버리지(Decision Coverage), 분기 커버리지(Branch Coverage)라고도 한다. |
결정 커버리지(%) = (테스트 케이스 집합에 의해 실행된 결정의 결과 수) / (전체 프로그램 결과 수)x100% | |
조건 커버리지 (Condition Coverage) |
조건 커버리지는 (각 분기의) 결정 포인트 내의 개별 조건식이 적어도 한 번은 참(T)과 거짓(F)의 결과가 되도록 수행하는 테스트 커버리지이다. (전체 조건식의 영향은 고려하지 않음) |
조건 커버리지(%) = (테스트 케이스 집합에 의해 실행된 조건의 결과 수) / (전체 프로그램 조건의 결과 수)x100% | |
조건/결정 커버리지 (Condition/Decision Coverage) |
조건/결정 커버리지는 전체 조건식 뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번의 결과가 나오도록 수행하는 테스트 커버리지이다. |
변경 조건/결정 커버리지 (Modified Condition/Decision Coverage) |
변경 조건/결정 커버리지는 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지이다. |
다중 조건 커버리지 (Multiple Condition Coverage) |
다중 조건 커버리지는 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지이다. |
테스트 오라클(Test Oracle)
테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
유형 | 설명 |
참(True) 오라클 | 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출할 수 있는 오라클 |
샘플링(Sampling) 오라클 | 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해 주는 오라클 |
휴리스틱(Heuristic) 오라클 | 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클 |
일관성 검사(Consistent) 오라클 | 애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클 |
테스트 레벨 종류
종류 | 설명 | 기법 |
단위 테스트 | 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계 | 자료 구조 테스트, 실행 경로 테스트, 오류 처리 테스트, 인터페이즈 테스트 |
통합 테스트 | 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호 작용을 검증하는 테스트 단계 | 빅뱅 테스트, 샌드위치 테스트, 상향식 테스트, 하향식 테스트 |
시스템 테스트 | 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계 | 기능 · 비기능 요구사항 테스트 |
인수 테스트 | 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계 | 계약 인수, 규정 인수, 사용자 인수, 운영상의 인수, 알파 · 베타 테스트 알파 테스트(Alpha Test) - 선택된 사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트 베타 테스트(Beta Test) - 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트 |
728x90
'IT License > 정처기실기-요약' 카테고리의 다른 글
2024 #정보처리기사 실기 #Java 스레드(Thread) (1) | 2024.10.19 |
---|
댓글