测试用例之等价类划分、边界值法

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

一、测试用例/案例

1、定义:是在测试执行之前,由测试人员编写的指导测试过程的重要文档,主要包括:用例编号、测试目的、测试步骤(用例描述),预期结果

2、介绍编写测试用例的7种方法:

1)等价类划分法
2)边界值法
3)因果图法
4)判定表法
5)正交排列法
6)测试大纲法
7)场景法(*****)

至少要掌握每种方法的适用场合(用在哪)和使用步骤(怎么用)

编写测试用例可以参考什么?

(1)需求文档
(2)被测系统(已开发出来的被测系统)
一边对照程序,一边编写用例。很多企业都是这样测试,如果只对照需求文档可能只能完成测试设计的30-40%。
(3)开发(设计)文档(有可能拿不到,比如测试和开发不是同一家公司,就不一定提供设计文档)
(4)与开发、产品、客户等进行沟通

二、等价类划分法

1、应用场合

  • 有数据输入的地方,可以使用等价类划分法。
  • 从大量数据中挑选少量代表数据进行测试

2、测试思想

穷举测试:把所有可能的数据全部测试一遍叫穷举测试。

穷举测试是最全面的测试,但是在实际工作中不能采用,因为测试效率太低(数据量巨大,根本测不过来)

理想的测试思想:使用最少的测试数据,达到最好的测试质量(最高性价比)

因为毕竟没有做穷举测试,所以会有遗漏缺陷的风险,如果时间允许,尽可能的做补充测试(不用纠结,觉得有风险的有问题的补充测就好)

等价类划分法的测试思想:

从大量数据里划分范围(每个范围内的数据测试效果是等价的所以每个范围是一个等价类),然后从每个范围中挑选代表数据,这些代表数据能反应这个范围内数据的测试结果。

基本概念

  • 有效等价类:对程序来说,有意义的、合理的输入数据集合—用来测试功能是否正确实现
  • 无效等价类:对程序来说,无意义的、不合理的输入数据集合—用来测试程序是否有强大的异常处理能力(健壮性)

三、等价类划分法的实现步骤:

案例

被测程序:加法器
被测对象:

  • 第一个数文本框
  • 第二个数文本框

适合初学者的测试思路:

  • 先测第一个数,此时第二个数填写正确数据配合
  • 第一个数测试完成后,测第二个数,此时第一个数填写正确数据配合

步骤1:分析需求,根据需求划分等价类(初步划分,后续再细化)
需求:要求-99—99之间的整数,不能为空(必填)       

有效等价类:

  • -99—99之间的整数

无效等价类:

  • <-99的整数
  • >99的整数
  • 非整数(需要细化)
  • 为空(不填)

步骤2:细化等价类

细化等价类依据的不再是字面上的需求而是根据数据在内存或数据库中存储的类型。

1)有效等价类:

-99—99之间的整数

整数的存储在计算机底层中会使用不同的算法:正整数和负整数算法不同,所以测试时正整数和负整数应该分开来测。(一般对有效等价类数据应用,无效等价类数据一般不需要正、负分别测)

所以将有效等价类细分为:

  • -99–(-1)负整数
  • 0—99 正整数

2)无效等价类:非整数

非整数:小数、字符(汉字、字母、特殊字符)

最终细分成:小数、字母、汉字、特殊字符

将等价类划分结果填入《等价类表》

在这里插入图片描述

步骤3:编写测试用例

从每个等价类范围中挑选至少一个代表数据进行测试
测试用例最简单的标准:让其他测试人员按照你写的测试步骤执行,如果能够执行出来才可以。
测试用例是要评审的:互评互审,测试组开评审会、有用户参加的评审会

在这里插入图片描述

案例中的问题:

1、在测试有效等价类时,当测试对象为多个控件时,会出现测试用例冗余(重复)的问题–优化用例可以解决
2、当测试无效等价类时,没有考虑多个控件都为无效的情况–强化用例解决

四、边界值法

说明:因为开发中数据范围的边界是最容易产生bug的地方,所以为了保证测试质量,就需要重点测试边界,就有了边界值这样的测试方法

1、应用场合:有数据输入的地方,一般可以使用边界值法。边界值法往往跟等价类划分法一起使用,从而形成一套较为完善的测试方案。

个别情况下,等价类和边界值也不需要一起用。例如:性别

有效等价类:男、女
无效等价类:男、女以外的其他字符

此时就不需要使用边界值法

2、如何使用?

边界值点:有效等价类和无效等价类之间的分界点。(最大值、最小值)
次边界值点:边界值左右两边相邻的点是次边界值点。(4个次边界)

  • 有效最小次边界
  • 无效最小次边界
  • 有效最大次边界
  • 无效最大次边界

