想看更多内容请移步专栏

转载:【1+X】软件测试技术 - 等价类划分法 - 蓝桥云课 (lanqiao.cn)

等价类划分法

知识点

  • 等价类划分法概述
  • 等价类划分法案例

简介

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

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

等价类划分法的概述

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

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

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

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

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

  • 如果程序规定了输入域的取值范围,则可以确定一个有效等价类和 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 步:选取合适的数据,编写测试用例

等价类划分法案例

案例 1-注册界面

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

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

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

【解析】

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

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

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

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

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

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

案例 2-三角形

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

【解析】

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

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

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

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

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

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

小结

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

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

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

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

【1+X】等价类划分法相关推荐

  1. 黑盒测试方法之等价类划分法

    等价类划分法 概念 需求示例 测试用例分析设计 总结 概念 等价类是指某个输入域的子集,在该子集中每个输入数据的作用是等效的,也就是该子集中每个输入数据的揭错概率是一样的.等价类分为有效等价类和无效等 ...

  2. 黑盒测试法——等价类划分法(修改版)

     黑盒测试法--等价类划分法   实验目的:1.掌握等价类划分的方法 掌握按等价类方法设计测试用例 实验内容: 1.请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序 ...

  3. 【软件测试】黑盒测试の等价类划分法

    等价类划分法 等价类划分法是一种重要的.常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性. 等价类划分法是把所有可能的输入数据,即程序的输入域划分成 ...

  4. 黑盒测试 ------ 等价类划分法

    文章目录 等价类划分法 等价类划分概念: 等价类的分类 等价类思考步骤 例子 等价类划分的总结 等价类划分法 计算器:到底输入几组数据才算测试完毕? 答案:一个一个测试效率低下,所以一定要分类测试. ...

  5. 软件测试用例设计方法-等价类划分法

    本篇文章,来分享大家比较熟悉的测试用例设计方法--等价类划分法. 首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程. 其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例. 定义 等价 ...

  6. 3章等价类划分法-城市号码

    一.填空题(共1题,50.0分) 1使用等价类划分法的目的是既希望进行,又希望. 正确答案: 第一空: 完备测试 第二空: 避免冗余 二.简答题(共1题,50.0分) 1某城市的电话号码由三部分组成. ...

  7. 黑盒测试技术中的等价类划分法、边界值分析法、因果图法和决策表法进行测试用例设计

    一.实验目的 1.能熟练应用黑盒测试技术中的等价类划分法.边界值分析法.因果图法和决策表法进行测试用例设计. 2.对测试用例进行优化设计 二.实验环境 Windows系统+ Office工具 三.实验 ...

  8. 黑盒测试技术之等价类划分法

    黑盒测试技术之等价类划分法 一. 等价区间与等价测试原理 二.等价类划分 三.常见等价类划分形式 四.应用 一. 等价区间与等价测试原理 在描述等价类法之前,先来解释等价测试原理.正是基于这个原理,才 ...

  9. 黑盒测试方法—等价类划分法

    等价划分法是一种不需要考虑程序的内部结构,只需要考虑程序输入数据的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性. 需要把用户所有可能输入的数据划分成若 ...

  10. 黑盒测试用例设计方法-等价类划分法

    目录 一.等价类的作用 二.等价类的分类 三.等价类的方法 四.等价类的原则 五.按照测试用例的完整性划分等价类 六.等价类步骤 七.案例 一.等价类的作用 为穷举测试设计测试点. 穷举:列出所有的可 ...

最新文章

  1. maven基础概念学习1
  2. 习题10-6 递归求Fabonacci数列 (10 分)
  3. 物联网通信协议全解析
  4. 轻松上云系列之一:本地数据迁移上云
  5. 本弗莱数据可视化的生产流程图_力控锂离子电池车间数据采集系统
  6. rpg人物制作软件_新机制和随机性的完美结合!新RPG《元素梦境》参上
  7. promise的状态以及api介绍_Promise从入门到自定义 | 尚硅谷Promise新版视频发布!
  8. 如何把SQLServer数据库从高版本降级到低版本?
  9. c++ 输出二进制_Q音直播编译优化与二进制集成方案
  10. Java开发全套学习!java判断字符串中是否包含中文
  11. 今天安利一个超牛叉的黑客入侵的特效网页,我第一次打开就被惊艳到了
  12. pdf reference官方指南之-语法基础和文件结构
  13. 教你用爬虫批量采集淘宝商品评论数据
  14. python查看opencv版本
  15. 关于ele框架样式修改
  16. 沉迷那一抹秋色·禾木
  17. SQlServer数据库基础
  18. 中国剩余定理(也叫孙子定理)
  19. 03-Java核心类库_XML与JSON
  20. SCAU 18935 贪吃的小Q

热门文章

  1. 支付原理及实现在线支付步骤
  2. IBM RSA 建模:第 8 章可重用模型
  3. 几个焦耳-汤姆逊(Joule-Thomson)系数的证明题
  4. 写在2015农历年的最后以及2016农历年的开始
  5. slam学习(1)——卡尔曼滤波
  6. 二手书交易系统数据流图
  7. 智能电销机器人工作流程《各版本机器人部署》
  8. 学编程脚本 android,Auto.js安卓免root脚本开发教程
  9. 大创项目前传——爬虫阶段(1)
  10. 人工智能、物联网时代,嵌入式思维的应用