[原创]测试用例设计之“因果图”法
因果图法简介
为什么使用“因果图”法设计测试用例?
等价类划分法并没有考虑输入情况的各种组合,也没有考虑输入情况之间的相互制约关系。这样虽然各种输入情况可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况去被忽略了,所以采用“因果图”法(Cause-effect Graphing),能帮助我们指出程序规格说明书存在差什么问题。
因果图设计方法
从用自然语言书写的程序规格说明的描述中找出因果,通过因果图转换成判定表
因果图导出测试用例步骤
第一步:分析程序规格说明的描述中,哪些是原因,哪些是结果。原在因常常是输入条件或是输入条件的等价类,结果是输出条件
第二步:分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的‘因果图’
第三步:标明约束条件
第四步:把因果图转换成判定表
第五步:为判定表中每一列表示的情况设计测试用例
(1) 因果图基本图形符号
通常在因果图中,用Ci 表示原因,Ei表示结果,各结点表示状态,可取值0(状态不出现) 或1(某状态出现)
恒等:若原因出现,则结果出现;若原因不出现,则结果不出现
非(~):若原因出现,则结果不出现;若原因不出现,则结果出现
或(V):若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现;
与(∧):若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现
(2) 因果图的约束符号
从输入(原因)考虑四种约束
E(互斥):表示两个原因不会同时成立,两个中最多有一个可能成立
I(包含):表示三个原因中至少有一个必须成立
O(惟一):表示两个原因中必须有一个,且仅有一个成立
R(要求):表示两个原因,a出现时,b也必须出现,a出现时,b不可能不出现
从输出(结果)考虑一种约束
M(屏蔽):两个结果,a为1时,b必须是0,当a为0时,b值不定