常见问题

边界值法应用时,如果测试时间紧张,应该优先测试哪些点?

  • 优先测试最大值和最小值

需求文档中是否边界值都是需求明确的?

  • 有时候需求文档中并没有对所有边界都能明确说明,可能会在后期逐步明确

针对边界值法的解释说明:

边界值数据本质上是属于某个等价类的范围,测试时确实是一种冗余(重复),但是为了更好的测试质量(边界值特别容易出bug),边界值必须要单独测,适当必要的冗余是可以接受的。(边界值法是等价类划分法的重要补充,配合使用测试质量才能得到保证)

练习:

年龄: 18-60岁之间的整数 ,分析边界值
工资:1000.00—30000.00,小数点后最多两位,分析边界值

小数的边界值法测试时要考虑两个部分:

1)小数的数据范围的边界值要分析

2)小数的位数的边界值也要分析

例如当前案例:除了1000-30000 的边界值要分析外,小数位数最多两位:那么:

  • 小数点后2位(最大值)
  • 小数点后1位(有效最大次边界值)
  • 小数点后3位(无效最大次边界值)

五、等价类划分法+边界值法的综合使用

案例:信息注册

步骤1:分析需求,分别将姓名和年龄控件的等价类和边界值进行分析,填入《数据分析表》

在这里插入图片描述

步骤2:根据数据分析结果,形成测试方案,编写测试用例。

在这里插入图片描述

1、有效数据(有效等价类+有效边界值)

问题产生:如果单个控件的有效数据单独测试,会产生用例冗余(重复)的问题

如何解决—优化用例

  • 就是一条用例中尽可能多的将多个控件的1个有效数据组合起来测试(简单来说:就是多个控件的有效数据组合起来测)

效果:用例数减少,测试质量不变,测试效率提高

2、无效数据(无效等价类+无效边界)

首先:要每个控件的无效数据单独测试(1条用例只测1个控件的1个无效数据),不能开始就无效数据组合,为了避免“屏蔽现象”

“屏蔽现象”—前面控件的错误提示出现后,后面控件的错误提示就不弹出了

最后:适当的做强化测试

1)多个控件的无效数据组合测试(就是多个控件都是错误数据的情况,例如:姓名,年龄都为空)

2)1个控件将多个无效数据组合起来测试(例如:年龄既超范围又是小数又有汉字又有符号 ,95.5(岁))

无效数据的组合强化测试,适当去做即可(可以根据时间调整),不需要所有无效数据组合都测。常常测试:

1)经常使用的组合(例如:都为空)

2)在使用中容易出错的组合(例如:54.5岁)

小数类型,等价类+边界值测试时的注意事项:

有效等价类:除了有效的小数外,有效的整数也需要测(小数中默认包含了整数,除非需求中明确的说:小数中不包含整数)

无效等价类:

A)小数类型—非小数(非数):字母、汉字、特殊字符
B)小数位数—超出小数的有效位数(例如:最多两位,那么>2位就是无效等价类)       

3)边界值

A)小数的次边界与边界之间的相差单位是与精确度相关的,例如:精确到小数点后2位,那么相差单位就是0.01

例如:最小值是:1.00那么次边界就是 0.99 和1.01

B)要考虑小数位数的边界问题。例如:小数位数最大值:小数点后2位

那么次边界是:小数点后1位和小数点后3位

在这里插入图片描述

案例:

填写身份证号

需求:18位的身份证号(字符串 string),前17位就是数字,最后1位数字和X(看需求),必填

有效:

  • 18位的身份证,每位都是数字(0-9)
  • 18位的身份证,前17位都是数字(0-9),最后一位X(x是否有效看需求)

无效:

  • >18位
  • <18位
  • 最后1位是特殊字符\汉字\X以外的其他字母
  • 前17位是特殊字符\汉字\字母
  • 为空

规则:

前6位 数字地址码

  • 正确: 100001–899999
  • 错误:不在范围里的

中8位:出生日期

  • 年份:1900-当前年份
  • 月份:01-12
  • 日:01-31
  • 大月:正确31天
  • 小月:30天
  • 二月:平年 28天 闰年:29天

后3位:顺序码000—999

最后1位:0-9或者X

六、总结

有效等价类:比较容易找,一般在需求中可以直接找到。数量较少。所以有效等价类测试也称为正向测试或者通过测试

无效等价类:一般数量较多,也被称为“反向测试”或“失败测试”

无效等价类的考虑因素:

说明:
不能为空:为空
不能重复:重复
不能包含**:包含**

