目录

一、等价类的作用

二、等价类的分类

三、等价类的方法

四、等价类的原则

五、按照测试用例的完整性划分等价类

六、等价类步骤

七、案例


一、等价类的作用

为穷举测试设计测试点。

穷举:列出所有的可能情况,对其一一判断。

测试点:要验证的点。比如测试登录界面:用户名为空、用户名错误、密码为空、密码错误等等。

我们不可能实现穷举测试,等价类划分法是把程序所有可能的输入数据,进行分类(有效和无效等价类),然后从分类中选取具有代表性的数据来设计测试用例。

二、等价类的分类

有效等价类:合理的、有意义的输入数据构成的集合;

无效等价类:不合理的、没有意义的输入数据构成的集合;

三、等价类的方法

按区间划分。

按数值划分。

按数值集合划分。

按限制条件或规划划分。

按处理方式划分。

四、等价类的原则

①在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。

例如:有这样一个需求,用户名的长度为 [1,100];

那么,一个有效等价类可以是:1≤x≤100;

两个无效等价类可以是:>1、<100;

知识扩展

看到这里有些人可能会疑惑,我的有效等价类不是在 1~100 之间吗,那我为什么不这样描述:>= 1并且 <= 100,而是描述为:1≤x≤100;这两种描述方式都可以使用,都是正确的描述方法。

还有一个问题,需求中是直接写 [1,100] 的,没有明确标明是 >= 1 并且 <= 100,还是 > 1 并且 < 100,那我为什么觉得他是 >= 1 并且 <= 100 呢?这里就要补充另一个知识点了;

不等式的小括号和中括号的含义

小括号和中括号在不等式里面表示一个取值范围,小括号是开区间,为不包含;中括号是闭区间,为包含。

比如:(1,100),表示不等式的解集是 >1 并且 < 100(不包含1和100)。

也可以表示为:1<x<100;

比如 [1,100] ,表示不等式的解集是 >=1 并且 <= 100(包含1和100)。

也可以表示为:1 ≤ x ≤ 100。

所以我之前这样描述:1≤x≤100,就是 >=1 并且 <= 100 的意思。

注:

1.在不等式里第一个数字为大于,最后一位数字为小于;

2.我们知道怎么打出“<”,知道怎么打出"=",那怎么把他们两个组合起来,打出“≤”呢❓❓❓最简单的就是在输入的时候上直接写中文“小于等于”;

“≥”也是同理。

我说这个的原因是想让你们看到 1 ≤ x ≤ 100 这种描述的时候不会

,知道他表示的是什么意思就好,本来就理解的话就更好啦啦~

②在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。

例如:考试的时候单选题只能在A、B、C、D四个选项中选择;

那么,n个有效等价类可以是:A、B、C、D;

一个无效等价类可以是:不在A、B、C、D之内的选项;

③在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。

例如:密码由 1~8 位的数字+字母组成;

那么,一个有效等价类可以是:1≤x≤8位的数字+字母组成的密码;

若干个无效等价类可以是:空(也就是<1)、>8、1<x<8位的纯数字、1<x<8位纯字母、1<x<8位非数字+非字母(小数、中文、特殊符号)、空格;

④在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。

例如:输入三个正整数代表每边的长度,构成等边三角形;

那么,一个有效等价类可以是:三条边都相等的;

一个无效等价类可以是:三条边不相等的;

⑤在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。

例如:密码不可以含有空格;

那么,先划分大的有效和无效等价类,有效:不含有空格;无效:含有空格;

然后还可以对无效等价类进行进一步的划分:前面含空格、后面含空格、中间含空格;

五、按照测试用例的完整性划分等价类

可以分为:弱一般等价类、弱健壮等价类、强一般等价类、强健壮等价类。

弱一般等价类:

遵循单缺陷原则,要求用例覆盖每个变量的一个值,取有效值。

弱健壮等价类:

在弱一般等价类的基础上,加上无效值;“健壮”的意思就是程序要有容错能力,输入了无效值也能正确识别出来;对于有效输入,取每个有效变量的一个值;对于无效输入,取一个无效值,其余的都是有效值。

强一般等价类:

遵循多缺陷原则,取每个变量每个值的迪卡尔乘积,也就是所有变量和所有值的组合情况;比如,

X有 2 个等价类,Y有 3 个等价类,那他的迪卡尔乘积就是:2*3=6,最终用例的数量就是 6。

强健壮等价类:

在强一般等价类的基础上,加上无效值(不仅取单个无效值,也要取多个无效值)。

六、等价类步骤

1、划分有效和无效等价类表,并设定编号;

2、根据等价类表编写测试用例。

等价类表的建立

