Day04
昨天的学习中提了一下判定表的基本用法和定义,今天通过一个案例来巩固一下学过的内容
案例题目:行李托运费处理逻辑:航空规定,乘客可以免费托运30 公斤的行李,当重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元;对其它舱的国内乘客超重部 分每公斤收费6元;对外国乘客收费多一倍;对残疾乘客收费减半。
条件桩 | 超过30kg | N | Y | Y | Y | Y | Y | Y | Y | Y |
国内乘客 | - | Y | Y | Y | Y | N | N | N | N | |
头等舱乘客 | - | Y | Y | N | N | Y | Y | N | N | |
残疾乘客 | - | Y | N | Y | N | Y | N | Y | N | |
动作桩 | 免费 | 1 |
|
|
|
|
|
|
|
|
4元 |
| 1 | 1 |
|
| 1 | 1 |
|
| |
6元 |
|
|
| 1 | 1 |
|
| 1 | 1 | |
减半 |
| 1 |
| 1 |
| 1 |
| 1 |
| |
多一倍 |
|
|
|
|
| 1 | 1 | 1 | 1 | |
最终结果 | 0 | 2 | 4 | 3 | 6 | 4 | 8 | 6 | 12 |
因果图用于描述系统的输入输出、以及输入和输出之间的因果关系、输入和输入之间的约束关系。因果图的绘制过程是对被测系统外部特征的建模过程。根据系统输入输出间的因果图可以得到判定表,从而规划出测试用例。因果图和判定表两种方法在实际使用中结合紧密,往往同时使用,此时可以理解因果图为判定表的前置过程。对于一些简单的系统,或输入与输出已经非常明确的系统,判定表可以单数使用,如前所述的判定表法。
输入与输出之间的因果关系:
输入条件和输入条件之间的约束
E(C1,C2,C3): C1,C2,C3不会同时成立,最多只能有一个成立,可以同时不成立。
C1 | C2 | C3 |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
I(C1,C2):C1,C2不能同时为0
C1 | C2 |
1 | 1 |
1 | 0 |
0 | 1 |
O(C1,C2):C1,C2有且仅有一个为1
C1 | C2 |
0 | 1 |
1 | 0 |
R(C1,C2):C1是1,C2必须是1
C1 | C2 |
1 | 1 |
0 | 0 |
0 | 1 |
输出和输出的约束:输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为 0。
M(Ef1, Ef2)
通过因果图设计测试用例步骤:
1.确定原因和结果
2.确定原因和结果之间的(因果)关系
3.确定原因和原因(结果和结果)的约束关系
4.画出因果图,转换成判定表
5.根据判定表转化成测试用例