1、因果图设计方法
因果图法是从自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
利用因果图导出测试用例需要经过以下几个步骤:
①分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。
②分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。
③标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干标准的符号标明约束条件。
④把因果图转换成判定表。
⑤为判定表中每一列表示的情况设计测试用例。
因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数据的增加而增加。
事实上,在较为复杂的问题中,这个方法常常是十分有效的,它能有力地帮助我们确定测试用例。当然,如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果图了,而是可以直接利用判定表设计测试用例了。
通常在因果图中,用Ci表示原因,Ei表示结果,其基本符号如下图所示。各结点表示状态,可取“0”或“1”。“0”表示某状态不会出现,“1”表示某状态出现。
①恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。
②非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。
③或(∨):若几个原因中有1个出现,则结果出现;若几个原因都不出现,则结果不出现。
④与(∧):若几个原因都出现,结果才出现;若其中有1个原因不出现,则结果不出现。
为了表示原因和结果之间、结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。从输入(原因)考虑,有4种约束,例如:(a)、(b)、(c)、(d)。从输出(结果)考虑,还有一种约束,例如:(e)。如下图所示:
①E(互斥):表示a、b两个原因不会同时成立,两个中最多有一个可能成立。
②I(包含):表示a、b、c这三个原因中至少有一个必须成立。
③O(唯一):表示a、b当中必须有一个,且仅有一个成立。
④R(要求):表示当a出现时,b也必须出现。a出现时b不可能不出现。
⑤M(屏蔽):表示当a是1时,b必须是0。而当a为0时,b的值不定。
2、因果图测试用例
例如:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
分析这一段说明,我们可以列出原因和结果。
原因:①投入1元5角硬币;②投入2元硬币;③按“可乐”按钮;④按“雪碧”按钮;⑤按“红茶”按钮。
中间状态:①已投币;②已按钮。
结果:①退还5角硬币;②送出“可乐”饮料;③送出“雪碧”饮料;④送出“红茶”饮料。
根据原因和结果,我们可以设计这样一个因果图:
转换为测试用例,如下表所示,每一列可作为确定测试用例的依据。
如果有明白的麻烦给小弟指导下最红字上方的的两个图形(因果图和表格)怎么才能看明白.由于小弟是新手,所以请务必详细为好.谢谢!!!
[ 本帖最后由 xixihaha945 于 2009-6-4 20:57 编辑 ] |