1)在分析需求规格说明的基础上划分等价类,列出等价类表,为每一个等价类规定一个唯一的编号。

2)将程序可能的输入数据分成若干个子集,从每个子集中选取一个有代表性的数据作为测试用例。等价类是某个输入域的子集,在该子集中的每个输入数据的作用都是等效的。

3)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止。

4)设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止。

七、案例

需求1:密码为 8-10 位数字字母组合。

等价表的格式:输入条件、输出条件(有就写)、有效等价类、有效等价类编号、无效等价类、无效等价类编号。

注:为了节省时间,大致写了下,在企业里面写测试用例不单单只有这几要素。

需求2:输入三个正整数作为边长,判断这三条边能否构成三角形,若能,所构成的三角形是等边、等腰还是一般三角形,请用等价类划分法设计测试用例面试题,真实碰到过!!!)。

假设

a代表第一条边的长度;

b代表为第二条边的长度;

c代表为第三条边的长度;

黑盒测试用例设计方法-等价类划分法相关推荐

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

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

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

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

  3. 测试用例设计方法---等价类划分法

    1 等价类划分法 1.1 定义 是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.方法是一种重要的.常用的黑盒测试用例设计方法 ...

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

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

  5. 学习软件测试(三)测试用例、测试用例的设计方法(等价类划分法、边界值分析法、判定表法、因果图法、正交排列法、场景法、错误推测法)

    目录 测试用例 测试用例八大要素 测试用例的设计方法 等价类划分法 等价类操作步骤 边界值分析法 边界范围 边界值法的操作步骤 案例1 案例2 判定表法 为什么使用判定表法 判定表法的四个组成部分 判 ...

  6. 测试用例的定义、内容以及设计方法——等价类划分法、边界值分析法等

    文章目录 1.什么是测试用例? 2.测试用例模板和包含的内容 3.设计测试用例的作用 4.测试用例编写注意事项 5.黑盒测试用例设计方法 5. 1 等价类划分法 5.2 边界值分析法 5.3 因果图法 ...

  7. 测试用例设计之等价类划分法

    一.关于等价类划分法的解释 把程序的输入域划分成若干部分. 从每个部分选取少数代表性数据当作测试用例. 每一类代表性数据在测试中的作用等价于这一类中的其他数据. 若某一类中的一个例子发现了错误,这一等 ...

  8. 黑盒测试用例设计方法-边界值分析法

    目录 一.边界值定义 二.边界值的考虑 三.边界值的优化 四.边界值的设计用例的步骤 五.案例 六.边界值的类型 一.边界值定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边 ...

  9. 测试用例设计方法-等价类划分

    等价定义 具有相同属性或方法的事务的集合 这个集合中某个个体所表现的特征与其他个性完全相同 对于某个测试对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体所在集合中的任意个体都应该被接受或被拒绝 ...

最新文章

  1. git 还原版本方法
  2. php代码冗余度检查插件,合并ThinkPHP配置文件以消除代码冗余的实现方法
  3. java安全技术-Base64编码与解码
  4. 封神-性能容量分析报告
  5. HystrixDashbord
  6. Mysql CURD复习(数据库、表、数据)
  7. 云计算odps使用笔记(一)环境搭建
  8. php秒杀框架,yii框架redis结合php实现秒杀效果(实例代码)
  9. php mysql 获取排名,Mysql排序获取排名的实例代码
  10. 征信考量社交化和大数据化
  11. 手把手教你由TensorFlow上手PyTorch(附代码)
  12. Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程 - 非HA方式 (一台服务器)
  13. womic网络错误_wo mic 电脑版下载-WO Mic Client下载 3.4 最新电脑版 - 河东下载站
  14. 聪明的kk nyoj 171
  15. oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动有什么区别?
  16. Codeforces Round #672 (Div. 2) Pokémon Army
  17. 基于canvas的图片剪裁工具
  18. Invalid value for option“watch“:expected anObject,but got Function.
  19. adb 操作 快速点击屏幕
  20. RTD2785T RTD2785R 2K eDP屏驱动芯片介绍

热门文章

  1. teamviewer存在linux版本_TeamViewer 9发布-在Linux下安装运行
  2. 传统企业转战电商必看(独家视角)
  3. mysql悲观锁for update
  4. linux下cat命令,关于cat >file 、cat <file <<EOF、cat <<-EOF的区别
  5. C语言编程-----求s=a+aa+aaa+aaaa+aa...a的值
  6. 使用mysql查询显示行号
  7. 什么是有限状态机FSM
  8. 靶机18 driftingblues1
  9. 项目中如何进行有效的沟通管理(一)
  10. 基于envoy的分布式网关-contour