因果图和判定表_因果判定法

因果图和判定表_因果判定法 上一篇文章中介绍了等价类和边界值,接下来我们就来学习一下因果图和判定表,这两种方法在软件测试中是非常重要的工具,这两个东西理论也是很绕口,特别是因果图,砖家给的方法我看起来也很困,所以我们就不要按照砖家的思路来。定义因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 特点:a考虑输入条件的相互制约及组合关系b考虑输出条件对输…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

上一篇文章中介绍了等价类和边界值,接下来我们就来学习一下因果图和判定表,这两种方法在软件测试中是非常重要的工具,这两个东西理论也是很绕口,特别是因果图,砖家给的方法我看起来也很困,所以我们就不要按照砖家的思路来。

  1. 定义因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
  2. 特点:a考虑输入条件的相互制约及组合关系b考虑输出条件对输入条件的依赖关系
  3. 因果图法产生的背景:

a等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

b如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

  1. 因果图的核心

因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。

因果图的“因”——输入条件

因果图的“果”——输出结果

因果图法要注意考虑:

    所有输入/输出条件的相互制约关系以及组合关系

    输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”

  1. 因果图中的基本符号:通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。
  2. 四种关系:

因果图和判定表_因果判定法

因果图和判定表_因果判定法

因果图和判定表_因果判定法

  1. 因果图法基本步骤:
  •  找出所有的原因,原因即输入条件或输入条件的等价类。
  •  找出所有的结果,结果即输出条件。
  • 明确所有输入条件之间的制约关系以及组合关系。
  • 明确所有输出条件之间的制约关系以及组合关系。
  • 找出什么样的输入条件组合会产生哪种输出结果
  • 把因果图转换成判定表/决策表
  • 为判定表/决策表中的每一列表示的情况设计测试用例

例题:交通一卡通自动充值软件系统需求

要求:

    • 系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元。
    • 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
    • 若输入50元纸币,并选择充值100元,提示错误,并退回50元;
    • 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
    • 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
    • 若输入纸币后在规定时间内不选择充值按钮,找零,并提示错误;
    • 若选择充值按钮后不输入纸币,提示错误

 

因果图和判定表_因果判定法

步骤:

1、找到所有输入条件编号

2、找到所有输出条件编号

3、找出所有输入、输出的制约关系

因果图和判定表_因果判定法

接下来我们就可以绘制出一张判定表:

因果图和判定表_因果判定法

我们再来做一道例题加深印象:

  • 怎样称为一个好学生?遵纪守法的前提下,学习成绩好是一个好学生、品德高尚也是一个好学生;(只要违法乱纪就绝对不是一个好学生;成绩和品德有一项,再加遵纪守法也是好学生)
  • 守法、学习成绩、品德    =è 好学生 坏学生

因果图和判定表_因果判定法

总结:

  1. 我们利用因果图中的因果关系可以做出一张判定表
  2. 判定表实际上也是一个测试用例
  3. 判定表中有条件桩和动作桩
  4. 条件桩中有条件项(即例题二中的:守法、学习成绩、品德),动作桩中有动作项(好学生、坏学生)

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一文详解蒙特卡洛(Monte Carlo)法及其应用

    一文详解蒙特卡洛(Monte Carlo)法及其应用我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~概述…

    2022年5月23日
    49
  • 分布式、多线程、高并发都不懂,拿什么去跳槽

    分布式、多线程、高并发都不懂,拿什么去跳槽当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确…

    2022年5月30日
    29
  • java定时器的实现_java定时器实现总结

    java定时器的实现_java定时器实现总结前言 Java 定时器目前主要有 3 种实现方式 JDK 组件 SpringTask Quartz 框架 1 JDK 组件 1 java util TimerTaskMyT java publicclassM Overridepubl System out println MyTimerTask

    2025年9月13日
    2
  • 信息搜集 – 二层发现 arping[通俗易懂]

    信息搜集 – 二层发现 arping[通俗易懂]0x00:简介在被动信息搜集工作完成后,需要在进一步的对目标进行主动信息搜集,这一阶段主要搜索的信息包括目标主机是否存活,上面开放了哪些端口,有哪些服务,服务系统是什么,开发服务的版本以及上面支撑系统运行的一些中间件或者其他软件的版本(后续可根据版本号查看是否有公开的漏洞问题),在目标主机发现的过程中,不仅要发现目标是否存活,还要发现其整个网段下的其他设备,同时,这些其他设备也应该像目标一样搜…

    2022年5月30日
    39
  • netstat查看端口状态

    netstat查看端口状态netstat(networkstatus网络状态)命令各个参数说明如下:  -t:指明显示TCP端口,t是TCP的首字母。  -u:指明显示UDP端口,u是UDP的首字母  -l:仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序),l是listening的首字母。  -p:显示进程标识符和程序名称,每一个套接字/端…

    2022年7月22日
    16
  • Java实现 蓝桥杯 算法提高 三进制数位和

    Java实现 蓝桥杯 算法提高 三进制数位和算法提高三进制数位和时间限制:1.0s内存限制:256.0MB提交此题问题描述  给定L和R,你需要对于每一个6位三进制数(允许前导零),计算其每一个数位上的数字和,设其在十进制下为S。一个三进制数被判断为合法,当且仅当S为质数,或者S属于区间[L,R]。你的任务是给出合法三进制数的个数。输入格式  一行两个非负整数L,R。输出格式  一行一个非负整数表示答案。样例输…

    2022年6月16日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号