设计方法编写测试用例---思路分析

测一四年我在YX公司带测试团队,一个用例评审的会议上,一不小心超常发挥,结果卡在了一个用例设计方法上,印象非常深刻,当时的业务场景是支付方式的选择和优惠方案。

在后来的工作中,也曾几次遇到需要选择合理的设计方法来写用例,不过每次在网上都是搜索了半天,也找不到令人满意的答案。很多简单的问题被复杂化,然后给出的解题思路更是令人百思不得其解。

网络资源下,任何一个问题都不缺答案,更多的时候缺的是个让人一目了然的答案。

测试前准备

作为一个测试人员,软件测试的流程首先是要非常熟悉的,何时何地都能脱口而出,避免一切翻车的可能。需要注意的是流程没有唯一答案,具体由项目决定。所以给出的只是一个还算通用的参考流程。

总结一下:在测试流程中,有6个部分,其中3个部分涉及到了用例,可见写好用例的重要性。

所以,结合这些年吃过的亏,我来给大家缕缕,如何快速的get到测试用例的设计方法。

5种常见的测试用例设计方法

一、等价类划分

1)概念

某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不太可能发现错误。

关于等价类划分的两个重要概念:

有效等价类:有效等价类是程序规格说明有意义,合理的输入数据。

比如用正确的用户名和密码来登录系统就是有效等价类。

无效等价类:无效等价类是程序规格说明无意义,不合理的输入数据。

比如用不存在的用户名和密码来登录系统就是无效的等价类。

2)等价类法设计测试用例的步骤

为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号

设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使得有效等价类均被测试用例所覆盖设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖。

假设上面的文字你都没有看懂,那么做个题目就懂啦。

3)案例来了

程序规定:输入三个正整数作为三边的边长构成三角形。请用等价类方法设计测试用例分别判断输入3个整数时的三角形为一般三角形、等腰三角形、等边三角形时情况:

提示:

需求提取:

1、三条边需求:整数/3个数/非零数/正数

2、一般三角形的要求:二边之和大于第三边

3、等腰三角形:二二边相等且满足二边之和大于第三边

4、等边三角形:三条边相等

答案解析:符合的需求条件的即是有效等价类,比如,等腰三角形,那么要求至少有两条边相等,所有有效等价类就包括a=bb=ca=c,那么不符合条件的就是无效等价类包括a!=bb!=ca!=c

二、边界值分析

1)概念

边界值分析方法的理论基础是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

2)边界值分析法设计用例的步骤

分析输入参数的类型:从测试规格中分析得到输入参数类型

等价类划分(可选):对于输入等价类划分方法进行等价类的划分

确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点)

相关性分析(可选):如果存在多个输入域,则需要运用因果图、判定表方法这些输入域边界值的组合情况进行进一步分析

形成测试项:选择这些上点、离点与内点或者这些点的组合形成测试项

3)案例来了

假设存在以下的测试场景,某个网站的登录页面:

1、用户名:1—20个字符,包括1和20,其他不考虑

2、密码:6个数字,其他不考虑

现要求用边界值分析法测试用户名和密码这两个输入框。

边界值分析方法如下:

答案解析:密码这个字段的范围是闭区间【1-20】,用边界值设计用例,那么去找这两个数的左邻右舍+自己,1则是0和1和2,20则是19,20,21。

三、判定表

1)概念

判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

2)判定表法设计用例的步骤

列出所有的条件桩和动作桩

填入条件桩、条件项

填入动作桩、动作项

化简,合并相似规则

将每条规则转化为用例

3)案例来了

假设有以下逻辑:

运用判定表设计用例。

答案解析:判定表的解题思路就是先列出所有条件,然后列出每个条件的取值,最后如上图,一列就是一条用例。

四、正交试验法

1)概念

正交试验设计(Orthogonalexperimentaldesign)是研究多因子多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点。

关于正交试验表的两个重要概念:

1、所有参与试验、影响试验结果的条件称为因子。

2、影响试验因子的取值或输入叫做因子的水平。

如何选择正交表:

1、考虑因子的个数

2、考虑水平的个数

3、考虑正交表的行数

4、取行数最少的一个

2)案例来了

