测试用例设计方法六脉神剑——第一剑:入门试招,等价边界初探

news/2025/1/23 2:11:28/文章来源:https://www.cnblogs.com/datacenter/p/18237573

1 背景及问题

G.J.Myers在《软件测试技巧》中提出:测试是为了寻找错误而运行程序的过程,一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试, 一个成功的测试是揭示了迄今为止尚未发现的错误的测试。

 

对于新手来说,日常测试用例设计时,很少用到系统的方法论,大多是根据产品需求文档或自己的主观判断直接进行测试用例的编写,经常会造成漏测等严重问题。

所以,使用方法论支撑测试用例设计的过程,使其更加合理化、规范化,是一件至关重要的事情。

但测试用例设计方法种类繁多,适用场景也各不相同,针对具体需求层面进行测试用例编写时,很难选取合适的方法来进行设计。

2 目标及意义

质量管理领域权威人物J.M.Juran将质量定义为“决定产品性能”和‘“满意程度’的特征”, 而测试注重于产品的满意度。

测试用例设计的过程是将产品需求转化为一种可操作性的步骤,在整个产品生命周期中发挥着至关重要的作用,基于方法论的规范化用例设计,能帮助测试人员拓展测试范围,完善测试覆盖面,降低漏测率,提升产品满意度。

本系列文章对经典的测试用例设计方法逐个进行剖析,并深入到日常工作的实际需求中,结合具体场景进行实战演练,并分别对各类方法的适用场景进行归纳梳理,形成可复用系统模板,帮助大家快速熟悉常用测试用例设计方法,提升测试人员专业度及工作效率,从而提升交付质量。

 

3 初探

说到测试用例设计方法,大家最容易想到的肯定是等价类和边界值法,所以,首先,我们将对这两种测试用例设计方法进行介绍。

3.1 等价类划分法

3.1.1 概念及原理

1.定义

  • 等价类:某个输入域的子集合

  • 等价类划分:有效等价类(合理的、有意义的输入集合)

  • 无效等价类(不合理的 or 无意义的输入集合)

2. 基本思想

设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

3.1.2 方法步骤

  1. 根据需求,大体上可以先划分为有效和无效两种

  2. 然后再细化相应的等价类(从组合情况进行细化)

  3. 建立等价类表

  4. 生成测试用例

3.1.3 举个栗子

场景:一个输入框的输入规则为1~12位字母和数字组合

根据等价类划分法,具体可建立等价类表如下(把输入拆分成长度和符号组合两种),即可得到用例。

划分 有效等价类 无效等价类
长度 [1,12] 0,(12,+∞)

3.2 边界值分析法

3.2.1 概念及原理

1.定义

是等价类划分的一个补充方法,将等价类划分的边界作为用例设计(在有效和无效等价类的边界取值中,会存在值重复的情况,可按有效无效进行取舍)。

2. 基本思想

大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,所以为了保证测试质量,就需要重点测试边界,就有了边界值这样的测试方法。

3. 等价类和边界值的关系

  • 边界值分析法是作为对等价类划分法的补充,边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

  • 边界值数据本质上是属于某个等价类的范围,测试时有时是一种冗余(正好等于,刚刚大于或刚刚小于边界的值),但是为了更好的测试质量,边界值必须要单独进行测试,适当必要的冗余是可以接受的。

4. 使用方法

那我们怎么去找边界值呢?一般会关注以下几个点:

  • 上点:区间的端点值

  • 内点:上点之间任意一点

  • 离点:若是开区间的离点,就是开区间中上点内侧紧邻的点;若是闭区间的离点,就是闭区间中上点外侧紧邻的点。

3.2.2 举个栗子

场景:一个输入框的输入规则为1~12位字母和数字组合

具体可建立等价类表如下(把输入拆分成长度和符号组合两种)

根据边界值法,按照闭区间\[1, 12\]确定上点(1,12)、内点(2)、离点(0,13),建立等价类和边界值表如下(把输入拆分成长度和符号组合两种),即可得到用例。

 3.3 测试设计——“等价类+边界值”

 

3.3.1 举个栗子

场景:手机号兼容座机号的格式校验

  • 有横杠:XXX(3位或4位)-XXXXXXXX(7或8位):3+7或者3+8或者4+7或者4+8

  • 有横杠有分机号:XXX(3位或4位)-XXXXXXXX(7或8位)-XXX(1-5位)

  • 无横杠:XXX(3位或4位)XXXXXXXX(7或8位) 11位-17位

  • 取消第一位必须为”1“,且取消第二位必须为“除0,1,2”限制。

设计步骤:

  1. 等价类划分:以第一条为例-有横杠:XXX(3位或4位)-XXXXXXXX(7或8位)

    根据等价类划分法的步骤,首先进行拆分第一部分和第二部分,获得第一部分的有效等价类\[3, 4\]和无效等价类(len>4 & 0<len<3);获得第二部分的有效等价类\[7,8\]和无效等价类(len>8 & 0<len<7)。以此类推,获取所有的有效和无效等价类。

  2. 边界值分析:根据区间开闭性,定位上点、内点、离点。

    如:有效等价类\[3, 4\]的上点为3和4,无效等价类(len>4 & 0<len<3)的离点为5和2,内点无。

  3. 数据处理:按照步骤1和2及数据的组合情况,列出所有的情况 
  4. 整理最终用例:根据步骤3得到的数据,按照要求设计测试数据及相应的预期结果,得到最终测试用例。

4 总结

