因果图提供了将规则转换为确定表的系统化方法,并且可以从该图产生测试数据。 这里,原因表示输入条件,结果是对输入进行的一系列计算结果所得到的输出
因果图方法最终生成的是判定表。 适用于检查软件输入条件的各种组合
一.因果逻辑关系
因果关系主要分为三类:
第一个是因果关系(输入和输出的逻辑关系) )。
a )恒等)假设输入为a,输出为b; 若满足条件a,则输出结果b
b )非)设输入条件为a,输出为b; 如果满足条件a,则不能输出结果b
c )或)多个条件满足其中一个条件就能得到一定的结果;
d )和)为了得到某种结果,有满足多个条件的同事
第二类:原因之间的关系(输入和输入之间的制约关系) ) )。
a )异) ) Exclusive ) :多个输入中至多只有一个为真,同时不能为真,同时也可以不为真
b )或者(不同时) :多个输入条件中的至少一个为真,可以同时为真,或者同时不为真
c )唯一) Only )有多个输入条件,只有一个为真。 同时可以为真,同时也可以不为真
d )要求(Require ) :有两个输入a和b,如果a为真,则要求b为真; a是假的,不要求b
早教机构:儿童a; 父母b
孩子们在早教机构上课,要求父母陪伴;
孩子们不去早教机构上课,父母来参观也可以不来
第3类(结果之间的关系(输出和输出之间的约束关系) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
a )强制)输出a和b,如果a为真,则将b强制为假; a因为假而不强制b
二、因果图运用例1:手机欠费或停机主要不可叫
理由:
C1欠费
C2停机时间
结果:
Ef1不能被叫为主
例2:根据某需求说明,对已运行10年以上或超过50马力且维修记录不完整的机器,进行全面维修处理,对其他机器进行一般维修处理
理由:
运行C110年以上
C2功率超过50马力
C3维护记录不完整
结果:
Ef1全面维护处理
Ef1一般维护处理
Cm2 :中间节点
中间节点:
)1)在多个原因之间不是简单的andor关系的情况下,可以利用中间节点访问中间结果,更明确地展示因果关系;
)2)当多个原因叙述同一件事时,可以利用中间节点合并逻辑。
要更改例3:帐户密码,请执行以下操作: 优先输入正确的原密码; 输入两次匹配的新密码; 需要新密码
一定复杂度(8-15位; 包括大写字母; 小写字母; 数字; 其他字符)
假设:优先警告第一个密码不正确,然后警告新密码不匹配,最后警告新密码不复杂
理由:
C1元密码正确
C2新密码匹配
C3新密码很复杂
结果:
Ef1的修正成功了
例4:文件修改要求:
要修改文件,必须遵循以下规则:
的第一列字符必须是a或b; 第二列文字必须是数字;
在第一列的字符不正确的情况下,给出信息l; 在第2列字符不正确的情况下,给出信息m; 如果正确输入了两列字符,则可以修改文件
理由:
C1第一列为a
C2第一排是b
C3第二列为数字(0至9 ) )。
结果:
Ef1信息l
Ef2信息m
修改Ef3文件
根据因果图生成判定表:
例5:有经营单价5角的盒装饮料的自动售货机软件。 放入5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,就会发送相应的饮料。 投入1元硬币按下按钮,送出饮料的同时返还5角硬币。
理由:
投入C15角硬币
投入C21元硬币
按C3可乐按钮
按下C4精灵按钮
C5按“红茶”按钮
结果:
Ef1返还5角硬币
Ef2推出“可乐”饮料
Ef3推出“雪碧”饮料
Ef4推出“红茶”饮料
原因原因之间的关系:
C1和C2是e的关系,C3、C4、C5是e的关系。
结果-结果之间的关系:
Ef2、Ef3和Ef4是m的关系。
三、因果图用例设计流程将大系统规格拆分为可测试规格,碎片分析分解后分析需要测量的系统规格,哪些原因、哪些结果生成因果图,将因果图转换为判定表,简化判定表用的判定表各项进行测试
等价类法尽管考虑到优秀的未来输入条件有可能出错,但却忽略了将多个输入条件组合起来会出错的情况。 因果图法有助于按照一定的步骤,有效地选择测试用例,设计结合多种输入条件的测试用例因果图分析。 另外,还可以指出程序规格说明中存在哪些问题。
输入条件和输出结果之间的因果关系可能很难从软件要求规格书中得到。 即使得到了这些因果关系,由于因果关系很复杂,因果关系图也会变得庞大哦。 测试用例的数量极其庞大