ISTQB + (4) = 테스트 설계 기술

H4N2·2024년 12월 16일

테스트 이론

목록 보기
4/5
post-thumbnail

테스트 설계 기술 (Test Design Techniques)

오늘의 ISTQB 공부 주제는 테스트 설계 기술이다.
테스트 설계 기술은 테스트 케이스를 체계적으로 설계하기 위한 방법론이다. 이를 통해 제품의 요구 사항과 결함 가능성을 효율적으로 검증할 수 있다. 테스트 설계 기술은 크게 명세 기반 기술, 구조 기반 기술, 경험 기반 기술로 나뉜다.


1. 명세 기반 기술 (Specification-Based Techniques)

명세 기반 기술은 요구 사항, 사용자 스토리, 설계 문서와 같은 명세를 기반으로 테스트 케이스를 설계한다.

1-1. 동등 분할 (Equivalence Partitioning)

입력 데이터 또는 출력 데이터를 유사한 특성을 가진 그룹(파티션)으로 나누어 각 그룹에서 하나의 값을 테스트한다.

  • 목적: 테스트 케이스의 수를 줄이면서 모든 파티션을 대표하는 테스트를 수행한다.
  • 예시
사용자가 입력할 수 있는 나이는 0~120 사이다.
  - 유효 파티션: [0~120]
  - 무효 파티션: (-∞~0) 및 (120~+∞)

1-2. 경계 값 분석 (Boundary Value Analysis)

경계 값을 중심으로 테스트 케이스를 설계한다.

  • 목적: 경계에서 오류가 발생할 가능성이 높기 때문에 이러한 부분을 중점적으로 테스트한다.
  • 예시
나이 입력 예제에서, 경계 값은 다음과 같다.
유효 경계 값: 0, 1, 119, 120
무효 경계 값: -1, 121

1-3. 결정 테이블 (Decision Table Testing)

입력 조건과 결과 간의 관계를 표로 정리하여 테스트 케이스를 생성한다.

  • 목적: 다양한 조건 조합을 효율적으로 테스트한다.
  • 예시
쇼핑몰 할인 정책:
조건: VIP 고객 여부, 구매 금액 ≥ $100
결과: 10% 할인, 20% 할인
VIP 여부구매 금액 ≥ $100결과
YesYes20% 할인
YesNo10% 할인
NoYes10% 할인
NoNo할인 없음

2. 구조 기반 기술 (Structure-Based Techniques)

소프트웨어의 코드나 아키텍처와 같은 내부 구조를 기반으로 테스트를 설계한다.

2-1. 문장 커버리지 (Statement Coverage)

코드의 모든 문장이 최소한 한 번 실행되도록 테스트 케이스를 설계한다.

  • 목적: 코드의 기본적인 실행을 보장한다.
  • 예시
[python]

if x > 0:
    print("Positive")
else:
    print("Non-positive")
    
테스트 케이스 1: x = 1 → "Positive" 출력
테스트 케이스 2: x = -1 → "Non-positive" 출력

2-2. 분기 커버리지 (Branch Coverage)

코드의 모든 분기(조건식의 참/거짓)를 실행하도록 테스트 케이스를 설계한다.

  • 목적: 더 다양한 경로를 테스트한다.
  • 예시
    위 코드에서 x == 0도 추가로 테스트해야 한다.

3. 경험 기반 기술 (Experience-Based Techniques)

테스터의 경험, 직관, 과거의 유사 프로젝트에서 발생했던 결함을 기반으로 테스트 케이스를 설계한다.

3-1. 탐색적 테스트 (Exploratory Testing)

사전에 정해진 테스트 케이스 없이 소프트웨어를 탐색하며 테스트를 수행한다.

  • 목적: 새로운 결함을 발견하거나 명세에서 빠진 부분을 확인한다.

3-2. 오류 추정 (Error Guessing)

결함이 발생할 가능성이 높은 부분을 경험적으로 예측하여 테스트한다.

  • 목적: 과거에 자주 발생했던 결함 유형을 중점적으로 검증한다.
  • 예시
    • 입력 필드에 빈 값, 특수 문자 입력
    • 예상 범위를 벗어난 데이터 입력

결론

각 테스트 설계 기술을 효과적으로 사용할 수 있는 상황의 예시를 간단하게 들고 마무리하겠다.

1. 명세 기반 기술

요구 사항 문서나 명세가 명확히 정의된 경우 !

2. 구조 기반 기술

코드 리뷰 이후, 소스 코드가 준비되었을 때 !

3. 경험 기반 기술

명세가 불완전하거나 테스터의 도메인 지식이 필요한 경우 !

위 세 가지 테스트 설계 기술은 각각의 목적과 상황에 맞게 활용하면 된다.

profile
Quality Assurance !

1개의 댓글

comment-user-thumbnail
2024년 12월 17일

정말 다양한 테스트 설계 기술이 있군요! 2월에 ISTQB 목표로 공부중 이신가요?

답글 달기