블랙박스 테스트에서 사용되는 테스트 기법은 다음과 같다.
정의
동등 분할 테스팅은 테스트 대상이 동일한 방식으로 처리될 것으로 예상되는 데이터를 분할 단위로 나누는 기법이다. 각 분할 내의 특정 값을 테스트하는 테스트 케이스가 결함을 식별할 수 있다면, 같은 분할의 다른 값도 결함을 식별할 수 있다고 가정한다. 따라서 각 분할에 대해 하나의 테스트만 수행하면 충분하다.
적용 대상
동등 분할은 입력, 출력, 형상 항목, 내부 값, 시간 관련 값, 인터페이스 매개변수 등 테스트 대상과 관련된 모든 데이터 요소에 대해 식별할 수 있다.
특징
유효/비유효 분할
커버리지
이치 초이스 커버리지(Each Choice Coverage)
주의 사항
테스트 대상 : 사용자가 입력하는 나이에 따라 다른 메시지를 출력하는 간단한 애플리케이션을 가정한다.
동등 분할
이 애플리케이션에서는 입력 값의 범위에 따라 다음과 같은 동등 분할을 정의할 수 있다.
유효 분할
비유효 분할
정의
경계값 분석은 동등 분할의 경계값을 중심으로 테스트하는 기법이다. 주로 개발자가 경계값에서 오류를 범할 가능성이 높기 때문에 경계값에 집중하여 테스트한다. 경계값 분석은 정렬된 분할에서만 사용할 수 있다.
경계값의 정의
경계값 분석의 주요 결함
유형
테스트 대상
사용자가 입력하는 점수에 따라 성적을 부여하는 애플리케이션을 가정합니다. 점수에 따라 다음과 같은 성적을 부여한다.
경계값
이 애플리케이션에서는 각 성적 구간의 경계값을 다음과 같이 정의할 수 있다.
0, 59, 60, 69, 70, 79, 80, 89, 90, 100
2-value BVA를 기준으로 테스트 데이터 분류
1. 0, 59
2. 60, 69
3. 70, 79
4. 80, 89
5. 90, 100
3-value BVA를 기준으로 테스트 데이터 분류
1. -1, 0, 1
2. 58, 59, 60
3. 59, 60, 61
4. 68, 69, 70
5. 78, 79, 80
6. 79, 80, 81
7. 88, 89, 90
8. 89, 90, 91
9. 99, 100, 101
정의
결정 테이블 테스팅은 여러 조건의 조합에 따라 달라지는 결과를 정확하게 구현했는지 확인하는 테스트 기법이다. 복잡한 비즈니스 로직을 테스트하는 데 효과적이다.
결정 테이블 구성
표기법
유형
커버리지
강점
예제1: 간단한 논리 연산
조건
결정 테이블
| 조건/결과 | 조건 1 (A) | 조건 2 (B) | 결과 (출력 C) |
|---|---|---|---|
| 규칙 1 | T | T | X |
| 규칙 2 | T | F | |
| 규칙 3 | F | T | |
| 규칙 4 | F | F |
설명
규칙 1 : A와 B가 모두 참인 경우 출력 C가 발생.
규칙 2 : A가 참이고 B가 거짓인 경우 출력 C가 발생하지 않음.
규칙 3 : A가 거짓이고 B가 참인 경우 출력 C가 발생하지 않음.
규칙 4 : A와 B가 모두 거짓인 경우 출력 C가 발생하지 않음.
예제: 온라인 쇼핑몰 할인 규칙
조건
| 조건/결과 | 조건 1 (회원) | 조건 2 (구매 금액) | 조건 3 (쿠폰 사용) | 결과 (할인) |
|---|---|---|---|---|
| 규칙 1 | T | C3 | T | X |
| 규칙 2 | T | C3 | F | X |
| 규칙 3 | T | C2 | T | X |
| 규칙 4 | T | C2 | F | X |
| 규칙 5 | T | C1 | T | |
| 규칙 6 | T | C1 | F | |
| 규칙 7 | F | C3 | T | X |
| 규칙 8 | F | C3 | F | |
| 규칙 9 | F | C2 | T | |
| 규칙 10 | F | C2 | F | |
| 규칙 11 | F | C1 | T | |
| 규칙 12 | F | C1 | F |
설명
규칙 1 : 회원이고 구매 금액이 200달러 이상이며 쿠폰을 사용한 경우 할인이 적용됨
규칙 2 : 회원이고 구매 금액이 200달러 이상이며 쿠폰을 사용하지 않은 경우 할인이 적용됨.
규칙 3 : 회원이고 구매 금액이 100달러 이상 200달러 미만이며 쿠폰을 사용한 경우 할인이 적용됨.
규칙 4 : 회원이고 구매 금액이 100달러 이상 200달러 미만이며 쿠폰을 사용하지 않은 경우 할인이 적용됨.
규칙 5 : 회원이고 구매 금액이 100달러 미만이며 쿠폰을 사용한 경우 할인이 적용되지 않음.
규칙 6 : 회원이고 구매 금액이 100달러 미만이며 쿠폰을 사용하지 않은 경우 할인이 적용되지 않음.
규칙 7 : 비회원이고 구매 금액이 200달러 이상이며 쿠폰을 사용한 경우 할인이 적용됨.
규칙 8 : 비회원이고 구매 금액이 200달러 이상이며 쿠폰을 사용하지 않은 경우 할인이 적용되지 않음.
규칙 9 : 비회원이고 구매 금액이 100달러 이상 200달러 미만이며 쿠폰을 사용한 경우 할인이 적용되지 않음.
규칙 10 : 비회원이고 구매 금액이 100달러 이상 200달러 미만이며 쿠폰을 사용하지 않은 경우 할인이 적용되지 않음.
규칙 11 : 비회원이고 구매 금액이 100달러 미만이며 쿠폰을 사용한 경우 할인이 적용되지 않음.
규칙 12 : 비회원이고 구매 금액이 100달러 미만이며 쿠폰을 사용하지 않은 경우 할인이 적용되지 않음.
정의
상태 전이 테스팅은 시스템의 가능한 상태와 유효한 상태 전이를 모델링하여 시스템 동작을 테스트하는 기법이다. 전이는 특정 이벤트에 의해 발생하며, 가드 조건과 동작이 포함될 수 있다.
상태 전이 다이어그램
상태 테이블
테스트 케이스
커버리지 측정 기준
예제: 간단한 자동판매기
상태
이벤트
상태 전이 다이어그램
대기 --> [동전 투입] --> 선택
선택 --> [상품 선택] --> 결제
결제 --> [상품 제공] --> 상품 제공
상품 제공 --> [초기화] --> 대기
상태 테이블
| 상태 | 동전 투입 | 상품 선택 | 상품 제공 | 초기화 |
|---|---|---|---|---|
| 대기 | 선택 | |||
| 선택 | 결제 | |||
| 결제 | 상품 제공 | |||
| 상품 제공 | 대기 |
테스트 케이스
1. TC1: 대기 상태에서 선택 상태로 전이
TC2: 선택 상태에서 결제 상태로 전이
TC3: 결제 상태에서 상품 제공 상태로 전이
TC4: 상품 제공 상태에서 대기 상태로 전이
커버리지
문제 1: 동등 분할의 주요 목적은 무엇인가?
A) 소프트웨어의 성능을 개선하기 위해
B) 테스트 케이스 수를 줄이면서도 충분한 테스트를 수행하기 위해
C) 사용자 인터페이스를 개선하기 위해
D) 하드웨어 오류를 수정하기 위해
정답(드래그)
B
해설(드래그)
동등 분할의 주요 목적은 입력 데이터의 동등한 그룹을 나누어 테스트 케이스 수를 줄이면서도 충분한 테스트를 수행하는 것이다.
문제 2: 다음 중 동등 분할의 예로 올바른 것은?
A) 0 ~ 12: 어린이, 13 ~ 19: 청소년, 20 ~ 59: 성인, 60 이상: 노인
B) 경계값을 테스트하는 방법
C) 여러 조건 조합을 테스트하는 방법
D) 코드의 내부 구조를 분석하는 방법
정답(드래그)
A
해설(드래그)
입력 데이터를 연령대에 따라 분할한 것으로 각 연령대는 동일한 방식으로 처리가 이뤄진다.
문제 3: 동등 분할에서 유효한 값과 비유효한 값의 정의는 무엇인가?
A) 유효한 값은 테스트 대상이 무시하거나 거부해야 하는 값
B) 유효하지 않은 값은 명세에 정의된 값을 포함하는 값
C) 유효한 값은 테스트 대상이 처리해야 하는 값
D) 유효하지 않은 값은 테스트 대상이 명세에 정의된 값을 포함하는 값
정답(드래그)
C
해설(드래그)
유효한 값은 테스트 대상이 처리해야 하는 값이며, 비유효한 값은 테스트 대상이 명세에 정의되지 않은 값이다.
문제 4: 경계값 분석의 주요 목적은 무엇인가?
A) 내부 구조를 분석하기 위해
B) 코드의 성능을 개선하기 위해
C) 경계에서 발생할 수 있는 결함을 식별하기 위해
D) 사용자의 경험을 분석하기 위해
정답(드래그)
C
해설(드래그)
경계값은 오류가 발생할 가능성이 높은 영역으로 경계값 분석은 경계에서 발생할 수 있는 결함을 식별하는 데 중점을 둔다.
문제 5: 두 개 선택 경계값 분석의 커버리지 항목은 무엇인가?
A) 각 경계값과 경계값의 이웃한 값
B) 모든 조건 조합
C) 각 분할의 모든 값
D) 사용자 인터페이스 요소
정답(드래그)
A
해설(드래그)
두 개 선택 경계값 분석에서는 각 경계값과 그 이웃한 값을 커버리지 항목으로 한다.
문제 6: 다음 중 세 개 선택 경계값 분석에서 100% 커버리지를 달성하기 위한 조건은?
A) 모든 경계값과 그 이웃한 값을 테스트
B) 모든 내부 구조를 분석
C) 모든 경계값만 테스트
D) 모든 사용자 인터페이스 요소를 분석
정답(드래그)
A
해설(드래그)
세 개 선택 경계값 분석에서는 모든 경계값과 그 이웃한 값을 테스트해야 100% 커버리지를 달성할 수 있다.
문제 7: 결정 테이블 테스팅의 주요 목적은 무엇인가?
A) 소프트웨어의 성능을 개선하기 위해
B) 다중 조건 조합의 결과를 테스트하기 위해
C) 사용자 인터페이스를 개선하기 위해
D) 하드웨어 오류를 수정하기 위해
정답(드래그)
B
해설(드래그)
결정 테이블 테스팅의 주요 목적은 여러 조건의 조합에 따라 달라지는 결과를 테스트하는 것
문제 8: 결정 테이블의 열은 무엇을 나타내는가?
A) 하나의 결정 규칙
B) 시스템의 상태
C) 코드의 내부 구조
D) 사용자 인터페이스 요소
정답(드래그)
A
해설(드래그)
결정 테이블의 열은 하나의 결정 규칙을 나타내며, 각 조건 조합과 그에 따른 동작을 정의함
문제 9: 다음 중 결정 테이블 테스팅의 강점으로 옳지 않은 것은?
A) 누락되거나 모순된 요구사항을 식별
B) 모든 조건 조합을 체계적으로 식별
C) 조건이 많을 때 기하급수적으로 늘어나는 규칙 수
D) 단순한 논리를 기록하는 방법
정답(드래그)
D
해설(드래그)
결정 테이블 테스팅의 강점은 누락되거나 모순된 요구사항을 식별하고, 모든 조건 조합을 체계적으로 식별하는 데 있다.
문제 10: 상태 전이 테스팅에서 커버리지 측정 기준이 아닌 것은?
A) 모든 상태 커버리지
B) 유효 전이 커버리지
C) 모든 전이 커버리지
D) 사용자 인터페이스 커버리지
정답(드래그)
D
해설(드래그)
사용자 인터페이스 커버리지는 존재하지 않는다.
문제 11: 상태 전이 테스팅에서 유효 전이 커버리지를 100% 달성하기 위한 조건은?
A) 모든 상태를 테스트
B) 모든 유효 전이를 테스트
C) 모든 상태와 전이를 테스트
D) 모든 사용자 인터페이스를 테스트
정답(드래그)
C
해설(드래그)
문제 12: 상태 전이 테스팅의 강점은 무엇인가?
A) 모든 상태와 전이를 체계적으로 식별
B) 사용자 인터페이스의 성능을 개선
C) 하드웨어 오류를 수정
D) 소프트웨어의 내부 구조를 분석
정답(드래그)
A
해설(드래그)
상태 전이 테스팅은 시스템의 모든 상태와 상태 간 전이를 체계적으로 식별하고 테스트할 수 있어, 누락되거나 잘못된 상태 전이를 발견하는 데 유용함