技术分享 | 黑盒测试方法论—因果图

news/2023/6/8 0:18:14

因果图法是一种利用图解法分析输入与输出的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

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

因果图适用场景

等价类划分法和边界值分析法都是着重考虑输入条件,但没有考虑输入条件的组合以及制约关系。如果在测试时必须考虑输入条件的各种组合,那组合的数目可能是天文数字,所以必须考虑采用一种合适的方法对条件组合进行分析,简化。最终目的是用最少的测试用例覆盖最全面的场景。

因果图中的基本符号

因果图中的基本符号有四种,分别是恒等 (—) 、非 (~) 、与 (V) 、或(^)。

  • 恒等:原因和结果都只能取 2 个值,1 代表条件成立,0 代表条件不成立。恒等相当于原因成立,则结果出现;若原因不成立,则结果也不出现。恒等关系“—”来表示。
  • 非:原因和结果相反。若原因成立,则结果不出现;若原因不成立,则结果出现。非的关系用 “ ~ ” 表示。
  • 或:有多个原因。若几个原因中有一个成立,则结果出现;若几个原因都不成立,则结果不出现。或的关系用 “ ^ ” 来表示。
  • 与:有多个原因。只有几个原因都成立,结果才或出现;若其中一个原因不成立,则结果不出现。与的关系用 “ V ” 来表示。

因果图中的约束条件

因果图中除了 4 种基本关系之外还会有一些约束条件。从原因考虑有 4 种约束:互斥、包含、唯一、要求。从结果考虑有 1 种约束:屏蔽。

  • 互斥 E:a、b、c 只能有一个成立,但是可以都不成立。
  • 包含 I:a、b、c 中至少有一个成立。可以多选但不能不选。
  • 唯一 O:a、b、c 有且仅有一个为 1。也就是说多个原因中有且只有一个成立。
  • 要求 R:如果 a 成立,则要求 b 必须也成立,其他的不做约束。一个出现,另一个也一定出现
  • 强制屏蔽 M:对于结果的约束。当 a = 1 时,要求 b 必须为0,其他的不约束。a 不成立时,b 的值不一定。
    唯一和互斥的区别是:唯一必须选一个;互斥可以不选,如果选只能选一个,几个原因中有且只有一个成立。

因果图法基本步骤

1.找出所有的原因,原因即输入条件或输入条件的等价类。
2.找出所有的结果,结果即输出条件。
3.明确所有输入条件之间的制约关系以及组合关系,判断条件是否可以组合。
4.明确所有输出条件之间的制约关系以及组合关系,判断结果是否可以同时输出。
5.找出不同输入条件组合会产生哪些输出结果。
6.将因果图转换成判定表或决策树。
7.判定表或决策表中每一列表示的情况设计测试用例。

实例

需求解释

交通一卡通自动充值软件系统。系统只接收 50 或 100 元纸币,一次只能使用一张纸币,一次的充值金额只能为 50 或 100 元。
明确输入的条件为:
1.选择投币 50 元
2.选择投币 100 元
3.选择充值 50 元
4.选择充值 100 元
明确输出的结果为:

  • a. 完成充值、退卡
  • b. 提示充值成功
  • c. 找零
  • d. 提示错误

分析输入条件


1、不能组合的条件 * 条件 1 和 2 不能同时成立;* 条件 3 和 4 不能同时成立。
2、可以组合的条件 * 条件 1 和 3 可以同时成立;* 条件 1 和 4 可以同时成立;* 条件 2 和 3 可以同时成立;* 条件 2 和 4 可以同时成立;* 条件 1 2 3 4 可以单独出现。

分析输出条件


1、不能组合的输出结果(互斥关系) * 输入 a 和 d 不能同时出现;* 输出 b 和 d 不能同时出现。
2、可以组合的输出结果(要求) * 输出 a 和 b 一定会同时出现(要求);* 输出 a、b、c可以同时出现;* 输出 c、d可以同时出现;* 输出 d 单独存在。

分析输入和输出的对应关系

条件 1、3 组合 – 输出 a、b 组合
投入 50 ,充值 50 – 完成充值、退卡
用图表示:


由图转化为表格:

1080×642 11.1 KB


