UTF-404

테스트 지식 체계에 대해 알아보기(1) 본문

정보처리기사

테스트 지식 체계에 대해 알아보기(1)

UTF-404 2024. 2. 28. 19:52
728x90

💡 소프트웨어 테스트 종류

➡️ 소프트웨어 테스트 종류는 프로그램 실행 여부, 테스트 상세 기법, 테스트에 대한 시각, 테스트의 목적, 테스트의 종류에 따라 분류할 수 있다. 

 

💡 프로그램 실행 여부에 따른 분류

  • 경험기반 테스트도 블랙박스 테스트에 포함되기도 한다.
  • 프로그램 실행 여부에 따라 정적 테스트와 동적 테스트로 나눌 수 있다.
분류 설명 유형
정적 테스트 테스트 대상을 실행하지 않고 구조를 분석하여 논리성을 검증하는 테스트 리뷰(동료 검토, 워크스루, 인스펙션), 정적분석
동적 테스트 소프트웨어를 실행하는 방식으로 테스트를 수행하여 결함을 검출하는 테스트 화이트박스 테스트, 블랙박스 테스트, 경험기반 테스트

 

💡 테스트 기법에 따른 분류

📍 블랙박스 테스트(Black-box Test)

  • 블랙박스 테스트는 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트)이다.
  • 블랙박스 테스트는 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어진다.
  • 블랙박스 테스트는 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능하다.
  • 블랙박스 테스트는 명세 테스트라고 부른다.

📎 블랙박스 테스트 유형

유형 설명
동등 분할 테스트
(Equivalence
Partitioning 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) 박스 테스트라고 부른다.
유형 내용
구문 커버리지
= 문장 커버리지
(Statement Coverage)
∙ 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 테스트 커버리지
∙ 조건문 결과와 관계없이 구문 실행 개수로 계산
결정 커버리지
= 선택 커버리지
(Decision Coverage)
=분기 커버리지(Branch Coverage)
∙ (각 분기의) 결정 포인트 내의 전체 조건식이 적어도 한 번은 참(T)과 거짓(F)의 결과를 수행하는 테스트 커버리지
조건 커버리지
(Condition Coverage)
∙ (각 분기의) 결정 포인트 내의 각 별개 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 테스트 커버리지
조건-결정 커버리지
(Condition/Decision Coverage)
∙ 전체 조건식뿐만 아니라 개별 조건식도 참 한번, 거짓 한 번 결과가 되도록 수행하는 테스트 커버리지
변경 조건-결정 커버리지
(Modified Condition/Decision Coverage)
∙ 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지
다중 조건 커버리지
(Multiple Condition Coverage)
∙ 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지
기본 경로 커버리지
= 경로 커버리지
(Base Path Coverage)
∙ 수행 가능한 모든 경로를 테스트하는 기법
∙ 기본 경로는 사이클을 허용
제어 흐름 테스트
(Control Flow Testing)
∙ 프로그램 제어구조를 그래프 형태로 나타내어 내부 로직을 테스트하는 기법
데이터 흐름 테스트
(Data Flow Testing)
∙ 제어 흐름 그래프에 데이터 사용현황을 추가한 그래프를 통해 테스트 하는 기법
루프 테스트
(Loop Testing)
∙ 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 기법

 

 

728x90