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

测一四年我在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种,但是工作中遇到的业务场景基本可以通过上述的方法来得到解决。等价类划分和边界分析方法较为简单,很多时候可以结合起来一起用。正交实验表和判定表一般用在需要将多个输入组合起来测试的情况。流程分析法顾名思义就是存在不同分支流程的时候选用。希望上述的方法能够帮助到大家。

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

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

相关文章

勘探开发人工智能技术:机器学习(3)

0 提纲 4.1 logistic回归 4.2 支持向量机(SVM) 4.3 PCA 1 logistic回归 用超平面分割正负样本, 考虑所有样本导致的损失. 1.1 线性分类器 logistic 回归是使用超平面将空间分开, 一边是正样本, 另一边是负样本. 因此, 它是一个线性分类器. 如图所示, 若干样本由两个特征描…

matplotlib 笔记 plt.grid

用于添加网格线 主要参数 visible 布尔值,True表示画网格 which表示要显示的刻度线类型,可以是 major(主刻度)或 minor(次刻度),或者同时显示(both)alpha 透明度 …

【Git】Git切换地址

如何切换git代码地址? 1、查看当前远程 url git remote -v执行命令后,可以看见当前有2个URL。 远程 URL 在一般情况下有两个,分别是 fetch 和 push。 fetch URL 是用于从远程仓库获取最新版本的数据。当您运行 git fetch 命令时&#xf…

xxx酒业有限责任公司突发环境事件应急预案WORD

导读:原文《xxx酒业有限责任公司突发环境事件应急预案word》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目 录 1 总则 1.1 编制目的 1.2 编制…

Spring Boot集成EasyPoi实现导入导出操作

文章目录 Spring Boot集成EasyPoi实现导入导出操作0 简要说明1 环境搭建1.1 项目目录1.2 依赖管理2.3 关于swagger处理2.4 关于切面处理耗时1 自定义注解2 定义切面类3 如何使用 2.5 核心导入操作2.6 核心导出操作 2 最佳实线2.1 导入操作1 实体类说明2 业务层3 效果3 控制层 2…

使用乐观锁解决超卖问题

目录 什么是超卖? 乐观锁和悲观锁的定义 悲观锁: 乐观锁: 乐观锁的实现方式 1.版本号 2.CAS法 什么是超卖? 举个例子:订单系统中,用户在执行下单操作时,可能同一时间有无数个用户同时下单&…

Qt应用开发(基础篇)——框架类 QFrame

一、前言 QFrame继承于QWidget,被QLCDNumber、QToolBox、QLabel、QListView等部件继承,是一个拥有矩形框架的基类。 QFrame可以直接创建成一个没有内容的的矩形框架,框架的样式由边框厚度(lineWidth)、框架形状(QFrame::Shape)和阴影样式(QFr…

linux自定义网络访问规则

1.更改防火墙默认区域为trusted firewall-cmd --set-default-zonetrusted 2.新建一个zone,将想要访问本机80端口的ip,如:192.168.3.99 ,添加的这个zone中,同时在这个zone中放行80端口。 firewall-cmd --permanent --ne…

Electron + Vue3 + Vite + TS 构建桌面应用

之前是使用React、Electron、TS和webpack来构建桌面应用的。虽然功能齐全,但是打包等等开发的体验不太理想,总感觉太慢了。作为一个开发者,我们总是希望,执行构建命令后,可以快速打包或者启动本地应用,且通过更少的配置,来完成开发体验。 现在的vite已经得到广泛的应用…

PHP流浪动物招领网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP流浪动物招领网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载链接 nullhttps://download.csdn.net/download/qq_41221322/88190168视频演示 …

挖洞小技巧

挖洞小技巧 1. Google语法1.1. 基础语法1.2. 操作符 2. 寻找漏洞2.1. SQL注入2.1.1. 不带公司2.1.2. 带公司2.1.3. 如何测试 2.2. 后台管理漏洞2.2.1. 查询单个网站2.2.2. 常见后台管理路径 2.3. 支付漏洞2.4. 文件上传漏洞2.5. 查找文件类型2.6. 敏感信息泄露 3. 刷分 1. Goog…

opencv37-形态学操作-开运算(先腐蚀后膨胀)cv2.morphologyEx()-参数 op 设置为“cv2.MORPH_OPEN”

腐蚀操作和膨胀操作是形态学运算的基础,将腐蚀和膨胀操作进行组合,就可以实现开运算、闭运算(关运算)、形态学梯度(MorphologicalGradient)运算、礼帽运算(顶帽运算)、黑帽运算、击中…