软件测试方法之等价类测试

news2024/11/25 0:31:59

01 等价类划分法

1、应用场合

有数据输入的地方,可以使用等价类划分法。

从大量数据中挑选少量代表数据进行测试。

2、测试思想

穷举测试:把所有可能的数据全部测试一遍叫穷举测试。穷举测试是最全面的测试,但是在实际工作中不能采用,因为测试效率太低(数据量巨大,根本测不过来)。

理想的测试思想:使用最少的测试数据,达到最好的测试质量(最高性价比)。因为毕竟没有做穷举测试,所以会有遗漏缺陷的风险,如果时间允许,尽可能的做补充测试(不用纠结,觉得有风险的有问题的补充测试就好)。

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

3、基本概念

有效等价类:对程序来说,有意义的、合理的输入数据集合——用来测试功能是否正确实现;

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

02 等价类划分法的实现步骤

1、案例

被测程序:加法器

被测对象:第一个数文本框   第二个数文本框

适合初学者的测试思路:先测第一个数,此时第二个数填写正确数据配合;第一个数测试完成后,测第二个数,此时第一个数填写正确数据配合。

步骤1

分析需求,根据需求划分等价类(初步划分,后续再细化)

需求:要求-99~99之间的整数,不能为空(必填)

有效等价类:-99~99之间的整数

无效等价类:<-99的整数;>99的整数;非整数(需要细化);为空(不填)

步骤2

细化等价类

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

有效等价类:-99~99之间的整数

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

所以将有效等价类细分为:-99~(-1)负整数;0~99 正整数

无效等价类:非整数

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

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

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

步骤3

编写测试用例

从每个等价类范围中挑选至少一个代表数据进行测试。

测试用例最简单的标准:让其他测试人员按照你写的测试步骤执行,如果能够执行出来才可以。

测试用例是要评审的:互评互审,测试组开评审会、有用户参加的评审会。

2、案例中的问题

  1. 在测试有效等价类时,当测试对象为多个控件时,会出现测试用例冗余(重复)的问题——优化用例可以解决;

  2. 当测试无效等价类时,没有考虑多个控件都为无效的情况——强化用例解决。

03 总 结

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

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

1、无效等价类的考虑因素

  • 不能为空:为空

  • 不能重复:重复

  • 不能包含**:包含**

2、类型

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

  • 小数:非小数(非数:字母,汉字,特殊字符)

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

3、范围(超出范围的情况)

  • 数字范围:比最小值小,比最大值大

  • 字符串长度:不在正确的长度范围的就是无效的

4、测试用例

测试用例的用途:

  1. 版本的重复测试会很方便,可以快速正确的进行

  2. 防止遗漏

  3. 提高测试效率

  4. 监督测试过程

  5. 评估结果

  6. 缩短测试周期:版本更新或者升级时,只需修改少部分的测试用例,可以资源复用

编写用例的注意事项:

在编写用例之前应该先确认好用例编号的命名规则,文档、附件的命名规则以及存储,提交的位置。

测试用例编写完成是有评审过程的。互评互审、测试组评审、甲方的参加的评审会。

基本要求:用例先写好(标准:别人按照你写的测试步骤能够顺利执行)

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

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

Netty核心知识总结

Netty是一个高性能、异步事件驱动的NIO框架&#xff0c;它提供了对TCP、UDP和文件传输的支持&#xff0c;作为一个异步NIO框架&#xff0c;Netty的所有IO操作都是异步非阻塞的&#xff0c;通过Future-Listener机制&#xff0c;用户可以方便的主动获取或者通过通知机制获得IO操作…

群体遗传 — 核苷酸多样性π

群体遗传 — 核苷酸多样性π **核苷酸多样性&#xff08;nucleotide diversity&#xff09;&#xff0c;记为π&#xff0c;是分子遗传学中一个重要的概念&#xff0c;用于量化种群内部或不同种群间的遗传多样性。**这一概念由根井正利和李文雄在 1979 年提出。核苷酸多样性的…

zabbix的自动发现机制、代理功能、SNMP监控

一、自动发现&#xff08;不安全&#xff0c;有时会失效&#xff0c;建议手动添加主机&#xff09; 1、定义 zabbix主动与服务端联系&#xff0c;将自己的地址和端口发送给服务端&#xff0c;实现自动添加监控主机 客户端是主动的一方 2、缺点 若自定义网段中主机数量太多…

Python 全栈体系【四阶】(二)

第二章 pandas 一、pandas 介绍 Python Data Analysis Library pandas 是基于 NumPy 的一种工具&#xff0c;该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型&#xff0c;提供了高效地操作大型结构化数据集所需的工具。 二、pandas 核心数…

C语言进阶之路-数组与指针

