1. White-box Testing Techniques (화이트박스 테스트)
기법명 | 상세설명 | 장점 | 단점 | 간단 예시 |
Statement Testing and Coverage | 코드 내 모든 명령문(statement)이 적어도 한 번 실행되었는지 확인하는 기법 | 코드 실행 누락 방지, 기본적인 커버리지 확보 | 복잡한 로직에서는 분기나 조건을 충분히 커버하지 못함 | IF문 내 모든 명령문이 최소 1회 실행되도록 테스트 케이스 작성 |
Decision Testing and Coverage | 모든 결정문(조건문의 분기)을 참/거짓 모두 실행하도록 테스트 | 조건문의 모든 분기 검사로 오류 발견 가능성 증가 | 단순 조건에는 적합하지만 복잡한 조건의 경우 조건별 조합은 빠짐 | IF 조건이 참인 경우와 거짓인 경우 모두 테스트 |
Condition Testing and Coverage | 복합 조건식 내 각각의 개별 조건들이 참/거짓을 모두 갖도록 테스트 | 각 조건별로 영향을 분석할 수 있어 상세한 결함 발견 가능 | 조건 개수가 많아지면 테스트 케이스 급증 | IF (A > 5 AND B < 10) 에서 A와 B 조건 각각 참/거짓 테스트 |
Modified Condition/Decision Coverage (MC/DC) | 각 조건이 독립적으로 결정 결과에 영향을 주는지 입증하는 테스트 기법 | 높은 신뢰성, 항공·의료 등 안전 중요 시스템에 적합 | 테스트 설계와 수행 비용이 많이 듦 | 각 조건값 변경이 결과를 바꾸는지 테스트 |
Path Testing | 가능한 실행 경로를 모두 테스트하는 기법 (실제로는 일부 경로만 수행) | 복잡한 버그 탐지 가능성 높음 | 경로 수가 폭발적으로 증가하여 실용적이지 않음 | IF-ELSE 구문 여러 개 조합 경로를 테스트 |
2. Black-box Testing Techniques (블랙박스 테스트)
기법명 | 상세설명 | 장점 | 단점 | 간단 예시 |
Equivalence Partitioning (동등 분할) |
입력 값을 유사한 그룹(동등 클래스)으로 나누고 각 그룹 대표 값만 테스트 | 테스트 케이스 수 감소, 효율적 테스트 가능 | 잘못된 분할 시 결함 발견 누락 위험 | 나이 입력값 0 |
Boundary Value Analysis (경계값 분석) |
입력값의 경계(최솟값, 최댓값, 경계 근처 값)를 집중 테스트 | 경계에서 발생하는 오류 발견에 효과적 | 경계 외 문제는 발견하기 어려울 수 있음 | 나이 0, 1, 99, 100, 101 등 경계 주변 값 테스트 |
Decision Table Testing (의사결정 테이블 테스트) |
입력 조건 조합에 따른 결과를 표로 정리하고 모든 조합을 테스트 | 복잡한 조건 조합 관리 용이, 누락 방지 | 조합이 많으면 표가 매우 커져 관리 어려움 | 대출 승인 조건(신용점수, 소득, 대출금액)에 따른 결과 표 작성 |
State Transition Testing (상태 전이 테스트) |
시스템이 상태를 바꿀 때 발생하는 입력과 출력, 상태 변화를 테스트 | 상태 기반 시스템에 적합, 상태별 동작 검증 가능 | 상태 수가 많으면 테스트 케이스 폭증 | 로그인 후 로그아웃 상태, 비밀번호 변경 상태 테스트 |
Use Case Testing (사용사례 테스트) |
사용자의 시나리오를 중심으로 기능과 흐름을 테스트 | 실제 사용자 관점 테스트, 요구사항 충족 검증 | 시나리오 누락 시 결함 발견이 어려울 수 있음 | 회원 가입, 상품 주문 시나리오를 따라 테스트 |
반응형