10.2 동등 분할
테스트를 효과적으로 수행하면서도 테스트 케이스의 개수를 줄이는 방법
입력, 출력 데이터를 동일한 결과를 낼 것으로 예상되는 동등 클래스로 분할하고 클래스 별로 대표값 하나만을 데스트 하는 방법
동등 클래스에서 선정한 값이 프로그램에서 올바르게 동작한다면 나머지 값들도 올바르게 동작할 것이라는 가정을 하고 진행
동등 클래스의 합집합은 입력 영역 그 자체이고 동등 클래스들은 서로 공통된 값이 없어야 함
유효한 입력 및 출력뿐만 아니라 유효하지 않은 입력 및 출력도 고려해야 함
유효하지 않은 출력이란 명세에 명시적으로 기술되어 있지 않은 것을 말하며 테스터의 주관이나 과거의 경험에 의존
유효하지 못 한 테스트 케이스는 One-to-One 방식으로 설계하고 유효한 테스트 케이스는 최소화 동등 분할 방식으로 설계하는 것도 좋음

(1) 입력 출력에 대해 명세를 분석하여 동일한 결과를 낼 것으로 예상되는 영역으로 분할
| 유효함 | 유효하지 않음 (오류 발생) | ||
| 입력 | 0<나이<=100 | 나이<=0 나이>100 나이 정수가 아님 (나이=문자열, 나이=실수 등) |
|
| 출력 | 입장 불가 보호자 동반 입장 가능 Invalid input Too old |
0<나이<=10 10<나이<=15, 80<나이<=100 16<나이<=80 나이<=0, 나이 정수가 아님 나이>100 |
명세에 나와 있지 않은 다른 메세지가 출력됨 예) "노인 할인 입장" (60<나이<=100) |
(2) 동등 클래스에서 대표값을 선정하여 테스트 케이스 만듦
(*일반적으로 동등 클래스는 입력 데이터를 기준으로 선정)
| 동등 클래스 | 입력 | 예상 출력 | ||
| 입력 | 유효함 | 0<나이<=100 | 50 | 입장 가능 |
| 유효하지 않음 | 나이<=0 | -10 | Invalid input | |
| 나이>100 | 105 | Too old | ||
| 나이=문자열 | abc | Invalid input | ||
| 나이=실수 | 27.5 | Invalid input | ||
| 출력 | 유효함 | 0<나이<=10 | 5 | 입장 불가 |
| 10<나이<=15 | 13 | 보호자 동반 입장 | ||
| 80<나이<=100 | 85 | 보호자 동반 입장 | ||
| 16<나이<=80 | 30 | 입장 가능 | ||
| 나이<=0 | -20 | Invalid input | ||
| 나이 정수가 아님 | 23.11 | Invalid input | ||
| 나이>100 | 110 | Too old | ||
| 유효하지 않음 | 60<나이<=100 | 70 | 입장 가능 |


One-to-One 동등 분할: 입력/출력 영역을 분할한 클래스들과 테스트 케이스 간 일대일 관계로 조합

최소화 동등 분할: 하나의 테스트 케이스에 여러 개의 클래스가 포함되도록 조합하여 One-to-One 방식보다 수를 줄일 수 있음

'도서 및 강의 > 소프트웨어 테스트 전문가(CSTS) 가이드' 카테고리의 다른 글
| 10장 명세 기반 테스트 - 10.5 조합 테스트 (0) | 2025.11.28 |
|---|---|
| 10장 명세 기반 테스트 - 10.4 경곗값 분석 (0) | 2025.11.28 |
| 10장 명세 기반 테스트 - 10.1 개요 (0) | 2025.11.28 |
| 구조 기반 테스트 정리 (0) | 2025.11.28 |
| 9장 구조 기반 테스트 - 9.8 다중 조건 테스트 (0) | 2025.11.28 |