news 2026/4/16 14:48:14

这种测试用例编写方法,你怕是从来没用过

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
这种测试用例编写方法,你怕是从来没用过

大家在测试过程中经常用的等价类划分、边界值分析、场景法等,并不能覆盖所有的需求,下面就来讲一种不经常用到但又非常重要的测试用例编写方法。

因果图

应用场景:页面上有多个控件(输入),控件(输入)之间存在不同的组合关系,不同组合之间又可以产生不同的输出结果,符合这个条件的页面可以使用因果图法。

通过应用场景我们发现,一个手机壳外形选择页面的用例就可以按照这种方法编写。

我们假设我们手机,品牌有品牌1和品牌2,品牌1对应的型号有型号1、型号2,品牌2对应的型号有型号3、型号4,我们所有的手机外形有外形1,外形2,但是外形1只能给品牌1的手机使用,外形2品牌2的手机使用。

除固定选择外,还有一些可选定制项,比如说手机挂绳,包边,标志处挖孔等等。

手机挂绳可以给所有手机外形使用,包边只能给外形2使用,下面我们先用图示的方式将需求展示的更明确一些。

首先需要找出所有的输入和所有的输出。

输入

1)品牌1

2)品牌2

3)型号1

4)型号2

5)型号3

6)型号4

7)外形1

8)外形2

9)手机挂绳

10)包边

输出

A 定制成功

B 错误提示

接下来看看输入和输出有什么组合关系,首先要先确认那些不能组合:

  • 1)和2)不能组合;

  • 3)、4)、5)、6)中的任意两个都不能组合;

  • 1和5)、6)不能组合;

  • 2)和3)、4)不能组合。

输入的组合

有一些必须组合的:

  • 1)必须和3)、4)中的其中一个组合;

  • 2)必须和5)和6)中的其中一个组合。

那么前六个输入条件共有4种可能的组合:

  • 1)、3);

  • 1)、4);

  • 2)、5);

  • 2)、6)。

再将这四个跟后面四个输入进行组合,得出如下组合:

组合1:1)、3)、7)、9)。

组合2:1)、3)、7)、10)。

组合3:1)、3)、8)、9)。

组合4:1)、3)、8)、10)。

组合5:1)、4)、7)、9)。

组合6:1)、4)、7)、10)。

组合7:1)、4)、8)、9)。

组合8:1)、4)、8)、10)。

组合9:2)、5)、7)、9)。

组合10:2)、5)、7)、10)。

组合11:2)、5)、8)、9)。

组合12:2)、5)、8)、10)。

组合13:2)、6)、7)、9)。

组合14:2)、6)、7)、10)。

组合15:2)、6)、8)、9)。

组合16:2)、6)、8)、10)。

这样通过罗列所有的输入组合,可以提高用例的覆盖率,避免遗漏。

下面我们来分析输入的组合会产生什么样的输出结果:

组合1:品牌1+型号1+外形1+手机挂绳---定制成功。

组合2:品牌1+型号1+外形1+包边---提示错误。

组合3:品牌1+型号1+外形2+手机挂绳---定制成功。

组合4:品牌1+型号1+外形2+包边---定制成功。

组合5:品牌1+型号2+外形1+手机挂绳---定制成功。

组合6:品牌1+型号2+外形1+包边---提示错误。

组合7:品牌1+型号2+外形2+手机挂绳---定制成功。

组合8:品牌1+型号2+外形2+包边---定制成功。

组合9:品牌2+型号3+外形1+手机挂绳---提示错误。

组合10:品牌2+型号3+外形1+包边---提示错误。

组合11:品牌2+型号3+外形2+手机挂绳---定制成功。

组合12:品牌2+型号3+外形2+包边---定制成功。

组合13:品牌2+型号4+外形1+手机挂绳---提示错误。

组合14:品牌2+型号4+外形1+包边---提示错误。

组合15:品牌2+型号4+外形2+手机挂绳---定制成功。

组合16:品牌2+型号4+外形2+包边---定制成功。

经过分析发现,型号1和型号2、型号3和型号4的所有可用条件都是一样的,所以我们可以简化一部分。

黄色的部分是重复的,当然我们在编写用例的使用,型号1和型号2可以交替使用,型号3和型号4可以交替使用。

通过分析过程我们发现,使用因果图法分析用例,不仅能将用例覆盖的更全面,还能去除一些重复用例。

这样我们就可以根据所有的输入及输出的逻辑编写测试用例(这里只列举部分用例,就不全部列举了)。

适用条件:比较适用控件的输入条件比较少的情况,如按键按下或者不按下,单选按钮、复选框或者取值比较少的下拉框。

这个例子非常简单,我们发现经过分析后,我们不仅可以覆盖的更完整,还可以减少冗余用例,提高测试效率。

希望这篇文章能对大家有所帮助~

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 18:24:22

28、Linux 源码编译与 Shell 脚本编写入门

Linux 源码编译与 Shell 脚本编写入门 1. 源码文件解压 当下载好 tar 文件后,需要对其进行解压操作,可使用 tar 程序来完成,示例命令如下: [me@linuxbox src]$ tar xzf diction-1.11.tar.gz [me@linuxbox src]$ ls diction-1.11 diction-1.11.tar.gz多数 GNU …

作者头像 李华
网站建设 2026/4/16 14:33:18

30、编程中的任务分解、函数与流程控制

编程中的任务分解、函数与流程控制 1. 自上而下的设计方法 在解决复杂问题时,自上而下的设计方法是一种非常有效的策略。以“停车”这个任务为例,我们可以将其进一步细分为以下步骤: 1. 寻找停车位 2. 将车驶入车位 3. 关闭发动机 4. 设置驻车制动 5. 下车 6. 锁车 …

作者头像 李华
网站建设 2026/4/15 20:24:21

打破“观看”边界:临时展馆如何才能增强观众的参与度和体验感

临时展馆的“临时性”,既是优势也是挑战——它无需像永久场馆那样追求全面性,却必须在有限时间内用独特的主题、灵活的形式与强烈的互动,在观众记忆中刻下深刻印记。 然而,许多临时展馆仍停留在“展品陈列文字说明”的传统模式&a…

作者头像 李华
网站建设 2026/4/16 12:27:19

未来已来:Agent技术如何颠覆传统物流仓储的空间管理模式?

第一章:物流仓储Agent空间利用的变革背景随着智能物流与自动化仓储系统的快速发展,传统仓储管理模式在空间利用率、调度效率和响应速度方面面临严峻挑战。人工干预主导的仓库布局已难以应对电商、零售等行业对高密度存储与快速分拣的需求。在此背景下&am…

作者头像 李华
网站建设 2026/4/16 12:24:02

1分钟原型开发:用AI快速生成Vue3 Computed代码

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速生成一个员工考勤统计组件的原型,包含以下computed:1) 根据打卡记录计算每日工作时间 2) 统计本周加班总时长 3) 计算当月迟到次数 4) 生成考勤异常报告…

作者头像 李华
网站建设 2026/4/12 18:22:28

自动驾驶Agent响应延迟超过200ms?,这5个性能瓶颈你必须排查

第一章:自动驾驶Agent的紧急响应在自动驾驶系统中,紧急响应机制是保障行车安全的核心模块。当传感器检测到突发障碍物、前方车辆急刹或行人突然闯入时,自动驾驶Agent必须在毫秒级时间内完成感知、决策与控制指令输出。响应触发条件 常见的紧急…

作者头像 李华