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

需要把用户所有可能输入的数据划分成若干份(若干个子集),然后从每一个子集中选取少数并且具有代表性的数据作为测试用例的数据,这种方法被称为等价类划分法。

在有限的测试资源的情况下,用少量且有代表性的数据进行测试会得到比较好的测试效果。

1.等价类划分

等价类划分的基本思想是首先把可能用到的数据划分为不同的类别,然后再从每一类别里面挑选有代表性的数据用以数据。这样挑选出来的数据就可以代表这一类里面的全部数据。通过这种方式,可以减少测试用例的数量。

2.等价类分类

根据不同类别划分出来的范围中,又可以分为一下两种情况。

(1)有效等价类:指符合范围文档描述,输入合理的数据集合。

(2)无效等价类:指不符合需求文档描述,输入不合理的数据集合。

所以等价类可以等同于有效等价类和无效等价类的组合

用户的软件不仅要能够接受合理的数据输入,对输入不合理的数据也需要做出正确的响应,因此在对系统设计用例时,两种等价类都需要考虑,这样的测试才能确保软件具有更高的可靠性。

所有的有效等价类和无效等价类所用的数据合起来,就是整个的测试数据。

3.等价类划分原则

通常按照以下原则划分等价类。

(1)如果规定输入的取值范围或个数,则划分一个有效等价类和两个无效等价类。例如,注册用户名的长度限制为6~18个字符,6~18个字符是有效等价类,小于6个字符和大于18个字符则是两个无效等价类。

(2)如果规定了输入的集合或规则必须要遵循的条件,则划分一个有效等价类和一个无效等价类。例如,注册用户名的格式要求必须以字母开头,以字母开头是有效等价类,非字母开头是无效等价类。

(3)如果输入条件是一个布尔值,则划分为一个有效等价类和一个无效等价类。例如,在注册用户时需要遵循协议或条款是否接受时,“接受”是有效等价类,“不接受”则是无效等价类。

(4)如果输入条件是一组数据(枚举值),并且程序对每一个输入的值做不同的处理,则划分若干个有效等价类和一个无效等价类。例如,网游中充值VIP等级(3个等级),对每个VIP的等级优惠不同,VIP1、VIP2、VIP3不同等级是3个有效等价类,不是VIP用户则是无效等价类。

(5)如果输入条件规定了必须要遵循某些规则,则划分为一个有效等价类和若干个无效等价类(无效等价类需要从不同的角度去违反规则)。例如,密码设置要求首位必须是大写字母的首字母大写是有效等价类。

(6)不是所有的等价类都是无效等价类。例如,性别的选择只有男或女两种。

4.等价类设计步骤

(1)先划分等价类:找出所有可能的分类。

(2)确定有效等价类:需求文档中提出的条件。

(3)确定无效等价类:与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空等)。

(4)从各个分类中挑选测试用例数据。

划分等价类要点:文本框要求输入数据的长度、类型、组成规则、是否为空、是否重复、区分大小写、是否去除空格。

5.实例

等价类设计步骤的前3个步骤,可以通过等价类表这种方式来辅助进行分析。

例:还是以计算器为例,这一次的计算范围是1~100中的两个整数之和。

(1)创建等价类表

在确立了等价类之后,可按表1-2所示的内容列出所有划分出的等价类。

输入条件 有效等价类 无效等价类
1~100的整数(包括1和100) [1,100]整数 <1整数
>100整数
小数
字母
汉字
特殊字符

等价类表可以帮助分析和划分等价类,这是一个辅助工具,初学者可以借助这种方式快速地编写测试用例。

设计测试用例的时候需要注意,应该按照以下原则来覆盖不同的等价类。

1)设计新的测试数据,尽可能多覆盖尚未被覆盖的有效等价类,重复这一步骤,知道将所有的有效等价类都覆盖完为止。

2)设计新的测试数据,只覆盖一个无效等价类,重复这一步,直到将所有的无效等价类都覆盖完为止。

(2)设计测试用例

我们先编写一个很简单的测试用例,只包含最关键的一些信息,如测试用例编号、所属的等价类,两个输入框中的测试数据,还有预期结果。

因为在这个加法的例子中,想要得到最终计算结果需要在两个输入框中都输入数据,所以这个已经涉及了多个元素,就需要输入两个值。

在涉及多个元素的情况下,要采用控制变量法,如果要覆盖无效等价类,设计测试用例的时候,当前元素覆盖无效等价类的同时测试用例中涉及的其他元素要保持有效,如表1-3所示。