方法 等价类划分法 边界值分析法
核心 分类”及代表值 边界值和边界两边的邻值
优点 通过把输入数据和输出数据进行分类,选用分类中的代表值,在保证了测试老盖的情况下大大减少了测试用例的数量,使测试工作变得简单高效 大量的程序错误发生在输入的边界上,考虑了边界值的测试用例能更高效发现程序中的错误和缺陷
缺点 输入与输入之间的关系考虑少,可能产生一些逻辑错误。还需要其他用例设计方法来补充测试 只能作为一个对其他设计方法的补充;这种方法表面上听起来简单但有的边界值非常微妙,不容易确定下来;只适用于多个变量相互独立又都代表实际物理量的情况,对变量之间的依赖关系则考虑不到。
适用场景 有数据输入 (编辑框)的地方,可以使用等价类划分法。例如: 用户登录、注册、新建、查询 有数据输入且存在取值边界或长度边界时,边界值法往往跟等价类划分法一起使用。

等价类划分和边界值分析法只考虑了单个的输入条件,在输入条件有各种组合、输入条件之间的相互制约关系的场景中很难发挥有效作用,这个时候就需要因果图与判定表法来帮助我们设计测试用例了,让我们一起来看看吧~

 

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

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

相关文章

原生html+js实现两两元素配对,用线条连接两个元素

效果如下:画线部分借鉴了“https://blogweb.cn/article/1403842582411”此链接文章作者的代码,感谢! 直接放出代码:点击查看代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>配对</title…

代码随想录算法训练营第三十天 | 51.N 皇后

51.N 皇后 题目链接 文章讲解 视频讲解递归三部曲递归函数参数 需要传入当前chessBoard和棋盘大小n,以及当前要放置皇后的行数rowvoid backtracking(vector<string>& chessBoard, int n, int row);递归终止条件 当最后一个皇后放置好后结束if(row == n) {result.pus…

使用Verdaccio创建一个本地私有库,并应用

安装verdaccio npm install -g verdaccio 直接verdaccio启动 可以先右上角登录然后先使用 npm create vite@latest 然后创建属于自己的一个vue3项目 vite-project(随便起了个名) npm i 一下 npm run dev 跑起来看看 然后创建下列文件夹style/indsx/scss .u-t…

【医疗器械产品分类规则了解】

分类目录由国家食品药品监督管理部门依据医疗器械分类规则制定: 医疗器械按照风险程度由低到高,管理类别依次分为第一类、第二类和第三类。医疗器械风险程度,应当根据医疗器械的预期目的,通过结构特征、使用形式、使用状态、是否接触人体等因素综合判定。 第一类医疗器械是…

VS下QT使用QCustomplot报错QPainter::HighQualityAntialiasing: Use Antialiasing instead

@Time:2024-06-07 @Error:VS+QT+QCustomplot 编译时报错 ERROR 4995 QPainter::HighQualityAntialiasing: Use Antialiasing instead @原因:使用标记有 deprecated 的函数。参见:/sdl(启用附加安全检查) | Microsoft Learn @解决办法:关闭编译报错或编译警告;参见:编…

[Qt开发]当我们在开发兼容高分辨率和高缩放比、高DPI屏幕的软件时,我们在谈论什么。

前言 最近在开发有关高分辨率屏幕的软件,还是做了不少尝试的,当然我们也去网上查了不少资料,但是网上的资料也很零碎,说不明白,这样的话我就做个简单的总结,希望看到这的你可以一次解决你有关不同分辨率下的所有问题。 分辨率?DPI? 首先我们搞清楚我们现在到底面对的是…

Maui+blazor中使用https时信任所有证书

Maui中的Android使用https时信任所有证书 前言 最近使用Maui+blazor写了一个Android app,需要调用webapi接口,同时需要用websock与服务器通信,在使用http和https中遇到一些问题 http Android默认禁止http,想要使用http需要在Platforms\Android目录下找到AndroidManifest.xml…

文件格式转换器哪个工具更好用?

文件格式转换器哪个好用?相信很多小伙伴在处理PDF文件时会遇到各种各样的问题,不晓得的选择哪款文件格式转换器!这个时候我们该如何解决呢?以下是文件格式转换器推荐,一起来看看吧。 一、Adobe Acrobat 推荐指数★★★☆☆ Adobe Acrobat是一款非常成熟的在线PDF转换软件,…

yarn或者npm安装依赖报错401 Unauthorized

1. 报错2.原因 在npm顶层的npmrc中指定了某仓库地址,触发了需要验证(可以通过直接打开401的地址看浏览器是否能直接下载)

pr的工作原理

Premiere Pro了解pr面板菜单栏:里面包括文件,编辑,剪辑,序列,标记,窗口,帮助等,在这些菜单里还有子菜单。效果面板:双击素材,可以在效果面板里进行编辑你想要的效果。节目面板:在时间轴里编辑时,要是查看效果在节目面板里进行查看。项目面板:导入和新建的素材都可…

ARM技术 —— 条件执行

文档: DDI0487J_a_a-profile_architecture_reference_manual.pdf本文来自博客园,作者:摩斯电码,未经同意,禁止转载

pr工作原理文档

Adobe Premiere Pro的工作原理思维导图 Pr面板展示图 第一步:导入视频1导入点击文件——点击导入——选择视频,双击视频或点击打开按钮——完成导入。2预览点击视频,拖到右侧;拖动蓝色条,时间指针,点击会快速预览,快捷键是空格键。3视频轨道和音频轨道A声音;V:视频;左…