因果图用例设计案例

news2025/1/11 17:15:36

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

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

通过应用场景我们发现,一个手机壳外形选择页面的用例就可以按照这种方法编写。我们假设我们手机,品牌有品牌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 错误提示

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

l 1)和2)不能组合;

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

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

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

   再找出输入的组合:

(1)有一些必须组合的:

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

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

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

l 1)、3);

l 1)、4);

l 2)、5);

l 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可以交替使用。

通过分析过程我们发现,使用因果图法分析用例,不仅能将用例覆盖的更全面,还能去除一些重复用例。这样我们就可以根据所有的输入及输出的逻辑编写测试用例(这里只列举部分用例,就不全部列举了)。

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


以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++--反向迭代器的实现

1.反向迭代器 迭代器有两种,一种是正向的,一种是反向的,方向迭代器的主要功能就是实现数据的反向访问,通过正向迭代器的适配生成的,适配器就是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的…

Linux学习之Shell中if-else

在Shell脚本中&#xff0c;if-else使用方法如下&#xff1a; if [测试条件] then 测试条件成立执行 else条件不成立执行 ficat << CCC >> testIfElse.sh表示只有遇到CCC才结束往testIfElse.sh写入文件。<< CCC表示后续的输入作为子命令或者子Shell的输入&am…

