동등 분할(Equivalence Partitioning) 설계기법 살펴보았어요
ISO_IEC_IEEE_29119_Part4 에 나와있는대로
- 시스템명 : 학점관리
- 요구사항
- 시험점수(75점 만점) + 과제 점수(25점 만점) = 총점으로 학점 계산(A, B, C, D)
- 시험 점수 입력 : 0 ~ 75점
- 과제 점수 입력 : 0 ~ 25 점
- 범위를 벗어나거나 잘못된 입력은 "경고 메시지"출력
총 점 | 학점 |
70 <= ~ | A 학점 |
50 <= ~ < 70 | B 학점 |
30 <= ~ < 50 | C 학점 |
~ < 30 | D 학점 |
절차
- TD(Test Design)1 : 기능 세트 식별
- FS(Feature Sets)1 : 학점 생성 기능
- TD2 : 테스트 컨디션 도출
등가 분할에서는 각 파티션이 테스트 컨디션(TCOND:Test CONDition)이다.
- 유효한 입력 파티션 (Input Valid Partition)
- TCOND1 : 0 <= 시험 점수 <=75 (FS1)
- TCOND2 : 0 <= 과제 점수 <=25 (FS1)
- 비 유효한 입력 파티션(Input Invalid Partition)
- TCOND3 : 시험 점수 < 0 (FS1)
- TCOND4 : 시험 점수 > 75(FS1)
- TCOND5 : 과제 점수 < 0 (FS1)
- TCOND6 : 과제 점수 > 25 (FS1)
- 비 유효한 입력 파티션 (Input Invalid Partition)
- TCOND7 : 시험 점수 = 실수 값(소수점 포함) (FS1)
- TCOND8 : 시험 점수 = 영문자(FS1)
- TCOND9 : 시험 점수 = 특수 문자(FS1)
- TCOND10 : 과제 점수 = 실수 값(소수점 포함)(FS1)
- TCOND11 : 과제 점수 = 영문자(FS1)
- TCOND12 : 과제 점수 = 특수 문자 (FS1)
- 유효한 입력 파티션(Input Valid Partition)
- TCOND13 : 70 <= 총 점 <= 100, 'A'(FS1)
- TCOND14 : 50 <= 총 점 < 70, 'B'(FS1)
- TCOND15 : 30 <= 총 점 < 50, 'C'(FS1)
- TCOND16 : 0 <= 총 점 < 30, 'D'(FS1)
- TCOND17 : 총 점 > 100, '경고 메세지' 출력(FS1)
- TCOND18 : 총 점 < 0, '경고 메세지' 출력(FS1)
- TCOND19 : 총 점 = 정수 이외의 값, '경고 메세지'출력(FS1)
- 비 유효한 입력 파티션 (Input Invalid Partition)
- TCOND20 : 결과 = 'E'(FS1)
- TCOND21 : 결과 = 'A'(FS1)
- TCOND22 : 결과 = "null"(FS1)
- 유효한 입력 파티션 (Input Valid Partition)
- TD3 : 테스트 커버리지 아이템 도출
- 테스트 커버리지 아이템 = 식별 된 파티션 = 테스트 컨디션
TCOVER1 : 0 <= 시험 점수 <=75 (TCOND1)
TCOVER2 : 0 <= 과제 점수 <= 25 (TCOND2)
TCOVER3 : 시험 점수 < 0 (TCOND3)
TCOVER4 : 시험 점수 > 75 (TCOND4)
TCOVER5 : 과제 점수 < 0 (TCOND5)
TCOVER6 : 과제 점수 < 25 (TCOND6)
TCOVER7 : 시험 점수 = 실수 값(소수점 포함) (TCOND7)
TCOVER8 : 시험 점수 = 영문자 (TCOND8)
TCOVER9 : 시험 점수 = 특수 문자 (TCOND9)
TCOVER10 : 과제 점수 = 실수 값(소수점 포함) (TCOND10)
TCOVER11 : 과제 점수 = 영문자 (TCOND11)
TCOVER12 : 과제 점수 = 특수 문자 (TCOND12)
TCOVER13 : 70 <= 총 점 <= 100, 'A' (TCOND13)
TCOVER14 : 50 <= 총 점 < 70, 'B' (TCOND14)
TCOVER15 : 30 <= 총 점 < 50, 'C' (TCOND15)
TCOVER16 : 0 <= 총 점 < 30, 'D' (TCOND16)
TCOVER17 : 총 점 > 100, '경고 메세지' 출력 (TCOND17)
TCOVER18 : 총 점 < 0, '경고 메세지' 출력 (TCOND18)
TCOVER19 : 총 점 = 정수 이외의 값, '경고 메세지'출력 (TCOND19)
TCOVER20 : 결과 = 'E' (TCOND20)
TCOVER21 : 결과 = 'A' (TCOND21)
TCOVER22 : 결과 = "null" (TCOND22)
- 테스트 커버리지 아이템 = 식별 된 파티션 = 테스트 컨디션
- TD4 : 테스트 케이스 도출
- Option 4a(선택사항 4a) : One to One (일대일 동등 분할 테스트케이스 도출)
(테스트 케이스 = 하나의 테스트 커버리지 아이템 커버)
- Option 4a(선택사항 4a) : One to One (일대일 동등 분할 테스트케이스 도출)
테스트 케이스 | 입력(시험 점수) | 입력(과제 점수) | 총 점 | 테스트 커버리지 아이템 | 기대 결과 |
1 | 60 | 15 | 75 | 1 | A |
2 | -10 | 15 | 5 | 3 | 경고 메세지 출력 |
3 | 93 | 15 | 108 | 4 | 경고 메세지 출력 |
4 | 40 | 20 | 60 | 2 | B |
5 | 40 | -15 | 25 | 5 | 경고 메세지 출력 |
6 | 40 | 47 | 87 | 6 | 경고 메세지 출력 |
7 | 60.5 | 15 | 75.5 | 7 | 경고 메세지 출력 |
8 | q | 15 | 15 | 8 | 경고 메세지 출력 |
9 | $ | 15 | 15 | 9 | 경고 메세지 출력 |
10 | 40 | 20.23 | 60.23 | 10 | 경고 메세지 출력 |
11 | 40 | g | 40 | 11 | 경고 메세지 출력 |
12 | 40 | @ | 40 | 12 | 경고 메세지 출력 |
13 | 60 | 20 | 80 | 13 | A |
14 | 44 | 22 | 66 | 14 | B |
15 | 32 | 13 | 45 | 15 | C |
16 | 12 | 5 | 17 | 16 | D |
17 | 80 | 60 | 140 | 17 | 경고 메세지 출력 |
18 | -10 | -10 | -20 | 18 | 경고 메세지 출력 |
19 | 47.3 | @ | 47.3 | 19 | 경고 메세지 출력 |
20 | -10 | 0 | -10 | 20 | 경고 메세지 출력 |
21 | 100 | 10 | 110 | 21 | 경고 메세지 출력 |
22 | null | null | null | 22 | 경고 메세지 출력 |
- TD4 : 테스트 케이스 도출
- Option 4b(선택사항 4b) : Minimized(최소화 동등 분할 테스트 케이스 도출)
테스트 케이스 1과 13처럼 어떤 테스트 케이스는 유사한 내용을 테스트한다.
단지 다른점은 특정 테스트 커버리지 항목이 대상으로 하는 파티션에 따라 선택된다는 것이다. - 테스트 항목이 두개의 입력과 하나의 출력이기 때문에 각 테스트 케이스는 사실상 2개의 입력 파티션과
하나의 출력 파티션 총 3개 파티션을 대상으로 하게 된다.
따라서 하나 이상의 파티션을 실행하도록 설계한 테스트케이스를 도출하여 식별된 모든 파티션을 테스트하는 더작은 '최소화' 테스트케이스를 만들수 있다.
(테스트 케이스 = 여러 테스트 커버리지 아이템을 동시에 커버)
최소 동등 분할 접근 방식에 따라 생성한 테스트 케이스이다.
- Option 4b(선택사항 4b) : Minimized(최소화 동등 분할 테스트 케이스 도출)
테스트 케이스 | 입력(시험 점수) | 입력(과제 점수) | 총 점 | 테스트 커버리지 아이템 | 기대 결과 |
1 | 60 | 20 | 80 | 1, 2, 13 | A |
2 | 50 | 16 | 66 | 1, 2, 14 | B |
3 | 35 | 10 | 45 | 1, 2, 15 | C |
4 | 19 | 8 | 27 | 1, 2, 16 | D |
5 | -10 | -15 | -25 | 3, 5, 18, 20 | 경고 메세지 출력 |
6 | 93 | 47 | 140 | 4, 6, 17, 21 | 경고 메세지 출력 |
7 | 60.5 | 20.23 | 80.73 | 7, 10, 13, 19 | 경고 메세지 출력 |
8 | q | g | - | 8, 11, 19 | 경고 메세지 출력 |
9 | $ | @ | - | 9, 12, 19 | 경고 메세지 출력 |
10 | -10 | 5 | -5 | 3, 2, 18, 20 | 경고 메세지 출력 |
11 | 100 | 10 | 110 | 4, 2, 17, 21 | 경고 메세지 출력 |
12 | null | null | null | 19, 22 | 경고 메세지 출력 |
일대일 테스트는 특정 오류메시지를 출력하도록 하는 경우에 적합하지만 더 많은 테스트 케이스가 필요하다
최소화 접근법의 단점은 장애가 발생한 경우 어느 파티션에서 문제가 난것인지 확인하기 쉽지 않다는 것이다.
따라서 유효 테스트 케이스에는 최소화 방식을 사용하고 비유효 테스트케이스에는 일대일 방식을 사용하여
상호 보완적으로 사용하는것이 일반적이다.
- TD5 : 조합 테스트 셋 구성(경고 메세지가 출력 되는 케이스는 수작업 테스트)
오류 메시지(Fault Messages, FM)가 발생한 경우 자동화로 해결이 안 될수도 있다.
그래서 수동 테스팅과 자동화 테스트 세트(Test Sets, TS)를 만드수 있다.- Option 5a : One to One(일대일 동등 분할을 위한 조합 테스트)
- TS1 : 수동 테스트 - Test Case 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 17, 18, 19, 20, 21
- TS2 : 자동화 테스트 - Test Case 1, 4, 13, 14, 15, 16
- Option 5b : Minimized(최소 동등 분할 파티션을 위한 조합 테스트 세트)
- TS3 : 수동 테스트 - Test Case 5, 6, 7, 8, 9, 10, 11, 12
- TS4 : 자동화 테스트 - Test Case 1, 2, 3, 4
- Option 5a : One to One(일대일 동등 분할을 위한 조합 테스트)
- TD6 : 테스트 프로시저(테스트 절차) 도출
- Option 6a : One to One(일대일 동등 분할 테스트 절차 도출
- TP1 : 수작업 테스트 - TS1과 동일
TS1의 모든 테스트 케이스를 정해진 순서에 따라 실행하는 수동 테스팅 - TP2 : 자동화 테스트 - TS2와 동일
TS2의 모든 테스트케이스를 정해진 순서에 따라 실행하는 자동화 테스팅
- TP1 : 수작업 테스트 - TS1과 동일
- Option B : Minimized
- TP3 : 수작업 테스트 - TS3과 동일
- TP4 : 자동 테스트 - TS4와 동일
- Option 6a : One to One(일대일 동등 분할 테스트 절차 도출
Coverage = (N/T*100)%
커버지리 : 특정 테스트 설계기법으로 달성한 커버리지
N: 테스트 케이스 실행으로 커버한 테스트 커버리지 항목의 수
T: 테스트 설계기법으로 식별한 테스트 커버러지 항목의 수
동등분할에서는
커버리지 = (커버 된 파티션 / 전체 파티션) * 100%
커버리지: 동등 분할 커버리지
N: 테스트케이스 실행으로 커버한 파티션 수
T: 식별한 전체 파티션 수
커버리지(일대일 동등 분할)=22/22*100% = 100%
커버리지(최소화 동등 분할)=12/12*100% = 100%
'IEEE 표준 > ISO 29119' 카테고리의 다른 글
테스트 문서 관리/계획/현황/완료/테스트케이스/보고서 템플릿 예시(문서첨부)와 작성 방법 알아보니.. (1) | 2024.09.14 |
---|---|
경계값 분석(Boundary Value Analysis) 테스트 설계기법 살펴보니.. (0) | 2021.07.06 |
ISO/IEC/IEEE29119-4 테스트 기법 살펴보니.. (0) | 2021.07.01 |
ISO29119 : 테스트 관리 프로세스(Test Management Process) (0) | 2020.04.07 |
ISO/IEC/IEEE 29119 테스팅 표준의 구조 (0) | 2020.04.06 |