자격증/CTFL

[ISTQB] 4장 테스팅 기법

동호다찌 2022. 12. 30. 10:24
반응형

제4 장 테스트 기법 목차

 

테스트 기법의 종류

  • 테스트 기법의 종류와 특성

 

블랙박스 테스트 기법

  • 동등 분할
  • 경곗값 분석
  • 결정 테이블 테스팅
  • 상태 전이 테스팅
  • 유스케이스 테스팅

 

화이트박스 테스트 기법

  • 구문 테스팅과 커버리지
  • 결정 테스팅과 커버리지
  • 구문 및 결정 테스팅의 가치

 

경험 기반 테스트 기법

  • 오류 추정
  • 탐색적 테스팅
  • 체크리스트 기반 테스팅

테스트 기법의 종류

테스트 기법의 목적은 테스트 컨디션, 테스트 케이스, 테스트 데이터 식별을 지원하는 것이다.

 

테스트 기법의 선택은 다음과 같은 여러 요소를 기반으로 이루어진다.

  • 컴포넌트나 시스템의 복잡도
  • 규제 기준
  • 고객 또는 계약 요구사항
  • 리스크 수준과 유형
  • 사용 가능한 문서
  • 테스터의 지식과 역량
  • 사용 가능한 도구
  • 시간과 예산
  • 소프트웨어 개발 수명주기 모델
  • 컴포넌트나 시스템에서 예상되는 결함 유형

 

테스트 기법의 종류와 특성

 

테스트 기법은 대표적으로 3개로 구분할 수 있다.

  • 블랙박스 테스트: 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사
  • 화이트박스 테스트: 소프트웨어의 내부 구조, 동작을 세밀하게 검사
  • 경험기반 테스트 : 이전에 테스터가 다루었던 유사 시스템 또는 기술에서의 경험, 직관, 능력으로 검사

 


 

블랙박스 테스트 기법

블랙박스 테스트 기법은 적절한 테스트 베이시스(공식 요구사항 문서, 명세서, 유스케이스, 사용자 스토리 또는 비즈니스 프로세스)에 대한 분석을 기반으로 한다.
 
이 기법은 기능 테스팅과 비기능 테스팅 모두에 적용할 수 있다. 블랙박스 기법은 테스트 대상의 내부 구조를 고려하지 않고, 입력과 출력에 집중한다.
 

동등 분할

입력 데이터에 따른 결괏값을 테스트할 때 사용되는 기법으로 데이터에 따라 다르게 동작하는 기능을 테스트하는 경우에 사용된다. 소프트웨어에서 요구하는 입력 데이터를 그룹화하여 해당 그룹에 속하는 값으로 결괏값을 비교한다.

동등 분할 예시

  • 호텔 숙박 비용 청구를 검증하는 소프트웨어 시스템의 사양이 다음 요구사항을 포함한다.
    • 숙박비는 70만원의 상한선이 있다.
    • 70만원을 초과하는 모든 청구는 거부되어야하며 오류 메시지가 표시되어야 한다.
    • 모든 비용 금액은 0원보다 커야 하며 그렇지 않은 경우 오류 메시지가 표시되어야 한다.
  • 위 요구사항을 분석하는 과정에서 파티션과 그 경계를 그래프로 표시하고 경계 값과 관련하여 파티션 범위를 명시하는 것이 유용하다.
    • 입력값을 0원 ~ 100 만원 사이 값을 입력
    • 입력값을 0원 ~ 100 만원 사이가 아닌 값을 입력

 

경계 값 분석

경계 값 분석은 동등 분할의 확장 형태이지만 각 파티션이 순서화되어 있고, 숫자 또는 연속 데이터로 구성된 경우에만 적용할 수 있다. 분할의 최소 값과 최대값은 해당 분할의 경곗값이 된다.

 

동등 분할 예시

  • 호텔 숙박 비용 청구를 검증하는 소프트웨어 시스템의 사양이 다음 요구사항을 포함한다.
    • 숙박비는 70만원의 상한선이 있다.
    • 70만원을 초과하는 모든 청구는 거부되어야하며 오류 메시지가 표시되어야 한다.
    • 모든 비용 금액은 0원보다 커야 하며 그렇지 않은 경우 오류 메시지가 표시되어야 한다.
  •  요구사항을 분석하는 것을 지원하기 위해 경계를 그래픽으로 표시하고경계 양쪽에 대해 경계값 및 기타 의미 있는 값을 결정하는 것이 좋다.
    • 유효 범위는 1 이상 70이하이다. 따라서 3개의 동등 분할이 존재한다. (비유효(낮음), 유효(정상), 비유효(높음))
    • 비유효(낮음)의 경계값은 하나 뿐인 0이다.
    • 비유효(높음)의 경계값은 71이다.

 

결정 테이블 테스팅

시스템이 구현해야 하는 복잡한 비즈니스 규칙을 기록하기에 좋은 방법이다. 논리적 조건이나 상황에서 입력 조건과 결과를 Y, N으로 표현해 조합을 만들고 테스트를 작성한다.

 

예를들어 광고 회사에서 화장품을 홍보하기 위해 적절한 홍보 타깃을 결정하기 위해 의사 결정표를 만들고 중복되는 내용을 통합하여 해당 표를 가지고 테스트 케이스를 작성한다. 테스터는 시스템의 조건(입력값)과 예상 동작(출력)을 예상하며 이것들을 테이블의 행을 형성하며 일반적으로 조건은 위쪽에, 기대 결과는 아래쪽에 둔다.

 

