【软件测试之等价类划分法概述】

news/2024/4/29 20:29:39

【软件测试之等价类划分法概述】*(蓝桥云课学习笔记)

在《软件测试的原则》小节中我们提到过一个案例,假设让你负责一个计算器小程序的测试工作,如何着手呢?假设先测试其加法运算功能,在字长为 32 位的计算机上运行,若随意取 2 个整数进行相加,那么测试数据的最大可能数目为 232x232=264。如果测试一组数据需要 1 毫秒,一天工作 24 小时,一年工作 365 天,那么完成所有测试大概需要 5 亿年。还有减法、乘法、除法、其他算法,简直可以无穷无尽,测试到天荒地老。所以我们得出了一个软件测试的原则----穷尽测试是不可能的。

为了解决这个难题,又保证我们设计出来的测试用例具有完整性和代表性,我们引入等价类划分法,它将不能穷举的测试过程进行区域划分,减少测试的数量,从而使测试过程合理化。

1、等价类划分法的概述

等价类划分法是最常用的黑盒功能测试方法之一,根据程序对数据的要求,把程序的输入域划分成若干个部分,列出哪些数据是有效的,哪些数据是无效的,从每个部分中选取少数代表性数据作为测试用例的数据。这样,每一类的代表数据在测试中的作用都等价于这类中的其他值。所谓的等价类是指具有相同属性或方法的集合。

软件不能只接收合理有效的数据,也要具有处理异常数据的功能,这样测试才能确保软件具有更高的可靠性。因此,在等价类划分的过程中,不但要考虑有效等价类,也要考虑无效等价类。

有效等价类是指对软件规格说明来说,合理、有意义的输入数据等构成的集合,利用有效等价类可以检验程序是否满足需求规格说明书所规定的功能和性能。只考虑有效等价类的测试称为“标准等价类测试”。

无效等价类是指不满足程序输入要求或者无效的输入数据所构成的集合,利用无效等价类可以检验程序异常情况的处理。不止考虑了“有效等价类”,还考虑了“无效等价类”的测试被称为“健壮性等价类测试”。

使用等价类划分法设计测试用例,首先必须分析需求规格说明书,然后列出有效等价类和无效等价类。以下是划分等价类的几个原则:

  • 如果程序规定了输入域的取值范围,则可以确定一个有效等价类和 2 个无效等价类。

例如:程序要求输入的数值是 50 到 100,那么一个有效等价类就是 50~100,而 2 个无效等价类就是小于 50,大于 100 的区域数据。

  • 如果程序规定了输入值的集合,不是一个范围,则可以确定一个有效等价类和一个无效等价类。

例如:程序要进行平方根函数的运算,那么大于等于 0 的数为有效等价类,而小于 0 的数为无效等价类。

  • 如果程序规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可以每一个值确定一个有效等价类,然后再选择一个无效等价类。

比如:规定某个输入条件 x 的取值只能为{1、2、3、4、5}中的某一个,那么有效等价类就是 x 等于这几个数,而无效等价类则为 x 不等于这几个数。

  • 如果程序规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。

例如:程序中某个输入条件规定必须为 5 位数字,则可划分一个有效等价类为 5 位数字,3 个无效等价类为:位数少于 5、位数多于 5、5 位中含有非数字字符。

  • 如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。

使用等价类划分法设计测试用例的步骤如下:

第 1 步:分析程序的规格说明,列出有效等价类和无效等价类;列出等价类表,并对每个等价类规定唯一的编号,如下表所示。当然也可以不是表格形式,采用文字描述的形式。

输入条件有效等价类编号无效等价类编号
………………
………………

第 2 步:一一列出输入条件中可能的组合输入情况。

第 3 步:选取合适的数据,编写测试用例

2、等价类——注册页面案例

某网站用户申请注册时,要求必须输入“用户名”、“密码”及“确认密码”,如下图所示。对每一项输入有如下要求:

某网站的注册功能界面

  • 用户名要求:3~12 位,只能使用英文字母、数字、中划线-、下划线_,这 4 种字符或 4 种字符的组合。并且首字符必须为字母或数字。
  • 密码要求:6~20 位,只能使用英文字母、数字、中划线-、下划线_,这 4 种字符或 4 种字符的组合。
  • 确认密码:与密码相同,并且区分大小写。

现在使用等价类划分法设计其测试用例。

【解析】

分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类),如下表所示:

注册界面等价类分析表

一一列出条件中可能的输入组合情况

在该题中,可以有这样的组合,如:

  • 输入有效的用户名、有效的密码、有效的确认密码;
  • 输入无效的用户名、正确的密码、正确的确认密码;
  • 输入有效的用户名、无效的密码、正确的确认密码;
  • 输入有效的用户名、有效的密码、无效的确认密码。

