본문 바로가기
IT License/정처기실기-요약

2024 #정보처리기사 실기 #테스트 기법(블랙박스/화이트)

by 시뮝 2024. 10. 20.
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

댓글