• 这种测试用例编写方法,你怕是都没用过...


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

    因果图

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

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

    我们假设我们手机,品牌有品牌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可以交替使用。

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

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


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

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

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

    最后也为大家准备一份软件测试学习资源:

    囊括了:

    • 2022.10月最新版软件测试全套完整视频
    • 500套软件测试面试题+面试讲解视频
    • 10套典藏版 超高价值的软件测试试卷
    • 300套软件测试项目简历模板
    • 80套各类软测用例的设计模板合集

    有需要的朋友可以点击下方卡片进群免费获取!

  • 相关阅读:
    搜索——flood fill
    【机器学习】分类与预测算法的评价与优化
    075:vue+openlayers: Drag-and-Drop拖拽文件解析显示图形(代码示例)
    npx 初始化 React 项目 踩坑记录
    拖拽的使用说明
    键盘快捷键工具Keyboard Maestro mac中文版介绍
    NAS层协议栈学习笔记
    科研人如何做PPT、答辩、演讲
    GIGE 协议摘录 —— 照相机的标准特征列表(五)
    第二章:25+ Python 数据操作教程(第二十二节如何从 R 调用或运行 python)持续更新
  • 原文地址:https://blog.csdn.net/m0_53918927/article/details/127641008