'
본문 바로가기
study/Insight

[QA Basics] 테스트 설계 기법

by meowdule 2025. 9. 7.

 

1. 테스트 설계 기법 개요

 

테스트 설계 기법(Test Design Techniques)은
“무엇을 어떻게 테스트할지 효율적으로 정리하는 방법”입니다.

 

모든 입력값과 모든 상황을 전부 테스트하는 것은 불가능하기 때문에,
제한된 시간과 자원 안에서 최대한 많은 결함을 발견할 수 있도록 설계 기법이 사용됩니다.


📌 테스트 설계 기법의 목적

  1. 효율성 확보
    •   무작위 테스트 대신 체계적인 기법 활용으로 불필요한 케이스 축소
  2. 커버리지 향상
    •   다양한 상황과 조건을 빠짐없이 고려
    •   결함이 숨어 있을 가능성이 높은 영역을 집중 점검
  3. 일관성 유지
    •   누구나 이해하고 재현할 수 있는 표준화된 케이스 작성


📌 설계 기법의 세 가지 분류

  1. 블랙박스 기법 (Black-box Techniques)
    •   내부 로직은 보지 않고 입력과 출력만으로 테스트 설계
    •   예: 동등 분할, 경계값 분석
  2. 화이트박스 기법 (White-box Techniques)
    •   코드 구조와 로직을 기반으로 테스트 설계
    •   예: 구문 커버리지, 분기 커버리지
  3. 경험 기반 기법 (Experience-based Techniques)
    •   테스터의 경험과 직관을 활용
    •   예: 탐색적 테스팅, 오류 추정

 

테스트 설계 기법은 “모든 경우를 다 보지 않고도,
효율적이고 체계적으로 결함을 찾아내는 전략”이다.

 

 

 

 

 

 

2. 블랙박스 기법 (Black-box Techniques)

 

블랙박스 기법은

내부 코드 로직은 보지 않고, 입력과 출력만을 기준으로 테스트 케이스를 설계하는 방법입니다.
사용자 관점에서 기능이 올바르게 동작하는지를 검증할 때 주로 활용됩니다.


📌 주요 기법

  1. 동등 분할 (Equivalence Partitioning)
    •   입력값을 **동등한 그룹(Partition)**으로 나누고 각 그룹에서 하나만 선택해 테스트
    •   예: 나이 입력(1~100) → [유효: 1~100] / [무효: 0 이하] / [무효: 101 이상]
  2. 경계값 분석 (Boundary Value Analysis)
    •   결함은 경계에서 많이 발생한다는 원칙에 따라, 최소·최대·경계 근처 값을 테스트
    •   예: 나이 입력(1~100) → 0, 1, 100, 101
  3. 의사 결정 테이블 (Decision Table Testing)
    •   다양한 조건과 그에 따른 결과를 표로 정리 후 테스트
    •   예: 결제 시스템 → [카드 정상/카드 오류] × [포인트 사용/미사용] 조합
  4. 상태 전이 테스트 (State Transition Testing)
    •   시스템이 상태를 가지는 경우, 상태 전이와 이벤트 조합을 검증
    •   예: ATM → [카드 입력 → 비밀번호 입력 → 잔액 확인 → 출금] 시 올바른 상태 변화 확인
  5. 유스케이스 기반 테스트 (Use Case Testing)
    •   실제 사용자의 시나리오를 기반으로 설계
    •   예: “사용자가 회원가입 → 이메일 인증 → 로그인” 흐름 테스트


📌 블랙박스 기법의 특징

  • 장점
    • 사용자 관점에서 기능을 검증할 수 있음
    • 코드 지식이 없어도 테스트 가능 → QA/기획자도 쉽게 참여
    • 다양한 입력·조건 조합으로 실제 사용 시나리오 검증 가능
  • 단점
    • 내부 로직을 보지 않기 때문에 코드 구조상의 결함은 놓칠 수 있음
      • 예: 조건문 누락, 사용되지 않는 코드(Dead Code) 발견 어려움
    • 케이스 조합이 많아질 경우 → 커버리지 확보가 비효율적일 수 있음
    • 복잡한 비즈니스 로직이 숨어 있을 경우 → 테스트가 불완전해질 위험

 

블랙박스 기법은 “입력과 출력” 중심의 테스트 설계로,
사용자 경험에 가까운 관점에서 결함을 효율적으로 발견할 수 있다.

 

 

 

 

 

3. 화이트박스 기법 (White-box Techniques)

 

화이트박스 기법은

소스 코드의 내부 구조와 로직 흐름을 기준으로 테스트 케이스를 설계하는 방법입니다.
개발자나 SDET이 주로 사용하며, 코드 품질과 커버리지 확보에 효과적입니다.


