결정테이블테스트
태그 :
- 개념
- - 논리적인 조건이나 상황(Conditions)을 구현하는 시스템 요구사항을 도출하거나 내부시스템 디자인을 문서화하는 매우 유용한 도구
I. 논리적인 조건에 의존적인 결정테이블 테스팅의 개요
가. 결정테이블 테스팅(Decision table testing)의 정의
- 논리적인 조건이나 상황(Conditions)을 구현하는 시스템 요구사항을 도출하거나 내부시스템 디자인을 문서화하는 매우 유용한 도구
나. 결정테이블 테스트 특징
1) 시스템이 구현해야 하는 복잡한 비즈니스 규칙을 문서화하는데 사용.
2) 명세를 분석하고, 시스템의 조건과 동작(Actions)을 식별.
3) 입력 조건과 동작은 참(True)과 거짓(False)으로 주로 표현.
4) 결정 테이블은 동작을 유발시키는 조건 또는 상황(Triggering conditions 주로 모든 입력조건에 대한 참과 거짓의 조합으로 나타남) 및 각 해당 조합에 대한 예상 결과까지 포함.
5) 테이블의 각 칼럼은 비즈니스 규칙과 대응 관계를 갖음.
6) 해당 비즈니스 규칙(테이블의 각 컬럼)은 유일한 조건의 조합(Combination of conditions)을 정의하고, 조건의 조합은 해당 비즈니스 규칙과 연관된 동작을 수행.
다. 결정 테이블의 구성
입력조건 |
참과 거짓으로 표현되는 조건 |
기대결과 |
참과 거짓으로 표현되는 결과 |
Triggering Conditions |
동작을 유발 시키는 조건 or 상황 모든 입력 조건에 대한 참과 거짓의 조합 |
예상결과 |
각 Triggering conditions의 예상결과 |
II. 결정 테이블 테스트케이스 작성 예시
Test Case ID |
|||
1 |
2 |
3 |
|
테스트 조건 |
|||
폰에 칩을 탑재 |
F |
T |
T |
칩이 유효한지 검사 |
- |
F |
T |
유효한 비밀번호 |
- |
- |
F |
기대결과 |
|||
MSG(칩이 필요함) |
T |
- |
- |
MSG(침이 유효하지 않음) |
- |
T |
- |
MSG(패스워드 재입력) |
- |
- |
T |
[테스트 케이스]
1 |
2 |
3 |
|
사전 조건 |
휴대폰에 칩이 없음 |
휴대폰에 칩이 있음 |
유효한 비밀번호가 아니다 |
수행 순서 |
폰뱅킹 시도 |
폰뱅킹 시도 |
폰뱅킹 시도 |
기대 결과 |
“칩이필요” |
“칩 유효하지않음” |
“패스워드재입력” |
결과 |
|||
추적성 |
결정테이블 |
결정테이블 |
결정테이블 |
중요도 |
M |
M |
M |
III. 결정테이블 테스트 장단점
장점 |
단점 |
-.논리적으로 의존적인 가능한 모든 조건들의 조합을 생성함 -.요구사항등 테스트 베이시스의 문제점을 드러 내게하는 효과적인 테스트 케이스 생성 가능 -.테스트 베이시스의 불완전성과 모호함 지적 가능 -.테스트 케이스를 만들면서 결함을 발견하는 것이 가능함 |
-.작성에 많은 노력과 시간이 소요될 수 있음(특히, 테스트를 위해 결정 테이블을 만들어야 할 경우 작성 후 개발측의 검토가 필요함) -.복잡한 시스템을 표현하기 어려울 수 있으며, 작성 시 논리적 실수의 소지 있음 |
IV. 결정테이블 얻는 이점
- 자동화 테스팅 중의 결정 관리가 매우 향상
- IBM Rational Functional Tester와 IBM Rational Software Modeler를 재사용 가능한 테스트 스크립트를 실행하는 Non-Regression test suits로 활용 가능.
- 참고
예) 자판기를 시험한다고 가정할 때 테스터에게 500원과 다른 가격의 메뉴가 3개 있다고 가정(100원,200원,300원)
답변) 자판기 500원 대기모드(상태) – 테스터 500원 투입 (결정테이블) – 사용자 선택 중 (상태) – 사용자 선택 100원짜리 (결정테이블) – 자판기 100원짜리 음료 보냄(상태전이) – 100원짜리 음료 다 떨어졌다. (상태전이)
결정테이블) 돈을 넣는다.
- è 100원 짜리를 선택했을 때 이후 결과 (100원, 200원, 300원 선택가능. 금액 400원 표시).
- è 200원 짜리를 선택했을 때 이후 결과 (100원, 200원, 300원 선택가능. 금액 300원 표시)
- è 300원 짜리를 선택했을 때 이후 결과 (100원, 200원 선택가능. 금액 200원 표시)
- è 100원 짜리를 선택 후 200원 짜리 선택했을 때 결과(100원, 200원 선택 가능 금액 200원 표시) 등등 진행됨