类型

整数:非整数(小数,字母,汉字,特殊字符)
小数:非小数(非数:字母,汉字,特殊字符)
字符:如果没有特殊说明不需要细分。字符包含(字母,数字0-9,特殊字符,汉字)

范围
--超出范围的情况
数字范围:比最小值小,比最大值大
字符串长度:不在正确的长度范围的就是无效的

测试用例

测试用例的用途:

(1)版本的重复测试会很方便,可以快速正确的进行
(2)防止遗漏
(3)提高测试效率
(4)监督测试过程
(5)评估结果
(6)缩短测试周期:
版本更新或者升级时,只需修改少部分的测试用例,可以资源复用

编写用例的注意事项:

(1)在编写用例之前应该先确认好用例编号的命名规则,文档、附件的命名规则以及存储,提交的位置。
(2)测试用例编写完成是有评审过程的。
互评互审、测试组评审、甲方的参加的评审会
(3)基本要求:
1条用例先写好(标准:别人按照你写的测试步骤能够顺利执行)

高标准的要求:

能够分析,形成完善的测试思路(方案),实现更好的测试覆盖率和更少的缺陷遗漏

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

Windows安装服务

&#xff08;1&#xff09;下载设置工具 https://nssm.cc/release/nssm-2.24.zip &#xff08;2&#xff09;根据自己系统选择工具32/64版本 &#xff08;3&#xff09;选择版本后进入文件夹&#xff0c;打开cmd命令窗口输入命令&#xff1a;nssm.exe install &#xff08;4&a…

阿里云实时计算Flink在多行业的应用和实践

摘要&#xff1a;本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践&#xff0c;对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术&#xff0c;并且提供一些在技术架构上的参考建议。内容分为以下四个部分&#xff1a; 业…

SQL Server 端口配置

目录 默认端口 更改端口 示例&#xff1a;更改 TCP 端口 示例&#xff1a;验证端口设置 远程连接测试 示例&#xff1a;使用 telnet 测试连接 配置防火墙 示例&#xff1a;Windows 防火墙设置 远程连接测试 示例&#xff1a;使用 telnet 测试连接 默认端口 TCP/IP: …

jmeter 重试机制

一、功能实现 我们在测试过程中&#xff0c;请求接口可能是因为请求超时&#xff0c;或者接口异常失败&#xff0c;导致整个测试链路验证失败&#xff0c;jmeter重试机制&#xff0c;这个时候就可以避免上述问题发生 二、配置 1、添加线程组 首先&#xff0c;确保你已经在测…

ctfshow~菜狗杯 你会异或吗

下载文件附件得到一张png图片&#xff0c;用010打开看一下 全是乱码&#xff0c;结合题目提示 你会异或吗 和 神秘数字:0x50 我们试一下图片十六进制值异或十六进制0x50 打开010然后工具–>十六进制运算–>二进制异或 输入0x50 得到一张新的图片 然后到微信里的图片文字提…

函数模板和类模板

前言&#xff1a;各位老铁好&#xff0c;今天来分享函数模板和类模板的知识&#xff0c;这个算是一个小知识&#xff0c;但这个小知识非常重要&#xff0c;相信学C的各位老铁一定听过STL这个名词&#xff0c;那么STL是什么呢&#xff1f;它与我们今天分享的这个函数模板和类模板…

《Milvus Cloud向量数据库指南》——图像数据:ResNet50与图像及视频搜索的深度解析

图像数据:ResNet50与图像及视频搜索的深度解析 在当今信息爆炸的时代,图像和视频作为最直观、最富表现力的媒体形式之一,其搜索与检索技术显得尤为重要。无论是科研探索、艺术创作还是日常娱乐,人们越来越依赖于高效的图像和视频搜索工具来快速定位所需内容。其中,ResNet…

高频JMeter软件测试面试题

近期&#xff0c;有很多粉丝在催更关于Jmeter的面试题&#xff0c;索性抽空整理了一波&#xff0c;以下是一些高频JMeter面试题&#xff0c;拿走不谢~ 一、JMeter的工作原理 JMeter就像一群将请求发送到目标服务器的用户一样&#xff0c;它收集来自目标服务器的响应以及其他统计…

光伏气象站:绿色能源时代的守护者

光伏气象站&#xff0c;顾名思义&#xff0c;是结合了光伏发电技术与气象监测功能的创新设备。 它不仅能够利用太阳能自发电&#xff0c;实现绿色能源自给自足&#xff0c;还能精准监测并记录温度、湿度、风速、风向等关键气象参数。这些数据对于评估光伏系统的发电效率、优化电…