📌 주요 기법

  1. 구문 커버리지 (Statement Coverage)
    •   모든 코드 구문(라인)이 최소 1회 이상 실행되도록 테스트
    •   예: if문 안/밖 구문 모두 실행
  2. 분기 커버리지 (Branch Coverage)
    •   모든 조건 분기(True/False)를 최소 1회 이상 실행
    •   예: if 조건이 참일 때/거짓일 때 모두 테스트
  3. 조건 커버리지 (Condition Coverage)
    •   복합 조건의 각 개별 조건이 True/False를 모두 만족하도록 설계
    •   예: if (A && B) → A=true/false, B=true/false 조합
  4. MC/DC (Modified Condition/Decision Coverage)
    •   각 개별 조건이 결과에 독립적으로 영향을 미침을 보장하는 기법
    •   항공, 의료 등 안전 필수 시스템에서 요구되는 수준


📌 화이트박스 기법의 특징

  • 장점
    • 코드의 숨은 로직 오류 발견 가능
    • 테스트 커버리지를 수치로 확인 가능
  • 단점
    • 코드 접근과 분석이 필요 → QA보다는 개발자/SDET 주로 사용
    • 사용자 관점의 결함은 놓칠 수 있음

 

화이트박스 기법은 “코드 안을 들여다보는 테스트”로,
숨은 로직 오류를 잡고 커버리지를 수치로 관리하는 데 강력하다.

 

 

 

 

 

4. 경험 기반 기법 (Experience-based Techniques)

 

경험 기반 기법은

테스터의 경험, 직관, 과거 프로젝트 지식을 활용해 테스트 케이스를 설계하는 방법입니다.
명세서가 불완전하거나 제한된 시간 안에 빠르게 검증할 때 특히 유용합니다.


📌 주요 기법

  1. 탐색적 테스팅 (Exploratory Testing)
    •   사전 정의된 케이스 없이, 시스템을 직접 탐색하며 결함 발견
    •   “테스트 설계 + 실행”을 동시에 수행
    •   예: 신규 화면을 처음 써보면서 직관적으로 비정상 동작 탐색
  2. 체크리스트 기반 테스팅 (Checklist-based Testing)
    •   과거 경험을 토대로 만든 점검 목록(체크리스트)을 활용
    •   예: 로그인 기능 체크리스트 → 입력값 유효성, 비밀번호 마스킹, 세션 만료 확인
  3. 오류 추정 (Error Guessing)
    •   결함이 발생하기 쉬운 영역을 경험적으로 예측
    •   예: 파일 업로드 시 대용량 파일, 특수문자, 네트워크 끊김 상황 테스트


📌 경험 기반 기법의 특징

  • 장점
    • 예상치 못한 결함을 빠르게 발견 가능
    • 문서화가 부족한 프로젝트에서 효과적
  • 단점
    • 테스터의 경험 수준에 크게 의존
    • 반복·재현성이 부족할 수 있음

 

경험 기반 기법은 “테스터의 직관과 경험”을 활용한 빠른 결함 탐색 도구로,
문서화된 기법을 보완하는 실무형 접근이다.

 

 

 

 

 

 

5. 기법 선택과 활용 전략

 

테스트 설계 기법은 프로젝트 상황과 목적에 따라 다르게 선택해야 합니다.
하나의 기법만 고집하기보다, 특성에 맞게 혼합 적용하는 것이 효과적입니다.


📌 블랙박스 기법

  • 사용 시점
    • 사용자 요구사항 검증 중심일 때
    • 코드 접근이 불가능하거나 필요 없는 경우
  • 활용 예시
    • 기능 테스트, UI/UX 검증, 크로스 브라우저 테스트


📌 화이트박스 기법

  • 사용 시점
    • 코드 품질과 커버리지를 수치로 관리할 때
    • 중요한 로직의 모든 경로를 검증할 때
  • 활용 예시
    • 알고리즘 모듈, 보안 로직, 안전성 핵심 시스템(항공·금융 등)


📌 경험 기반 기법

  • 사용 시점
    • 요구사항 문서가 부족하거나 일정이 빠듯할 때
    • 예상치 못한 시나리오까지 탐색해야 할 때
  • 활용 예시
    • 신규 서비스 런칭 전 빠른 QA, 베타 테스트


📌 혼합 전략

조합 목적
블랙박스 + 화이트박스 사용자 기능 검증 + 코드 커버리지 확보
블랙박스 + 경험 기반 문서화된 케이스 + 직관적 탐색 결함 발견
화이트박스 + 경험 기반 코드 리뷰 + 오류 추정으로 로직 강화

 

효과적인 QA는 “기법 하나”가 아니라 “적절한 조합”에서 나온다.
테스터는 기법을 보완적 도구로 활용해야 한다.

 

 

 

 

 

마무리
다음 게시글에서는 자동화 테스트에 대해 알아보겠습니다.

 

'study > Insight' 카테고리의 다른 글

[QA Basics] 비기능 테스트  (0) 2025.09.09
[QA Basics] 테스트 자동화  (0) 2025.09.08
[QA Basics] 테스트 프로세스  (0) 2025.09.06
[QA Basics] 테스트 원칙  (1) 2025.09.05
[QA Basics] 소프트웨어 품질 개념  (1) 2025.09.04