有如下用户登录页面,三个登录条件:用户名、密码、验证码,考虑填写或不填写,用正交表设计测试用例。

分析因子数,以及因子水平值:

3因子2状态

经过组合合并之后的对应用例

补充:

答案解析:正交试验法主要在于选取因子数和水平值,将两者结果列出再合并,工作中用的不多,但是合适的业务逻辑下可以选择。

五、流程分析法

1)概念

流程分析法是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。根据流程的顺序依次进行组合,使得流程的各个分支都能走到。

2)流程分析法设计用例步骤

1、画出业务流程图

2、设置功能路径优先级

3、确定测试路径

4、选取测试数据

5、构造测试用例

3)案例来了

案例:安装QQ,安装系统之家版QQ。

对应的测试用例

答案解析:看起来非常复杂的流程图和用例,设计的核心其实就两个方向,一个是正常流程,即安装安装向导一直点击【下一步】直到完成。另一个方向则是每个判断条件选择【否】的场景,那么这样的话,就会产生很多条其他分支的用例。

结尾篇

测试用例设计方法不止上面提到的5种,但是工作中遇到的业务场景基本可以通过上述的方法来得到解决。等价类划分和边界分析方法较为简单,很多时候可以结合起来一起用。正交实验表和判定表一般用在需要将多个输入组合起来测试的情况。流程分析法顾名思义就是存在不同分支流程的时候选用。希望上述的方法能够帮助到大家。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

Docker 安装

Docker 官网:Docker: Accelerated Container Application Development Docker Hub官网:https://hub.docker.com/ 前提说明 CentOS Docker 安装 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上&…

软件定制开发具有以下特点|APP搭建|小程序

软件定制开发具有以下特点|APP定制|小程序 一、快速响应用户需求 软件定制开发的优势在于,它可以快速响应用户的需求,因为它是在现有软件的基础上进行功能定制、界面定制、服务定制等改造,而不是从零开始进行重新设计与开发,所以…

vscode快捷键大全中英文

vscode快捷键大全中英文 源文件下载链接

卷运维不如卷网络安全

最近发现很多从事运维的选择了辞职,重新规划自己的职业发展方向。运维工程师这个岗位在IT行业里面确实是处于最底层的,不管什么环节出现问题,基本都是运维背锅。背锅也就罢了,薪资水平也比不上别的岗位。 一般运维的薪资水平大多数…

根据商品ID获得淘宝商品详情, 获得淘宝商品详情高级版,获得淘宝商品评论, 获得淘宝商品快递费用 ,获得淘口令真实,批量获得淘宝商品上下架时间)

参数说明 通用参数说明 参数不要乱传,否则不管成功失败都会扣费url说明 https://api-gw.…….cn/平台/API类型/ 平台:淘宝,京东等, API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_…

Google Sign In error 12500

接入Google登录遇到12500报错,网上查到的原因是后台配置包的签名哈希值不正确,但是我们的应用并没有使用firebase管理,尝试多次之后终于找到了解决方法:在开发者后台应用管理界面,创建一个新的凭据【类型为Andorid】&a…

外国电影字幕翻译,怎么把英文字幕翻译成中文字幕?

我们知道,在国内外文化交流中,影视字幕翻译扮演着重要的角色,不仅让观众领略到异国风情,更能达到文化传播的功能。那么,针对外国电影字幕翻译,怎么把英文字幕翻译成中文字幕呢,有什么好的技巧呢…

特斯拉Dojo超算:AI训练平台的自动驾驶与通用人工智能之关键

特斯拉公开Dojo超算架构细节,AI训练算力平台成为其自动驾驶与通用人工智能布局的关键一环 在近日举行的Hot Chips 34会议上,特斯拉披露了其自主研发的AI超算Dojo的详细信息。Dojo是一个可定制的超级计算机,从芯片到系统全部由特斯拉自主设计…

RT Preempt linux学习笔记

RT Preempt linux学习笔记 一、实时操作系统(Realtime Operating System) 1. 什么是实时操作系统 A real-time system is a time-bound system which has well-defined, fixed time constraints. Processing must be done within the defined constra…

详解Nacos和Eureka的区别