条件 1、4 组合 – 输出 c、d 组合
投 50,充值 100 – 退钱、提示错误
用图表示:


由图转化为表格:

1080×642 11.3 KB


条件 2、3 组合 – 输出 a、b、c 组合
投 100 ,充值 50 – 充值成功、退卡、找零
用图表示:


由图转化为表格:

1080×634 11.5 KB


条件 2、4 组合 – 输出 a、b 组合
投 100、充值100 – 完成充值、退卡
由图表示:


由图转化为表格:

1080×642 11.7 KB


条件 1 单独出现 – 输出 c、d 组合
只投入 50 – 充值失败提示错误、退款
由图表示:


由图转化为表格:

1080×636 11.9 KB


条件 2 单独出现 – 输出 c、d 组合
只投入 50 – 充值失败提示错误、退款
由图表示:


由图转化为表格:

1080×636 11.9 KB


条件 3 单独出现 – 输出 d
只投入 50 – 充值失败提示错误
由图表示:


由图转化为表格:

1080×638 12.1 KB


条件 4 单独出现 – 输出 d
只投入 50 – 充值失败提示错误
由图表示:


由图转化为表格:

1080×639 12 KB


最后的表格就是一个判定表,再把判定表转化为测试用例。

转化为测试用例

按照判定表,最终转化出的测试用例如下表所示:


严格的按照判定表,转化出的测试用例,很大程度上避免了在写测试用例的时候遗漏某些测试点的情况。所以大家不仅要学会,也要会用因果图法,让我们的测试工作质量有保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4564321.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

混淆电路简介(GC)

混淆电路简介混淆电路的定义混淆电路的过程混淆电路的定义 混淆电路是一种密码学协议,由姚期智教授在80年代针对安全计算所提出的概念。其效果就是:当几个通信方需要一起输入某些数据,然后通过同一个函数计算出一个结果。但是通信的各方都不希…

图灵奖得主姚期智最新论文出炉!中秋人家看月亮,AI人看论文

本文来自于AI科技大本营微信公众号(rgznai100),更多精彩内容请微信搜索AI科技大本营(rgznai100) 参与 | 周翔、reason_W 今年2月,世界著名计算机科学家姚期智放弃外国国籍成为中国公民,正式转为…

大咖 | 姚期智:崛起中的量子计算

大数据文摘授权转载自微软研究院AI头条在“二十一世纪的计算”大会上,图灵奖得主、清华大学交叉信息研究院教授兼院长姚期智做了题为“崛起中的量子计算”的主旨演讲。他从量子计算的历史和概念入手,为我们解释了量子计算机强大的原因以及目前的研究进展…

AltiumDesigner画图不求人21 | 原理图篇 | 转换十字结点 | 视频教程 | 你问我答

原理图篇 | 转换十字结点(Convert Cross-Junctions)。 视频教程 操作步骤 在勾选设置为转换十字结点(Convert Cross-Junctions)的情况下,可以对原理图中十字交叉走线的结点进行转换。如图所示,在设置为转换十字结点(Convert Cross-Junctions)的情况下…

C++复数类——运算符重载和类的传递

复数:我们把形如abi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。当虚部等于零时,这个复数可以视为实数;当z的虚部不等于零时,实部等于零时&#…

hc05与单片机连接图_单片机开发一个数据采集系统,一看就是高手

1.单片机为核心的嵌入式系统单片机体积小,重量轻,具有很强的灵活性而且价格便宜,具有逻辑判断,定时计数等多种功能,广泛应用于仪器仪表,家用电器,医用设备的智能化管理和过程控制等领域。以单片…

RTL Schematic 与 Technology Schematic的区别?

在用ISE设计FPGA电路时,对Verilog HDL语言描述的电路经过综合,得到两种不同的原理图表现形式: 由ISE的界面,可见分别为:RTL Schematic与Technology Schematic,这两者到底由什么区别呢? 在我的博…

乱码问题的原理及解决方法

一、编码进程 【01编码】——很久很久以前,为了表示二极管的通、分,我们引入的高电平、低电平,之后又引入的1、0编码进行代替 【ASCII编码】——很久以前,也就是上个世纪60年代,美国佬为了把计算机的“0101010”编码与…