정의 및 원리
테스트 아이템의 입력 또는 출력이 여러 영역으로 구분되는 경우에 적용
입력 또는 출력 조건의 경계를 기준으로 데이터를 선택해 테스트하는 기법
예제를 통해 알아보겠습니다.
- 시스템명 : 교과목 학점 평가 시스템
- 요구사항
- 시험점수(75%) + 과제점수(25%) = 총점 = 학점 계산(A, B, C, D)
- 점수(시험, 과제) 별 범위를 벗어나는 점수를 입력하면 "경고 메세지" 출력
- "정수"만 모든 입력 가능
총 점 | 학점 |
70 <= ~ | A |
50 <= ~ < 70 | B |
30 <= ~ < 50 | C |
~ < 30 | D |
절차
- TD1 : 기능 셋 식별
- 교과목 학점 평가 시스템
- TD2 : 테스트 컨디션 도출(파티션 식별)
- 유효한 입력 파티션(Input Valid Partition)
- EP1 : 0 <= 시험 점수 <=75
- EP1 : 0 <= 시험 점수 <= 75
- EP2 : 0 <= 과제 점수 <= 25
- 비 유효한 입력 파티션(Input Invalid Partition)
- EP3 : 시험 점수 > 75
- EP4 : 시험 점수 < 0
- EP5 : 과제 점수 > 25
- EP6 : 과제 점수 < 0
- EP3 : 75 < 시험 점수 <= 32767(16bit)
- EP4 : -32768 <= 시험 점수 < 0
- EP5 : 25 < 과제 점수 <= 32767
- EP6 : -32768 <= 과제 점수 < 0
- EP7 : 시험 점수 = 실수 값(소수점 포함)
- EP8 : 시험 점수 = 영문자
- EP9 : 시험 점수 = 특수 문자
- EP10 : 과제 점수 = 실수 값(소수점 포함)
- EP11 : 과제 점수 = 영문자
- EP12 : 과제 점수 = 특수 문자
- 유효한 입력 파티션(Input Valid Partition)
- EP13 : 70 <= 총 점 <= 100, 'A'
- EP14 : 50 <= 총 점 < 70, 'B'
- EP15 : 30 <= 총 점 < 50, 'C'
- EP16 : 0 <= 총 점 < 30, 'D'
- EP17 : 총 점 > 100, '경고 메시지' 출력
- EP18 : 총 점 < 0, '경고 메시지' 출력
- EP17 : 100 < 총 점 <= 32767, '경고 메세지' 출력
- EP18 : -32768 <= 총 점 < 0, '경고 메세지' 출력
- 유효한 입력 파티션(Input Valid Partition)
- TD2 : 테스트 컨디션 도출
- TD3 : 테스트 커버리지 아이템 도출
- TD4 : 테스트 케이스 도출
테스트 케이스 |
입력 |
총 점 |
테스트 커버리지 아이템 |
기대 결과 |
테스트 된 경계 값 |
|
시험 점수 |
과제 점수 |
|||||
1 |
-1 |
15 |
14 |
1 |
경고 메시지 |
0 |
2 |
0 |
15 |
15 |
2 |
D |
|
3 |
1 |
15 |
16 |
3 |
D |
|
4 |
74 |
15 |
89 |
4 |
A |
75 |
5 |
75 |
15 |
90 |
5 |
A |
|
6 |
76 |
15 |
91 |
6 |
경고 메시지 |
|
7 |
40 |
-1 |
39 |
7 |
경고 메시지 |
0 |
8 |
40 |
0 |
40 |
8 |
C |
|
9 |
40 |
1 |
41 |
9 |
C |
|
10 |
40 |
24 |
64 |
10 |
B |
25 |
11 |
40 |
25 |
65 |
11 |
B |
|
12 |
40 |
26 |
66 |
12 |
경고 메시지 |
|
13 |
-1 |
0 |
-1 |
25 |
경고 메시지 |
0 |
14 |
0 |
0 |
0 |
26 |
D |
|
15 |
0 |
1 |
1 |
27 |
D |
|
16 |
28 |
0 |
28 |
28 |
D |
29 |
17 |
29 |
0 |
29 |
29 |
D |
29, 30 |
18 |
15 |
15 |
30 |
30 |
C |
|
19 |
6 |
25 |
31 |
31 |
C |
30 |
20 |
23 |
25 |
48 |
32 |
C |
49 |
21 |
24 |
25 |
49 |
33 |
B |
49, 50 |
22 |
50 |
0 |
50 |
34 |
B |
|
23 |
26 |
25 |
51 |
35 |
B |
50 |
24 |
48 |
20 |
68 |
36 |
B |
69 |
25 |
49 |
20 |
69 |
37 |
B |
69,70 |
26 |
45 |
25 |
70 |
38 |
A |
|
27 |
71 |
0 |
71 |
39 |
A |
70 |
28 |
74 |
25 |
99 |
40 |
A |
100 |
29 |
75 |
25 |
100 |
41 |
A |
100, 101 |
30 |
75 |
26 |
101 |
42 |
경고 메시지 |
|
31 |
32766 |
15 |
32781 |
13 |
경고 메시지 |
32767 |
32 |
32767 |
15 |
32782 |
14 |
경고 메시지 |
|
33 |
32768 |
15 |
32783 |
15 |
경고 메시지 |
|
34 |
-32769 |
15 |
-32754 |
16 |
경고 메시지 |
-32768 |
35 |
-32768 |
15 |
-32753 |
17 |
경고 메시지 |
|
36 |
-32767 |
15 |
-32752 |
18 |
경고 메시지 |
|
37 |
40 |
32766 |
32806 |
19 |
경고 메시지 |
32767 |
38 |
40 |
32767 |
32807 |
20 |
경고 메시지 |
|
39 |
40 |
32768 |
32808 |
21 |
경고 메시지 |
|
40 |
40 |
-32769 |
-32729 |
22 |
경고 메시지 |
-32768 |
41 |
40 |
-32768 |
-32728 |
23 |
경고 메시지 |
|
42 |
40 |
-32767 |
-32727 |
24 |
경고 메시지 |
|
43 |
75 |
27 |
102 |
43 |
경고 메시지 |
101 |
44 |
16383 |
16383 |
32766 |
44 |
경고 메시지 |
32767 |
45 |
32767 |
0 |
32767 |
45 |
경고 메시지 |
|
46 |
1 |
32767 |
32768 |
46 |
경고 메시지 |
|
47 |
-1 |
0 |
-1 |
47 |
경고 메시지 |
-1 |
48 |
0 |
-32769 |
-32769 |
48 |
경고 메시지 |
-32768 |
49 |
-16384 |
-16384 |
-32768 |
49 |
경고 메시지 |
|
50 |
-32766 |
-1 |
-32767 |
50 |
경고 메시지 |
- TD5 : 테스트 셋 구성
- TS1 : 수작업 테스트("경고 메세지"가 출력 되는 케이스는 수작업 테스트)
- 1, 2, 3, 4, 5, 6, 7, 12, 13, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
- TS2 : 자동 테스트
- 2, 3, 4, 5, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
- TS1 : 수작업 테스트("경고 메세지"가 출력 되는 케이스는 수작업 테스트)
- TD6 : 테스트 프로시저 도출
- TP1 : 수작업 테스트 - TS1과 동일
- TP2 : 자동 테스트 - TS2와 동일
커버리지 = (커버 된 경계 값 수 / 전체 경계 값 수) * 100%
2-Value(테스트 커버리지 아이템)
경계는 파티션의 최대 및 최소 값으로 설정
비 유효한 파티션의 "다른 경계값' 또는 '끝 값'을 종종 고려하지 못할 수 있음
3-Value(테스트 커버리지 아이템)
경계값은 파티션을 고려해야 함
정확한 경계값은 명세에 따라 달라짐
잘못 설정된 경계값을 발견하기 위하여 경계의 양 쪽 값을 모두 선택
[기술적 관점]
시험 점수와 과제 점수는 정수
정수의 경계값을 고려해야 함(비트에 따라)
정수라면 일반적으로 MinInt +-X와 MaxInt +-X 로 테스트 설계
경계값은 선언된 변수의 유형을 고려
X 값은 선언된 변수 유형의 가장 작은 수를 사용
UI 또는 하드웨어 입력 장치 고려
입력 필드와 같은 UI에 따라 입력 가능한 경계 값을 고려해야 함
소프트웨어가 경계값에 따라 가능한 대처 방법도 고려해야 함
경계를 잘못 구현한 결함 발견에 유용
예를 들어, 시험 점수가 65점을 이상을 65점 초과로 구현
일반적인 실수는 명세를 잘못 이해하거나 연산자를 잘못 사용하는 경우임
경계값 분석은 결함 발견에 가장 효과적인 기법으로 널리 사용됨
모든 테스트 레벨에 적용 가능
경계값 분석은 일반적으로 동등 분할을 표현
하지만 특정한 클래스는 경계가 없을 수 있음(예를 들어 파랑, 빨강, 녹색과 같은 색상)
경계값 분석은 동등 분할 테스팅 보다 훨씬 더 효과적이기 때문에 가능한 경계값 분석을 적용!
'SW_이론 > SW 테스트 설계 향상 교육' 카테고리의 다른 글
결정테이블 테스팅(Cause-Effect Graph, Decision Table Testing) (0) | 2019.08.16 |
---|---|
상태전이 테스팅(State Transistion Testing) (0) | 2019.08.15 |
Pairwise Testing 도구 (0) | 2019.08.15 |
조합 테스팅(Combinatorial Testing) (0) | 2019.08.15 |
동등 분할(Equivalence Partitioning) (0) | 2019.08.14 |