文章目录 Eureka是什么Nacos是什么Nacos的实现原理 Nacos和Eureka的区别CAP理论连接方式服务异常剔除操作实例方式自我保护机制 Eureka是什么 Eureka 是Spring Cloud 微服务框架默认的也是推荐的服务注册中心, 由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用…

Linux安装kafka-manager

相关链接https://github.com/yahoo/kafka-manager/releases kafka-manager-2.0.0.2下载地址 百度云链接:https://pan.baidu.com/s/1XinGcwpXU9YBF46qkrKS_A 提取码:tzvg 一、安装部署 1.把kafka-manager-2.0.0.2.zip拷贝到目录 /opt/app/elk 2.解压…

ctf web基础php

1.preg_match函数绕过 1.数组绕过 <?php $pass$_GET[zx]; if(!preg_match("/admin/",$zx)false){die(hacker); } echo flag; ?> ?zx[]admin 2.换行符绕过 <?php $pass$_GET[zx]; if(!preg_match("/^.(admin).$/",$zx)false){die(hacker)…

自定义权限指令与防止连点指令

1.权限指令 // 注册一个全局自定义权限指令 v-permission Vue.directive(permission, {inserted: function(el, binding, vnode) {const {value} binding; // 指令传的值// user:edit:phone,sysData:sampleconst permissions [user:edit:address, sysData:entrust, sysData:…

vscode编写前端提升效率的三个必不可缺的插件以及使用方法

直接官网下载这个软件就行&#xff0c;没什么操作的。 这里面有新建文件夹&#xff0c;你可以自己去建一个文件夹 然后点击那个小号&#xff0c;就可以新建一个文件&#xff0c;比如说demo01.html,⚠️后面的html是你需要自己手动输入的 第一个插件&#xff0c;就是这个她可以让…

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念 卡西莫多 合肥长丰岗集里 肥鸭从此别泥塘 先平场地设围栏 进而工地筑基忙 光阴似箭指日争 源流汇智山水长 国器西北扩新地 家校又添新区园 重器托举有群力 大步穿梭两地间 科教兴邦大国策 技术盈身坦荡行…

arcgis 面要素相交

假设有绿色面图层和紫色面图层&#xff0c;绿色图层有两个区域aa和bb&#xff0c;现在想得到紫色图层分别落在aa和bb上的部分&#xff0c;并附上属性值。 要用到相交功能。 ArcToolbox - Analysis Tools - Overlay - Intersect 输入&#xff1a;把涉及到的两个图层都输入进去…

【前端知识】Three 学习日志(九)—— 阵列立方体和相机适配体验

Three 学习日志&#xff08;九&#xff09;—— 阵列立方体和相机适配体验 一、双层for循环创建阵列模型 //创建一个长方体几何对象Geometry const geometry new THREE.BoxGeometry(100, 100, 100); //材质对象Material const material new THREE.MeshLambertMaterial({col…

STM32f103入门(12)USART串口信息发送+接收

USART 介绍串口发送使用工具初始化发送数据接收数据 介绍 电平标准是数据1和数据0的表达方式&#xff0c;是传输线缆中人为规定的电压与数据的对应关系&#xff0c;串口常用的电平标准有如下三种&#xff1a; TTL电平&#xff1a;3.3V或5V表示1&#xff0c;0V表示0 RS232电平&…

AI数字人虚拟主播,跟传统主播相比有哪些优势,究竟谁更胜一筹?

在今年&#xff0c;AI人工智能技术得到了快速发展&#xff0c;AI数字人开始大面积进入我们的生活&#xff0c;我们经常可以在各大直播间刷到AI数字人虚拟主播。 这些主播光从表面上来看&#xff0c;完全跟真人一模一样&#xff0c;一样的容貌、一样的身形、一样的声音&#xf…

133. 克隆图

133. 克隆图 题目-中等难度示例1. bfs 题目-中等难度 给你无向 连通 图中一个节点的引用&#xff0c;请你返回该图的 深拷贝&#xff08;克隆&#xff09;。 图中的每个节点都包含它的值 val&#xff08;int&#xff09; 和其邻居的列表&#xff08;list[Node]&#xff09;。…