针对题中的等价类表,我们可以得出等价类组合表,如下表所示。此处简化测试用例的模板,只取我们关注的输入条件和输出结果的项,预期结果中的提示也是假设的,实际的提示会比这复杂的多。

注册界面等价类组合表

选择测试数据,编写测试用例,如下表所示:

注册界面等价类测试用例

3、等价类——判断三角形形状案例

程序要求:输入三个整数 a、b、c 分别作为三角形的三边长度,通过三条边长度来判断三角形的类型分别为:一般三角形、等腰三角形或等边三角形,并产生对应的输出。请运用用等价类划分法来设计该题的测试用例。

【解析】

分析程序规格,列出等价类表。如下表所示。

分析:根据题目,得出程序输入值的显式和隐式要求以及输出值的等价类。

  • 输入值的显式要求为:整数、三个数、正数;
  • 输入值的隐式要求为:两边之和大于第三边、三边均不相等、两边相等但不等于第三边、三边相等;
  • 输出值的等价类为:不构成三角形、一般三角形、等腰三角形、等边三角形。

三角形等价类分析表

一一列出条件中可能的组合情况

  • ①②③④⑤⑥:输出一般三角形
  • ①②③④⑤⑥+⑦/⑧/⑨:输出等腰三角形
  • ①②③④⑤⑥+⑩:输出等边三角形
  • ⑪~⑰:提示“边长请输入整数”
  • ⑱~37:输出非三角形

选择测试数据,编写测试用例。如下表所示。

三角形等价类组合表

4、等价类划分法小结

在等价类划分法中,每一类的代表性数据(也就是被选为测试用例的测试数据),在测试中的作用等价于这一类中的其他值,如案例 1 中的密码“test_123”和“abcd_123”就是等效的,他们都属于有效的密码数据。

也就是说如果等价类中的一个测试数据能捕获一个缺陷,那么该等价类中的其他测试数据也能捕获该缺陷;如果等价类中的一个测试数据不能捕获缺陷,那么选择该等价类中的其他测试数据也不能捕获缺陷。这是一个重要的结论。

只要有数据输入的地方,就可以采用等价类划分法,它可以从无限多的数据中选取少数代表性的数据进行测试以减少测试人员的工作量。

注意:在测试用例中,可以先测试全部输入条件的有效等价类组合,再每次只测试一个输入条件的无效等价类情况。无效等价类在开始测试的时候不能一起组合,避免“屏蔽”现象发生(前面输入条件的错误提示一出现,后面控件的错误提示就不出现了)。然后可以再适当考虑无效等价类的组合,验证软件处理极端数据的能力。

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

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

相关文章

无线LED显示屏的优势

无线LED显示屏是利用GSM、GPRS、CDMA、3G等无线通讯网络,实现LED显示屏远程、实时和大规模组网信息发布的技术产品。这里有无线LED显示屏技术解答。 相较于传统的有线连接方式,无线LED显示屏具有许多优势,下面让我们一起来了解一下&#xff1…

Linux学习-网络UDP

网络 数据传输,数据共享 网络协议模型 OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式(数据报、流式&#…

SQLite 4.9的虚拟表机制(十四)

返回:SQLite—系列文章目录 上一篇:SQLite 4.9的 OS 接口或“VFS”(十三) 下一篇:SQLite数据库文件格式(十五) 1. 引言 虚拟表是向打开的 SQLite 数据库连接注册的对象。从SQL语句的角度来看, 虚拟表…

js爬虫puppeteer库 解决网页动态渲染无法爬取

我们爬取这个网址上面的股票实时部分宇通客车(600066)_股票价格_行情_走势图—东方财富网 我们用正常的方法爬取会发现爬取不下来,是因为这个网页这里是实时渲染的,我们直接通过网址接口访问这里还没有渲染出来 于是我们可以通过下面的代码来进行爬取: …

【Linux】初识Linux,虚拟机安装Linux系统,配置网卡

前言 VMware软件:首先,确保您已经下载了VMware Workstation软件并安装在电脑上。VMware Workstation是一款功能强大的虚拟化软件,它允许在单一物理机上运行多个操作系统。 Linux镜像文件:需要准备一个Linux操作系统的镜像文件。…

lv逻辑卷(虚拟磁盘)及配额实操

、LVM 1.LVM概念 LVM逻辑卷管理(Logical Volume Manager):LVM 适合于管理大存储设备,并允许用户动态调整磁盘容量大小,提高磁盘管理的灵活性。LVM的快照功能可以帮助我们快速备份数据。 2.LVM对比磁盘分区的优点 1…