Java后端初开-->架构师学习路线!无偿分享!让你少走弯路

由于平台篇幅原因&#xff0c;很多java面试资料内容展示不了&#xff0c;需要的java面试宝典的伙伴们转发文章关注后&#xff0c;扫描下方二维码免费获取:

WebSocket 协议与 HTTP 协议、定时轮询技术、长轮询技术

目录 1 为什么需要 WebSocket&#xff1f;2 WebSocket2.1 采用 TCP 全双工2.2 建立 WebSocket 连接2.3 WebSocket 帧 3 WebSocket 解决的问题3.1 HTTP 存在的问题3.2 Ajax 轮询存在的问题3.3 长轮询存在的问题3.4 WebSocket 的改进 参考资料&#xff1a; 为什么有 h…

【调试笔记-20240731-Linux-Wordpress 添加 wp-weixin 插件支持微信用户扫码注册登录】

调试笔记-系列文章目录 调试笔记-20240731-Linux-Wordpress 添加 wp-weixin 插件支持微信用户扫码注册登录 文章目录 调试笔记-系列文章目录调试笔记-20240731-Linux-Wordpress 添加 wp-weixin 插件支持微信用户扫码注册登录 前言一、调试环境操作系统&#xff1a;Windows 10 …

有趣的PHP小游戏——猜数字

猜数字 这个游戏会随机生成一个1到100之间的数字&#xff0c;然后你需要猜测这个数字是什么。每次你输入一个数字后&#xff0c;程序会告诉你这个数字是“高了”还是“低了”&#xff0c;直到你猜对为止&#xff01; 使用指南&#xff1a; 代码如下&#xff0c;保存到一个p…

排序算法:快速排序,golang实现

目录 前言 快速排序 代码示例 1. 算法包 2. 快速排序代码 3. 模拟程序 4. 运行程序 5. 从大到小排序 快速排序的思想 快速排序的实现逻辑 1. 选择基准值 (Pivot) 2. 分区操作 (Partition) 3. 递归排序 循环次数测试 假如 10 条数据进行排序 假如 20 条数据进行…

DC-7靶机通关

今天咱们来学习第七个靶机&#xff01;&#xff01;&#xff01; 1实验环境 攻击机&#xff1a;kali2023.2 靶机&#xff1a;DC-7 2.1主机发现 2.2端口扫描 依旧是开了两个端口&#xff0c;一个 22 一个 80 &#xff01;&#xff01;&#xff01; 3.1查看对方网页 在这里我…

2024年必备技能:小红书笔记评论自动采集,零基础也能学会的方法

摘要&#xff1a; 面对信息爆炸的2024年&#xff0c;小红书作为热门社交平台&#xff0c;其笔记评论成为市场洞察的金矿。本文将手把手教你&#xff0c;即便编程零基础&#xff0c;也能轻松学会利用Python自动化采集小红书笔记评论&#xff0c;解锁营销新策略&#xff0c;提升…

redis的集群(高可用)

redis集群的三种模式&#xff1a; 主从复制 奇数 三台 一主两从 哨兵模式 3 一主两从 cluster集群 六台 主从复制&#xff1a;和mysql的主从复制类似&#xff0c;主可以写&#xff0c;写入主的数据通过RDB方式把数据同步到从服务器&#xff0c;从不能更新到主&#xff0c;也…

【卫星载荷之QF项目-001】Vivado 2018.3安装

1.简介 Vivado 是 FPGA 厂商赛灵思公司&#xff08;Xilinx&#xff09;于 2012 年起发布的集成设计环境。Vivado2018.3 是 2018 年 Xilinx 推出的 Vivado 最后一个版本&#xff0c;相对稳定。 2.软件下载 网上自己去官网即可获取安装资源包。 3.软件安装 解压缩安装包&…

通配符/泛域名https证书申请流程

通配符证书也叫泛域名证书&#xff0c;是一种SSL/TLS证书&#xff0c;用于同时保护一个域名及其所有二级子域名的安全&#xff0c;如果企业拥有众多子域名&#xff0c;那么通配符证书是一个非常合适的选择。市面上通配符证书很多&#xff0c;但是收费不一&#xff0c;从哪里申请…

开放式耳机有哪些比较推荐的?开放式耳机五款精品推荐

看到这篇文章的小伙伴&#xff0c;没错&#xff0c;这篇文章就是为了告诉你如何去挑选一款适合自己的开放式耳机&#xff0c;作为一个开放式耳机的测评师&#xff0c;这几年开放式耳机的产品是越来越多&#xff0c;我们的选择也是越来越多元&#xff0c;所以在我们面对这么多选…