当前位置: 首页 > article >正文

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

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.kler.cn/a/159052.html

相关文章:

  • 风电电力系统低碳调度论文阅读第一期
  • MySQL中Flashback(闪回)技术
  • 魔方和群论
  • IDEA2024:右下角显示内存
  • 【Pikachu】XML外部实体注入实战
  • Python知识点精汇!字符串:定义、截取(索引)和其内置函数
  • GAN:WGAN-DIV
  • 智慧垃圾分拣站:科技改变城市环境,创造更美好的未来
  • OCP Java17 SE Developers 复习题08
  • MySQL 8.x 自签证书通过keytool和openssl转成JKS文件
  • 剑指 Offer(第2版)面试题 18:删除链表的节点
  • Canal笔记:安装与整合Springboot模式Mysql同步Redis
  • MYSQL数据库中运行SQL文件报错
  • history路由解决刷新出现404的问题
  • go-fastfds部署心得
  • 四.多表查询
  • bootstrap中的图标元素可以免费使用
  • 怎么验证公钥和私钥是一对
  • VMware虚拟机系统CentOS镜像的下载
  • Hadoop学习笔记(HDP)-Part.13 安装Ranger
  • 【深度学习】回归模型相关重要知识点总结
  • HarmonyOS学习--初次下载安装和配置环境
  • SQL Server 2008 使用concat报错
  • Matlab 镜像变换(2D)
  • 有基础转Go语言学习笔记(2. 基本数据结构篇)
  • 【答疑解惑】什么时候需要将数据集划分为训练集和测试集,什么时候需要划分为训练集、验证集和测试集?