软件测试-因果图与判定表「建议收藏」

软件测试-因果图与判定表「建议收藏」因果图简介等价类划分法和边界值法都是着重考虑到了输入条件,但是没有考虑到输入条件的组合与输入条件的相互制约关系。这样有可能忽视了很多错误如果测试时考虑到了各种组合,测试所有组合将是一个天文数字,因此需要考虑采用一种适用与多种条件组合相应产生多种动作的形式来进行测试用例的设计,这就需要因果图(逻辑模型)因果图思想一些程序的功能可以用判定表的形式来表示,根据输入条件的组合情况来规定相应的操作…

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

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

因果图简介

等价类划分法和边界值法都是着重考虑到了输入条件,但是没有考虑到输入条件的组合与输入条件的相互制约关系。这样有可能忽视了很多错误
如果测试时考虑到了各种组合,测试所有组合将是一个天文数字,因此需要考虑采用一种适用与多种条件组合相应产生多种动作的形式来进行测试用例的设计,这就需要因果图(逻辑模型)

因果图思想

一些程序的功能可以用判定表的形式来表示,根据输入条件的组合情况来规定相应的操作

因果图设计测试用例的步骤

1 根据程序规格说明书,分析因和果,画出因果图
2 将得到的因果图转换为判定表
3 为判定表的每一列表示的情况设计一个测试用例

因果图的常用符号

与计算机中的与或非相识:
在这里插入图片描述
图片来源网络!

对于输入条件的约束有以下四类:

E约束(Exclusive,异或):ab不能同时为1,可以同时为0;
I约束(Inclusive,或):abc至少一个为1,不能同时为0;
O约束(Only,唯一):ab有且只有一个为1;
R约束(Require,要求):a是1时,b必须是1;

对输出条件只有一种约束:

M约束(Mask,强制):若a是1,b必须是0;

举个栗子

以下是网上找到很常见的例子
饮料售货机:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。

分析输入输出
输入:

编号 输入
c1 投入1.5硬币
c2 投入2硬币
c3 按下“可乐” 按钮
c4 按下“雪碧” 按钮
c5 按下“红茶” 按钮

输出:

编号 输出
EF1 退换0.5
EF2 送出可乐
EF3 送出雪碧
EF4 送出红茶

分析输入之间的关系

1)C1与C2为异或关系

2)C3、C4、C5因投入硬币最多为2元 所以分析为异或关系

3)C1(C2)与C3(C4、C5)为且的关系

4)EF2、EF3、EF4为异或关系

5)EF1与EF2(3、4)没关系

分析什么原因导致结果

1)EF1:C2与C3(4、5)导致EF1

2)EF2(3、4):C1(2)与C3(4、5)导致EF2(3,4)
因果图
在这里插入图片描述
图片来自网络
写出判定表
在这里插入图片描述
图片还是来自网络

最后根据判定表设计测试用例

判定表介绍

什么叫判定表法?
就是指把所有的输入条件、所有可能采取的动作按表格列出来,每一种条件和动作的组合构成一条规则,也即一条用例。

规则
条件桩(列出所有的输入条件,顺序不重要) 条件项(列出各个条件所有可能的取值)
动作桩(列出问题规定的所有可能采取的动作,顺序不重要) 动作项(列出所有可能采取的动作)

这里条件桩和动作桩组成表格的行,条件项和动作项组成表格的列,这样组合成的表格即是依据判定表法得出的一张原始用例集合。

判定表编写步骤
1 确定规则的个数
2 列出所有的条件桩和动作桩
3 填入条件项
4 填入动作项,得到初始判定表
5 简化 判定表,合并相似规则 (相同动作)

下面这个栗子来源百度文库:
在这里插入图片描述
简化
在这里插入图片描述
很直观的栗子

注:因果图只是设计判定表的工具,不一定要费时间设计因果图。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170410.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • raid5什么意思?怎样做raid5?raid5 几块硬盘?

    raid5什么意思?怎样做raid5?raid5 几块硬盘?

    2021年11月15日
  • java字符串数组初始化和赋值[通俗易懂]

    java字符串数组初始化和赋值[通俗易懂]//一维数组String[]str=newString[5];//创建一个长度为5的String(字符串)型的一维数组String[]str=newString[]{“”,””,””,””,””};String[]str={“”,””,””,””,””};String数组初始化区别      首先应该明白java数组里面存的是对象的引用,所以必须初

  • asp中的session使用方法详解

    asp中的session使用方法详解ASP中: SESSION必须倚赖COOKIE才可用,SESSION是存储在服务器端的,而COOKIE是存储在客户端的,相对而言,SESSION的安全性和可靠程度都比COOKIE高 ASP.NET中 SESSION可以不依赖COOKIE而存在!!! 也就是说,从微软的方面来说,开始让SESSION摆脱COOKIE的束缚了!!Session数据是存储在服务器上的,C

  • 使用vue-cli创建项目_vuecli3项目打包并运行

    使用vue-cli创建项目_vuecli3项目打包并运行vue-cli创建项目上一篇我们安装了vue-cli,接下来我们就使用该脚手架进行创建项目1.进入一个目录,创建项目创建项目命令如下:vuecreate<ProjectName&g

  • Python 数据可视化,常用看这一篇就够了

    Python 数据可视化,常用看这一篇就够了文章目录前言可视化视图分为4类,散点图折线图直方图条形图箱线图饼图热力图蜘蛛图二元变量分布成对关系总结前言如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。可视化视图分为4类,比较:比较数据间各类别的关系,或者是它们随着时间的变化趋势,比如折线图;联系:查看两个或两个以上变量之间的关系,比如散点图;构成:每个部分占整体的百分比,或者是随着时间的百

  • 在pycharm中写代码_pycharm运行部分代码

    在pycharm中写代码_pycharm运行部分代码在PyCharm中,你可以在「项目」中执行任意操作。因此,首先你需要创建一个项目。安装和打开PyCharm后,你会看到欢迎页面。点击「CreateNewProject」,出现「NewProject」弹窗:指定项目位置,打开ProjectInterpreter列表,选择创建新的项目解释器或者使用已有的解释器。选择「Newenvironmentusing」,打开其右方的下拉列表,选择Virtualenv、Pipenv或Conda。这些工具可以为不同项目单独创建P.

发表回复

您的电子邮箱地址不会被公开。

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