[JavaScript游戏开发] 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示)

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 文章目录 系列文章目录前言一、本章节效果图二、介绍2.1、左边区域2.2、右边区域 三、列计划3.1、目标3.1.1、完成跟随人物二维动态地图绘制(本…

MySQL知识2

十、数据库表的6种约束 建表同时添加约束&#xff1a; 主键约束和唯一&#xff1a; 默认值&#xff1a; 检查约束&#xff1a; 未能生效&#xff0c;原因&#xff1a;版本是5.7 在8.0之后&#xff1a;支持检查约束 主键自增可以写null&#xff0c;可以写default&#xff0c;可以…

音视频开发-ffmpeg介绍-系列一

目录 一.简介 FFmpeg框架的基本组成包含: 二. FFmpeg框架梳理音视频的流程​编辑 基本概念&#xff1a; 三.ffmpeg、ffplay、ffprobe区别 4.1 ffmpeg是用于转码的应用程序 4.2 fffplay是用于播放的应用程序 4.3 ffprobe是用于查看文件格式的应用程序 4.4 ffmpeg是用于转…

LocalDateTime、OffsetDateTime、ZonedDateTime之间的关系

什么是LocalDateTime&#xff1f; ISO-8601日历系统中不带时区的日期时间。 该类不存储时区&#xff0c;所以适合日期的描述&#xff0c;比如用于生日、deadline等等。 但是如果没有偏移量/时区等附加信息&#xff0c;一个时间是不能表示时间线上的某一时刻的。 什么是Offset…

【网络编程】网络套接字udp通用服务器和客户端

1.预备知识 认识端口号 端口号(port)是传输层协议的内容&#xff1a; 端口号是一个2字节16位的整数(uint16)端口号用来标识主机上的一个进程IP地址port能够标识网络上的某一台主机和某一个进程一个端口号只能被一个进程占用 认识TCP协议 此处我们先对TCP(Transmission Con…

day34-Animated Countdown(动画倒计时)

50 天学习 50 个项目 - HTMLCSS and JavaScript day34-Animated Countdown&#xff08;动画倒计时&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&q…

自动驾驶感知系统-超声波雷达

超声波雷达&#xff0c;是通过发射并接收40kHz的超声波&#xff0c;根据时间差算出障碍物距离。其测距精度是1~3cm.常见的超声波雷达有两种&#xff1a;第一种是安装在汽车前后保险杠上的&#xff0c;用于测量汽车前后障碍物的驻车雷达或倒车雷达&#xff0c;称为超声波驻车辅助…

易班开放应用授权重定向,出现跨域的解决方案

问题描述 今天开发H5网站需要接入易班&#xff0c;经过易班授权然后重定向&#xff08;code: 302&#xff09;&#xff0c;使用axios发请求&#xff0c;但是前后端均配置跨域的情况下&#xff0c;不管怎么弄都是一直跨域 但是我们看network&#xff0c;network中对应请求的res…

nvm安装(win/linux)

win安装nvm Win安装nvm1、下载nvm2、直接安装nvm-setup.exe3、cmd运行查看安装情况 Linux安装nvm1、下载nvm安装包2、安装及配置环境变量3、查看安装情况 前端开发多个工程&#xff0c;node版本需要时不时的进行切换&#xff0c;如果重新下载安装nodejs会导致浪费很多无用的时间…

人群异常聚集检测告警算法 yolov5

人群异常聚集检测报警系统基于yolov5图像识别和数据分析技术&#xff0c;人群异常聚集检测告警算法通过在关键区域布设监控摄像头&#xff0c;实时监测人员的密集程度和行为动态,分析和判断人群密集程度是否超过预设阈值&#xff0c;一旦发现异常聚集&#xff0c;将自动发出信号…

Pytorch个人学习记录总结 03

目录 Transeforms的使用 常见的transforms Transeforms的使用 torchvision中的transeforms&#xff0c;主要是对图像进行变换&#xff08;预处理&#xff09;。from torchvision import transforms transeforms中常用的就是以下几种方法&#xff1a;&#xff08;Alt7可唤出…

FileNotFoundException:xxx(系统找不到指定的路径)

目录 前言 背景 解决方法 错误示例 前言 这次是有个两年前的项目吧&#xff0c;不知道为什么无法启动了。中间迭代了多个版本&#xff0c;现在另一个同事接手了&#xff0c;领导让看一下。因为时间间隔过长&#xff0c;问题处理比较费劲。其中有的是配置问题&#xff0c;比…

【Linux学习】超详细——进程(2)

三、进程状态 3.1 准备知识 进程阻塞&#xff1a;进程因为等待某种条件就绪&#xff0c;而导致的一种不推进的状态&#xff08;例如进程卡顿&#xff09;&#xff0c;因而阻塞一定是在等待某种资源。为什么阻塞&#xff1f;进程需要通过等待的方式&#xff0c;等具体的资源被别…

SpringCloudAlibaba微服务实战系列(二)Nacos配置中心

SpringCloudAlibaba Nacos配置中心 在java代码中或者在配置文件中写配置&#xff0c;是最不雅的&#xff0c;意味着每次修改配置都需要重新打包或者替换class文件。若放在远程的配置文件中&#xff0c;每次修改了配置后只需要重启一次服务即可。话不多说&#xff0c;直接干货拉…

java实现ffmpeg音频文件分割

项目中需要将视频会议中录入的音频文件通过阿里云语音识别为文件&#xff0c;但是阿里云语音识别对音频大小有限制&#xff0c;因此通过ffmpeg将大音频文件分割为几个短音频文件&#xff0c;并进行语音识别操作。 代码如下&#xff1a; package com.vion.utils; import java.i…

openGauss学习笔记-18 openGauss 简单数据管理-WHERE子句

文章目录 openGauss学习笔记-18 openGauss 简单数据管理-WHERE子句18.1 语法格式18.2 参数说明18.3 示例 openGauss学习笔记-18 openGauss 简单数据管理-WHERE子句 当我们需要根据指定条件从表中查询数据时&#xff0c;就可以在SELECT语句中添加WHERE子句&#xff0c;从而过滤…

Install Ansible on CentOS 8

环境准备&#xff1a; 1.至少俩台linux主机&#xff0c;一台是控制节点&#xff0c;一台是受控节点 2.控制节点和受控节点都需要安装Python36 3.控制节点需要安装ansible 4.控制节点需要获得受控节点的普通用户或root用户的权限&#xff0c;控制节点需要ssh客户端&#xff0c;…