因果图法
因果图法
什么是因果图
是一种从用自然语言书写的程序规格说明的描述中找到因(输入条件)和果(输出或程序状态的改变)的关系,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
因果图能检查出规格的错误,并最终导出为判断表。
因果图基本关系 因果关系中的四种基本关系:恒等、非、或、与
因果图分析的特点
考虑输入条件间的组合关系;
考虑输出条件对输入条件的信赖关系,即因果关系;
测试用例发现错误的效率高;
能检查出功能说明中的某些不一致或遗漏;
因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。
因果图分析
1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.
2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.
3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件
4) 把因果图转换为判定表.
5) 把判定表的每一列拿出来作为依据,设计测试用例.
某软件需求说明书:
某段文本中,第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。
如果第一列字符不正确,则给出信息L;
如果第二列字符不是数字,则给出信息M。
确定原因和结果:从大的方面看,第一列和第二列不同的字符会引起不同的结果,所以初步分析原因结果图如下:
原因 | c1 | 第一列字符正确 |
c2 | 第二列字符是数字 | |
结果 | e1 | 修改文件 |
e2 | 给出信息L | |
e3 | 给出信息M |
确定因果逻辑关系:
如果第一列和第二列都正确,则修改文件;
如果第一列不正确,给出信息L;
如果第二列不正确,给出M。 可以得出下边的因果图:
而根据需求描述,原因c1还可以细分为2个原因: 第一列字符是A(c11),第一列字符是B(c12)。 因此原因c1其实也可以看作成结果。 把它用因果图表示出来如下图:
确定约束关系:从需求描述中可知,原因c11和c12不可能同时为真,但可以同时为假, 因此满足排他性约束。这三个结果之间没有掩码标记的约束。完整的因果图如下:
根据因果图画决策表 分析每一种状态对应的结果,并根据约束关系,去掉不可能出现的状态。
本例的c11和c12满足排他性约束,所以同时都为1的状态不会出现:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
原因 | c11 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
c12 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
c2 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | |
结果 | e1 | 0 | 0 | 0 | 1 | 0 | 1 | 无此可能 | 无此可能 |
e2 | 1 | 1 | 0 | 0 | 0 | 0 | |||
e3 | 0 | 0 | 1 | 0 | 1 | 0 | |||
测试用例 | aa | a3 | Be | B3 | Aq | A4 | |||
输入结果 | L | L | M | 修改文件 | M | 修改文件 |
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友