状态迁移图
通过描绘系统的状态及引起状态转换的事件,来表示系统的行为
例如:订机票
l向航空公司打电话预定机票—>此时机票信息处于
“完成”状态
顾客支付了机票费用后—>机票信息就变为“已支付”状态
旅行当天到达机场后,拿到机票后—>机票信息就变为“已出票”状态
登机检票后—>机票信息就变为“已使用”状态
在登上飞机之前任何时间可以取消自己的订票信息,
如果已经支付了机票的费用,则还可以得到退款,
取消后—>订票信息处于“已被取消”状态
转换成迁移树:
2.状态迁移图设计测试用例步骤:
1)画出状态迁移图
2)通过状态迁移图画出状态转换树
3)从状态转换树推导出测试路径
4)根据测试路径编写合法(正常)测试用例或非法(异常)测试用例
注意:保证从状态转换树的根节点到每个叶节点的每一条路径都至少设计出一个测试用例
案例:打印机状态
状态迁移图:
状态迁移树:
推到用例:
a.验证打印完成
b.验证打印完成(修复故障)
c.验证打印完成(加纸)
2.因果图
1)定义:因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据,其中,原因表示输入条件,结果是对输入执行的一系列计算后得到的输出。
2)作用:因果图方法最终生成的就是判定表,它适合检查软件输入条件的各种组合情况。
3)因果图中的约束:在实际问题中输入状态相互之间,输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件的约束有E,I,O,R四种约束,对于输出条件的约束只有M约束。
ØE约束(异):a和b中最多有一个可能为1,即a和b不能同时为1。
ØI 约束(或):a、b、c中至少有一个必须为1,即 a、b、 c不能同时为0。
ØO约束(唯一):a和b必须有一个且仅有一个为1。
ØR约束(要求):a是1时,b必须是1,即a为1时,b不能 为0。
ØM约束(强制):若结果a为1,则结果b强制为0。
4)因果图中的四种基本关系:
在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。
ci与ei取值0或1,0表示某状态不出现,1表示某状态出现。
Ø恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。
例如:有钱=富豪
Ø非:若c1是1,则e1为0,否则e1为1:;
5)因果图转换判定表的方法:
a.将因果图中的所有条件(因)填入判定表的条件桩中;
b.将因果图中的所有动作(果)填入判定表的动作桩中;
c.根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,在需要时优化判定表。
6)因果图的步骤:
a.把大的系统规格划分解成可以测试的规格片段;
b.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
c.画出因果图
d.把因果图转化成判定表
e.简化判定表
f.用判定表中每一列生成测试用例
7)因果图的优缺点:
优点:
a. 等价类法尽管各个输入条件可能出错的情况都考虑 到了,但是多个输入条件组合起来出错的情况却被 忽略了
b. 因果图法能够帮助我们按照一定步骤,高效的选择 测试用例,设计多个输入条件组合用例
c. 因果图分析还能为我们指出,程序规格说明描述中 存在什么问题
缺点:
a. 输入条件与输出结果的因果关系,有时难以从软件 需求规格说明书得到
b. 即使得到了这些因果关系,也会因为因果关系复杂 导致因果图非常庞大,测试用例数目及其庞大
案例:
一个处理单价为5角钱的饮料的自 动售货机。其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。