目录 一、学习目标 二、数组入门 基本概念 语法释义&#xff1a; 定义&#xff1a; 访问&#xff1a; 赋值&#xff1a; 字符数组 多维数组 数组万能拆解法 三、指针入门 内存地址 基地址 取址符 指针基础 指针的定义&#xff1a; 指针的赋值 指针的尺寸 四、…

快手数仓面试题附答案

题目 1 讲一下你门公司的大数据项目架构&#xff1f;2 你在工作中都负责哪一部分3 spark提交一个程序的整体执行流程4 spark常用算子列几个&#xff0c;6到8个吧5 transformation跟action算子的区别6 map和flatmap算子的区别7 自定义udf&#xff0c;udtf&#xff0c;udaf讲一下…

java:slf4j、log4j、log4j2、logback日志框架的区别与示例

文章目录 背景SLF4J - 简单日志门面:Log4j - 强大而古老的日志框架:Log4j2 - Log4j的升级版:Logback - Log4j的继任者:比较Springboot集成slf4j、log4j2参考 背景 在Java开发中&#xff0c;日志记录是一个不可或缺的组成部分。为了满足不同的需求&#xff0c;Java社区涌现出多…

the name of a constructor must match the name of the enclosing class

构造器名匹配封闭类名 命令码的位置关系不对 解决&#xff1a;调整 命令码所在层级

探索人工智能领域——每日20个名词详解【day9】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

基于高德API实现网络geoJSON功能(整体)

代码实现&#xff1a; <script>// 3、初始化一个高德图层const gaode new ol.layer.Tile({title: "高德地图",source: new ol.source.XYZ({url: http://wprd0{1-4}.is.autonavi.com/appmaptile?langzh_cn&size1&style7&x{x}&y{y}&z{z},w…

Axure网页端高复用组件库, 下拉菜单文件上传穿梭框日期城市选择器

作品说明 组件数量&#xff1a;共 11 套 兼容软件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;web端原型设计、桌面端原型设计 作品特色 本作品为「web端组件库」&#xff0c;高保真高交互 (带仿真功能效果)&#xff1b;运用了动态面板、中继…

Hadoop学习笔记(HDP)-Part.09 安装OpenLDAP

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

CUDA简介——Grid和Block内Thread索引

1. 引言 前序博客&#xff1a; CUDA简介——基本概念CUDA简介——编程模式CUDA简介——For循环并行化 Thread Index&#xff1a; 每个Thread都有其thread index。 在Kernel中&#xff0c;可通过内置的threadIdx变量来获取其thread index。threadIdx为三维的&#xff0c;有相…

nodejs+vue+微信小程序+python+PHP在线购票系统的设计与实现-计算机毕业设计推荐

伴随着信息时代的到来&#xff0c;以及不断发展起来的微电子技术&#xff0c;这些都为在线购票带来了很好的发展条件。同时&#xff0c;在线购票的范围不断增大&#xff0c;这就需要有一种既能使用又能使用的、便于使用的、便于使用的系统来对其进行管理。在目前这种大环境下&a…

电子学会C/C++编程等级考试2023年03月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:最佳路径 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。你的任务就是求出最…

ATECLOUD电源自动测试系统打破传统 助力新能源汽车电源测试

随着新能源汽车市场的逐步扩大&#xff0c;技术不断完善提升&#xff0c;新能源汽车测试变得越来越复杂&#xff0c;测试要求也越来越严格。作为新能源汽车的关键部件之一&#xff0c;电源为各个器件和整个电路提供稳定的电源&#xff0c;满足需求&#xff0c;确保新能源汽车的…

JSON 语法详解:轻松掌握数据结构(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

《微信小程序开发从入门到实战》学习四十一

4.3 云开发文件存储 文件存储功能支持将任意数量和格式的文件&#xff08;如图片和视频&#xff09;保存在云端&#xff0c;支持 以文件夹的形式将文件归类。 在云开发控制台中&#xff0c;可以对云端保存的文件进行管理。 也可以通过文件存储API对文件进行上传、删除、移动…

Android Chips(标签)

目录 一、流式布局标签发展历程 二、类型及使用 2.1 Chip.Action(默认值) 2.2 Chip.Entry 2.3 Chip.Filter 2.4 Chip.Choice 三、常用事件 3.1 OnClickListener 3.2 OnCheckedChangeListener 3.3 OnCloseIconClickListener 四、ChipGroup 4.1 ChipGroup Chip.Choi…

java开发神器之ecplise的基本使用

java开发神器之ecplise的基本使用 一、ecplise的安装二、利用ecplise创建工作空间 一、ecplise的安装 免安装eclipse程序包 二、利用ecplise创建工作空间 1、准备好eclipse的程序包&#xff0c;右键执行程序。 2、若打开eclipse显示如下第一张图的界面提示&#xff0c;是因…