표기법(조건)

  • Y, 조건이 참이라는 것을 의미 (T 또는 1 로 표기할 수 있음)
  • N, 조건이 거짓이라는 것을 의미 (F 또는 0 으로도 표기할 수 있음)
  • —, 조건의 값이 중요하지 않다는 것을 의미 (N/A 로 표기할 수 있음)

표기법(기대 결과)

  • X, 행동이 일어난다는 것을 의미 (Y, T, 1 로 표기할 수 있음)
  • 공백(blank), 행동이 일어나지 않음을 의미 (—, N, F, 0 으로 표기할 수 있음)

불필요한 조건은 테스트 할 필요가 없다.

 

상태 전이 테스팅

 

시스템은 현재 상황과 이전의 이력을 반영하는 상태 및 그 변화에 따라 다르게 동작할 수 있다. 이를 상태 다이어그램으로 표현 가능하다. 이를 기반으로 테스팅에 활용하는 것을 상태전이 테스팅이라 한다.

 

종류

  • 유효전이 : 상태 전이 다이어그램에 측정 가능한 모든 전이
  • 비유효전이 : 상태 전이 다이어그램에 측정 불가능한 모든 전이

커버리지 : (테스트한 전이 / 측정 가능한 모든 전이)

 

유스케이스 테스팅

유스케이스는 액터(사용자외부 HW, 기타 컴포넌트)와 대상간(유스케이스를 적용하는 컴포넌트나 시스템)의 관계를 나타낸 케이스이다.

 
  • 액터와 액터 사이의 상호작용을 표현 -> 유저에게 결과값 전달
  • 시스템이 유즈케이스 모델링 되었을 때, 유즈케이스를 활용해 테스트 케이스를 도출하는 테스트 설계 기법
  • 유즈케이스를 어떻게 작성하느냐에 따라 유즈케이스의 테스트용이성이 달라진다 -> 테스팅하기 어려워 질 수 있다.
  • 프로세스 흐름을 기술
    • 기본 흐름
    • 대체 흐름
  • 유즈케이스 상세(description)
 
 

 

화이트 박스 테스트 기법

화이트 박스 테스트 기법은 테스트 대상의 내부 구조를 기반으로 한다.
 

구문 테스팅과 커버리지

구문 테스팅 : 코드의 잠재적으로 실행 가능한 구문을 실행하는 테스트 기법

 

구문 커버리지 : 소스코드에서 실행한 구문의 백분율을 계산하고 측정에 사용하는 메트릭

 

커버리지 : 테스트로 실행한 구문의 수 / 테스트 대상의 모든 실행 가능한 구문의 수

 

결정 테스팅과 커버리지

결정 테스팅 : 결정 테스팅은 코드에 존재하는 결정문을 실행하고 결정문의 결과에 따라 실행되는 코드를 테스트하는 기법

 

커버리지 : 테스트로 실행된 결정문 결과의 수/테스트 대상의 가능한 모든 결정문의 결과의 수

 

구문 및 결정 테스팅의 가치

구문 커버리지를 100% 달성하면 코드에 존재하는 모든 실행 구문을 최소한 한 번씩은 테스트한 것이지만 모든 결정 로직을 테스트했다는 것은 보장하지 않는다. 즉, 구문 테스팅은 결정 테스팅보다 커버리지가 낮다.

 

결정 커버리지를 100% 달성하면 결과가 참인 경우와 거짓인 경우를 포함한 모든 결정 결과가 실행 됐다는 뜻이다.

 

100% 결정 커버리지는 100% 구문 커버리지를 보장하지만, 반대의 경우는 성립하지 않는다.

 
 
 
 

 

경험 기반 테스트 기법

경험 기반 테스트 기법은 이전에 테스터가 다루었던 유사 어플리케이션이나 기술에서의 경험, 직관, 테스트의 기술 능력으로부터 테스트 케이스를 추출하는 기법이다.
 
  • 공식적인 기법으로 다루기 어려운 특별한 케이스를 찾아 실행한다.
  • 테스트 경험에 따라 효율성 및 효과성의 정도 변동 가능
  • 테스트 대상 소프트웨어에 대해 지식을 필요로 하다.

 

오류 추정

테스터의 지식을 기반으로 오류, 결함 및 장애 발생을 예측하는 데 적용하는 테스트 기법이다.

 

이용하는 지식

  • 어플리케이션의 과거 동작
  • 발생하기 쉬운 오류의 유형
  • 다른 어플리케이션에서 발생한 장애

 

탐색적 테스팅

비공식 테스트를 테스트 실행 중에 동적으로 설계, 실행, 기록하고 평가하는 테스팅

 

특징

  • 탐색적 테스팅은 명세가 충분하지 않거나 적은 경우 또는 테스팅에 상당한 시간적 압박이 있을 때 가장 유용하다.
  • 탐색적 테스팅은 다른 보다 공식적인 테스팅 기법을 보완하는 데도 유용하다.
  • 탐색적 테스팅은 다른 블랙박스, 화이트박스, 경험 기반 기법과 통합하여 사용할 수도 있다.

 

체크리스트 기반 테스팅

테스트하고 평가해야 할 내용과 경험을 분류하여 나열해 놓은 체크리스트를 기반으로 테스트를 수행한다.

 

특징

  • 체크리스트는 기능 및 비기능 테스팅을 포함한 다양한 테스트 유형을 지원하기 위해 작성할 수 있다.
  • 구체적인 테스트 케이스가 없는 경우, 체크리스트 기반 테스팅은 대략적인 지침과 일관성을 제공할 수 있다.
  • 커버리지는 늘어날 수 있지만 재현 가능성은 줄어들 수 있다.
반응형