测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。下面介绍测试用例的设计方法二,判定表和因果图。
判定表法
判定表是分析和表达多种输入情况下执行不同动作的工具,判定表方法主要用于处理程序输入条件的不同组合,但是要求条件的组合必须是bool类型,而且条件和预期的结果都是可以分析出来的。判定表能够有效地弥补等价类和边界值方法的不足,使得输入条件之间的组合和相互影响得到充分的测试。
使用判定表的一般思路是:
1、需求分析,分析出条件和结果之间的各种组合
2、将条件和结果分别填入判定表
3、讲条件和结果进行二进制排列
4、针对每一项组合,分析出结果,并去除无效项,是判定表得到简化。在合并判定表时,如果条件之中只有一个不同,则可以合并。如果判定表的组合不够多,建议不要进行合并,这样可以测试的充分一些。
5、每一列生成一个测试用例
以阅读指南的例子来设计一个判定表:从例子中可以看到,不同的条件组合得到不同的结果。
使用判定表方法可以充分弥补等价类边界值得不足,但是当输入条件过多时,使用判定表会产生大量测试用例。而其无效用例不易发现,更不能覆盖条件之间的先后关系。因此,在一定情况下,使用判定表还需要因果图的帮忙。
因果图
因果图用于描述系统之间的输入输出,输入输出之间的约束关系和因果关系。因果图与判定表往往结合使用,使用因果图可以得到判定表。
使用因果图的方法:
1、分析输入输出并进行标识
2、分析输入和输入、输入和输出之间的关系
3、将得到的关系使用因果图的方法表示出来
4、根据因果图得到判定表
5、依据判定表生成测试用例
这里分析一个自动售货机的因果图分析方法:
条件:有一个处理单价为5角的自动售货机,当投入5角或1元硬币时,选择橙汁或啤酒,饮料出来;若自动售货机没有零钱,则显示零钱照完,亮红灯,这时候投入的1元被退出来,饮料不送出来。如果有零钱,则出饮料并找5角钱。
分析:
1、选择橙汁和啤酒是同一类型,可以进行归类
2、选择5角和1元看似是同一类,但是他们所触发的操作是不同的,不能归类
3、橙汁和啤酒、5角和1元是相异的关系
4、分析不同的组合并得到最终结果
总结:因果图的使用和分析比较复杂,使用因果图可能会消耗很多的时间,因此正确的策略是先考虑其他的测试用例设计方法,***再使用因果如,可以尽量的减少工作的时间并提高效率。
相关链接:http://www.51cto.com/php/viewart.php?artID=261890
【编辑推荐】