因果图与判定表法_因果图如何转换为判断表

2022-09-21 10:24:40 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1、 什么是因果图及判定表法? 因果图是用图解的方法表示输入的各种组合关系,依据因果图写出判定表,从而设计相应的测试用例。 它适合于检查程序输入条件的各种组合情况。例约束关系、组合关系。 2、 因果图之4种因果关系

(注:0表示某状态不出现,1表示某状态出现) 恒等:若c1是1,则e1也为1;否则e1为0 非: 若c1是1,则e1也为0;否则e1为1 或: 若c1或c2或c3是1,则e1为1;否则e1为0 与: 若c1和c2都是1,则e1为1;否则e1为0 3、 因果图之5种约束关系

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、 因果图法/判定表法的基本步骤 1)分析软件规格说明书中哪些是原因,哪些是结果。原因是输入或输入条件的等价类,结果是输出条件。给每个原因和结果并赋予一个标识符。 2)画出因果图。分左右2竖列,分别列出原因、结果。用一些记号表明约束关系或因果关系。 3)把因果图转换成判定表。 4)将判定表的每一列作为依据,设计测试用例。 5、 因果图法/判定表法实例讲解 某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。 1)先列出原因(即输入条件或输入条件的等价类)和结果(输出条件): 原因: 1——第一列字符是A; 2——第一列字符是B; 3——第二列字符是一数字。 结果: 21——修改文件; 22——给出信息L; 23——给出信息M。 2)画出因果图:

3)判定表法:因果图方法最终生成的就是判定表。一般可以根据因果图画出判定表,判定表里只有0,1两个数字。若输入条件有n个,则用例考虑的情况有2n种。判断表如下:

表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。得到所需测试用例(表的最下一栏给出了6种情况),这是我们所需要的数据。 4)得到测试用例,并列出具体的用例测试数据

补充知识点: 依据判定表得到的测试用例会很多条,那我们想一想,是否可以简化用例呢?如何简化呢? 简化依据:若表中输出结果存在相同,且其输入条件存在极相似关系,则可合并简化

举例,从最近大火的《人民的名义》,我们假设有这样的命题:

怎样称为一个好干部?不违背党原则下,有政绩是一个好干部、有爱心也是一个好干部;但是只要违背党的原则(贪财、贪权、贪色)就绝对不是一个好干部。 我们来分析输入条件,输出结果,并列出判定表,如下:

按照简化依据,颜色相同是可以合并的项,如下:

简化后:

得到的测试用例: 1)有政绩、有爱心、不违反党的原则;好干部 2)有政绩、无爱心、不违反党的原则;好干部 3)无政绩、有爱心、不违反党的原则;好干部 4)不管有无政绩、有无爱心、违反党的原则;不是好干部 5)无政绩、无爱心、不违反党的原则;不是好干部 这样讲是不是容易理解得多?这是我们的土豆儿日夜追剧追出来的精髓,什么叫专业的测试大佬?就是不管你在吃饭还是在煲剧,你都可以从生活中的点滴中找出测试点来~!

喜欢对你有帮助的话记得加个关注不迷路哦

个人主页有领取方式,可以领取到一些个人收集的软件测试工具、面试题、资料包,无偿的,需要的私信小编“资料或许对你有帮助!

点击链接领取

感谢各位大大的阅读 软件测试全套基础/进阶/转行资料

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170399.html原文链接:https://javaforall.cn

uml

0 人点赞