블랙박스 테스트
- 명세 기반 테스트(ISO/IEC/IEEE 29119)
- 명세에 따른 올바른 구현여부 테스트
- 명세 정보 등을 이용하여 테스트 케이스 설계
- 요구사항 분석 / 시스템 인터페이스 / UI 명세
- 원시 코드 정보를 이용하지 않음
- 사용자 입장에서 테스트 케이스 설계 가능
- 개발 초기 단계부터 테스트 케이스 설계 가능
- 단위, 통합, 시스템, 인수 테스트 전 과정에 사용
- 동일 명세로 구현된 여러 시스템에 재사용 가능
- 기능 (누락) 오류 / 명세 오류 검출
- 요구사항 분석 / 시스템 인터페이스 / UI 명세
예시
- 입력이 1024 이하이면 입력 값, 크면 1 증가 값 반환
// BlackBoxTest.java
public class BlackBoxTest {
public int bTest(int x) {
return x;
}
}
- 명세에 따라 1024 이하인 경우, 큰 경우를 테스트
- "1 증가 값 반환" 이라는 누락된 기능 검출
- 화이트박스(구조기반) 테스트에서는 프로그램의 원시 코드로 테스트 케이스를 설계하므로 확인 불가
동등 클래스 분할 (ECP: Equivalent Class Partition, 동치류 분할)
- 입력 영역을 여러 동치류로 분할하여 대표 값 선정
- 분할 영역의 동치류 만족 조건
- 각 동치류의 대표 값에 의해서 오류가 있(없)으면 그 동치류의 다른 값에 대해서 오류가 있(없)음
- 모든 입력 영역을 동치류로 분할하는 것은 불가능
- 근사적 입력 영역 분할 방법 사용
- 시스템에 의하여 처리/출력 결과가 같은 입력 조건/데이터 값의 모임
exports.getInfoById = function(req, res) {
pool.getConnection(function(error, con) {
var id = req.param('id');
var sql = 'select * from LIST where id = ' + "'"+id+"'";
con.query(sql, function(error, result) {
res.send(result[0]);
con.release( );
});
});
};
동등 클래스 수행 절차
- 명세로부터 입력 인자(변수) 식별
- 입력 인자를 동치류로 분할
- 입력 조건이 특정 범위/값: 만족, 불만족 범위 분할
3. 각 동치류를 적절한 조합 연산자 이용하여 조합
4. 불가능한 조합 점검 및 제거
5. 조합된 클래스의 대표 값 선정, 테스트 케이스에 반영
예시 : 놀이공원 티켓 발매 시스템
- "10세 미만이면 아동할인, 15세 이하이면 부모 동반, 30세 이상 여성은 여성할인, 60세 이상은 경로할인"
- 입력 인자: 나이(A), 성별(B)
- 나이 구간:
- 10 미만일때 : 아동할인
- 10이상 15이하 : 부모동반
- 15 초과 30 미만 : 할인 미적용
- 30이상 60 미만 : 여성할인
- 60 이상 : 경로할인
- 성별: 'F', 'M'
- 나이 구간:
- 명세를 명확하게 수정
- 60세 이상 여성은 경로 + 여성 중복할인?, 0세 미만?
- 경로할인만 적용, 태아 제외 이런식으로 명세에 빈틈이 없도록 수정
- 동치류
- A1: 나이 0 이상 10 미만
- A2: 나이 10 이상 15이하
- A3: 나이 15 초과 30 미만
- A4: 나이 30 이상 60 미만
- A5: 나이 60 이상
- B1: F
- B2: M
- 입력 인자: 나이(A), 성별(B)
'CS' 카테고리의 다른 글
객체 지향 프로그래밍을 설계할 때는 SOLID 원칙을 지켜야 한다. (0) | 2024.04.12 |
---|---|
[컴퓨터 구조] 시스템 버스(System Bus) 및 동작 방식 (0) | 2024.03.12 |
[소프트웨어 공학] JUnit (0) | 2022.10.10 |
[소프트웨어 공학] 소프트웨어 테스트 - 2 (0) | 2022.10.03 |
[소프트웨어공학] 소프트웨어 테스트 - 1 (0) | 2022.10.03 |