用例编号 所属等价类 输入框1 输入框2 预期结果
1 有效等价类 30 60 90
2 无效等价类 -2 40 给出错误提示
3 无效等价类 40 -2 给出错误提示
4 无效等价类 110 2 给出错误提示
5 无效等价类 2 100 给出错误提示
6 无效等价类 10.5 3 给出错误提示
7 无效等价类 1 10.5 给出错误提示
8 无效等价类 a 5 给出错误提示
9 无效等价类 20 给出错误提示
10 无效等价类 20 给出错误提示
11 无效等价类 5 a 给出错误提示
12 无效等价类 5 给出错误提示
13 无效等价类 5 ! 给出错误提示
14 无效等价类 空格 5 给出错误提示
15 无效等价类 5 空格 给出错误提示
16 无效等价类 为空 5 给出错误提示
17 无效等价类 5 为空 给出错误提示

表格中 每一条测试用例都遵循了控制变量法(只验证一个输入框中的无效等价类),这样可以排除更多不确定因素和干扰因素。

(3)等价类总结

等价类划分法非常简单,也很容易理解,是在设计测试用例中使用最广泛的一种方法。

它的优点是考虑了单个输入域、所有可能的取值情况,避免了在设计测试用例时盲目或随机选取输入测试不完整或不稳定的数据。

最大的缺点是产生的测试用例比较多,而且在设计时,可能会产生一些无效的测试用例,也没有对特殊点进行考虑,所以在设计测试用例时需要结合其他的方法进行完善。

黑盒测试方法—等价类划分法相关推荐

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

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

  2. 软件测试方法——等价类划分法详解

    目录 1.等价类划分法的介绍和概念 2.等价类的类型划分 3.等价类测试用例的类别 3.1弱一般等价类 3.2弱健壮等价类 3.3强一般等价类 3.4强健壮等价类 4.等价类划分的原则 4.1按照区间 ...

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

    等价类划分法产生的原因 对系统进行穷尽测试是不可能的 使用有限的数据对系统进行测试是可能的 我们可以选择少量测试用例来测试系统,并满足: 测试是完备的 测试是没有冗余的 等价类基本原理 3个约束:分而 ...

  4. 黑盒测试方法(等价类划分法、边界值法、决策表、判定表、正交表、场景法、错误推断法)

    1.黑盒测试方法 1.1.等价类划分法: 根据软件测试原则可以知道,要做到穷举是不可能的,事实上也是不必要的.为了减少工作量,需要对测试用例进行适当选取.等价类划分法便提供了一种选取测试用例的方法. ...

  5. 【软件测试】07 -- 黑盒测试方法(等价类划分法)

       等价类划分法    等价类划分法是一种常用的黑盒测试方法,它主张从大量的数据中选择一部分数据用于测试,即尽可能使用最少的测试用例覆盖最多的数据,以发现更多的软件缺陷.    一个程序可以有多个输 ...

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

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

  7. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  8. 软件测试方法_等价类划分法

    目录: ①等价类划分法的介绍和概念 ②等价类的类型划分 ③等价类测试用例的类别 ④等价类划分的原则 ⑤等价类划分法的测试用例应用 ⑥边界值分析法的实例分析 1.等价类划分法的介绍和概念 划分 指互不相 ...

  9. 【黑盒测试用例设计】等价类划分法

    等价类划分法是一种黑盒测试方法,用于将测试过程合理分类以确保设计出的测试用例具有完整性和代表性.在使用等价类划分法时,需要按照需求规格说明书生成等价类,其中包括有效等价类和无效等价类.有效等价类是合理 ...

最新文章

  1. 自定义控件:侧滑面板
  2. 学校测试-2015-2-27
  3. mahout 安装编译
  4. linux线程同步 eventfd,用 eventfd 在线程之间通信
  5. oc61--block
  6. 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑
  7. There is no getter for property named 'userId' in 'class java.lang.String'
  8. GB28181协议实现系列之----SDK Demo发布(7)
  9. 北京市通州区谷歌卫星地图下载
  10. Linux虚拟机上的Scala安装
  11. part-1 输入偏置电流和输入失调电流
  12. Oracle 中文转拼音
  13. 信息安全工程07875 自考软件工程 助学班复习纲要
  14. vue组件,父传子、子传父、父调子、子调父简单理解总结
  15. C#栈的实现(数制转换)
  16. Qt5 学习之路及嵌入式开发教程11:Qt5标准输入对话框类及QSlider控件
  17. 小贝SEO博客_专注于SEO优化_软件_活动分享
  18. 2021腾讯社招java技术岗面试题
  19. t-检验(t-test)的应用举例及matlab代码
  20. 热电阻 热电偶 测量电路_热电偶和热电阻有什么区别?

热门文章

  1. 开发那点事(四)vue实现一个日历插件
  2. 查看MySQL的安装路径
  3. scipy.sparse学习
  4. window时间同步
  5. html清除js设置的浮动,css 怎么清除浮动
  6. 异步四位二进制计数器逻辑图
  7. LeetCode575
  8. LeetCode | 575. Distribute Candies
  9. 【网红流水线车间】“制造”李佳琦们的神秘组织,到底是怎么让网红火起来的?...
  10. MxNet系列——how_to——multi_devices