- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * 因果图 康玲 基于决策表的测试是最严格的功能性测试,因为决策表具有逻辑严格性。 与之相关连的方法: 因果图法、决策表格法。 缺点: 使用麻烦,冗余多。 自从20世纪60年代初以来,决策表一直被用来表示和分析复杂逻辑关系。决策表很适合描述不同条件集合下采取行动的若干组合的情况。 因果图,是一种形式语言(有严格语法限制的语言,计算机语言都是形式语 言),是将自然语言描述的规格说明转换为因果图。实质上,是一种数字逻辑电路(一个组合的逻辑网络),但没有使用标准的电子学符号,而是使用了稍微简单点 的符号。 一些程序的功能可以用判定表的形式来表示,并根据输入条件的组合情况规定相应的操作。 从程序规格说明书的描述中找出因(输入条件)和果(输出结果或程序状态的改变)的关系,通过因果图转换为判定表,最后为判定表的每一列设计一个测试用例 考虑到输入情况的各种组合以及各个输入情况之间的相互制约关系。 使用了简单的逻辑符号,以直线连接左右节点。左节点表示输入状态(或称原因),右节点表示输出状态(结果)。 c1 e1 (a)恒等 c1 e1 ~ (b)非 c2 e1 c1 c3 V (c)或 c2 e1 c1 V (d)与 图中,ci表示原因,通常位于图的左部,ei表示结果,位于图的右部。ci与ei取值0或1,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,“与”也可有任意个输入。 在实际问题当中输入状态相互之间还可能存在某些依赖关系,称为“约束” a b E 异 (a) a c I 或 b a b O 唯一 a b R 要求 a b 强制 M (b) (c) (d) (e) 对于输入条件的约束有4种: 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; 对于输出条件的约束只有M约束 M约束(强制):若结果a是1,则结果b强制为0。 分析程序规格说明中的原因及结果。 分析程序规格说明中语义的内容,找出原因与结果之间、原因与原因之间的对应关系,将其表示成连接各原因与各结果的“因果图”。 由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明约束或限制条件; 将因果图转换成决策表; 根据决策表中每一列设计测试用例 程序的规格说明要求:输入的第一个字符必须是“#”或“*”,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是“#”或“*”,则给出信息N;如果第二个字符不是数字,则给出信息M。 分析程序的规格说明,列出原因和结果; 找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。 将因果图转换成决策表; 根据3中的决策表,设计测试用例的输入数据和预期输出。 在明确了上述要求后,可以明确地将原因和结果分开。 原因:c1-第一个字符是“#” c2-第一个字符是“*” c3-第二个字符是一个数字 结果:a1-给出信息N a2-修改文件 a3-给出信息M c1 c2 c3 10 a3 a2 a1 V ~ ~ V 因果图表示 c1 c2 c3 10 a3 a2 a1 V ~ ~ V E 具有E约束的因果图表示 10-导出结果的进一步原因 规则 选项 1 2 3 4 5 6 7 8 条件 c1 c2 c3 10 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 动作 a1 a2 a3 不可能 √ √ √ √ √ √ √ √ √ 测试用例 #3 #A *6 *B A1 GT 最左边两列,原因c1和c2同时为1不可能,排除掉,根据表可设计出6个测试用例。 Test1:输入数据-#3 预期输出-修改文件 Test2:输入数据-#A 预期输出-给出信息M Test3:输入数据-*6 预期输出-修改文件 Test4:输入数据-*B 预期输出-给出信息M Test5:输入数据-A1 预期输出-给出信息N Test6:输入数据-GT 预期输出-给出信息M和N 考虑了多个输入之间的相互组合、相互制约关系; 能够帮助我们按一定步骤,高效率地选择测试
文档评论(0)