news 2026/6/15 19:33:12

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

作者头像

张小明

前端开发工程师

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/6/14 20:19:58

Agent间信任机制设计,破解跨领域协作中的安全与一致性难题

第一章:Agent间信任机制设计,破解跨领域协作中的安全与一致性难题 在分布式智能系统中,多个自治Agent需在无中心化控制的前提下实现高效协作。然而,跨领域场景下信息不对称、行为不可预测等问题加剧了安全风险与状态不一致的挑战。…

作者头像 李华
网站建设 2026/6/13 22:04:00

图形显示验证错误:新手必读指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个新手友好的教程应用,包含:1. 图形显示系统基础概念图解 2. 常见错误原因卡通式说明 3. 三步解决法教学 4. 互动式练习环节。要求使用简单的HTML/CSS…

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

1小时打造编辑分配系统原型:快马平台实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 在快马平台上快速创建一个编辑分配系统原型,要求:1) 使用自然语言描述系统需求即可生成基础代码;2) 包含编辑管理、任务管理和简单分配功能&…

作者头像 李华
网站建设 2026/6/15 11:50:35

比传统调试快10倍:自动化解决Chrome请求错误

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Chrome请求异常自动化处理工具,功能包括:1. 一键式错误捕获和分析;2. 自动测试常见解决方案(如清除缓存、禁用扩展等&#x…

作者头像 李华
网站建设 2026/6/14 14:02:05

【高可用系统必备技能】:精准调整环境Agent监测频率,提升响应速度40%

第一章:环境 Agent 的监测频率 在分布式系统与云原生架构中,环境 Agent 扮演着关键角色,负责采集主机资源使用情况、服务运行状态及安全事件等数据。监测频率的设定直接影响系统性能开销与监控实时性之间的平衡。过高频率可能导致资源争用&am…

作者头像 李华