
首先,基本概念
等效类是指程序输入域的子集.
等价分区(Equivalance Partitioning)测试思想: 将程序的输入字段划分为多个区域(等价类),并在每个等价类中选择一个代表元素以生成测试用例. 这种方法是常用的Blackbox Testing测试用例设计方法.
第二,划分等效的类
1. 有效等效类和无效等效类
等效类可以分为两种不同的情况: 有效等效类和无效等效类. 有效等效类是指对于程序的说明而言合理且有意义的输入数据的集合. 它可以验证程序是否可以满足规范中指定的功能要求. 无效的等效类是指对程序的说明而言不合理或无意义的输入数据的集合. 它可以检查在不符合规则的数据输入下程序是否异常. 无效的等效类至少应为一个,可以有一个或多个,具体取决于特定的情况. 因此,在设计测试用例时,必须同时考虑这两个等效类. 因为该软件不仅必须接收合理的数据,还必须承受意外的测试. 这样的测试可以确保软件具有更高的可靠性.
2. 等价类划分标准
完成测试以避免冗余. 这就要求: 应该将集合(程序输入域)划分为一组不相交的子集,并且这些子集的并集就是整个集合(整个程序输入域).
3. 划分等价类的原则
(1)如果输入条件指定了值范围或值的数量,则可以将其分为一个有效的等效类和两个无效的等效类;
例如: 设置字符长度范围,该范围为[6,8]
–字符长度L –
L <6
6 <= L <= 8
L> 8
无效的等效类
有效等效课程
无效的等效类
(2)如果输入条件是布尔表达式,则可以将其分为真有效等效类和无效等效类;
例如: 是否已填充
在此处写图片描述
(3)如果指定了输入数据必须遵循的原则,则可以将其分为有效的等效类(符合规则)和几个无效的等效类;
例如: 银行帐户只能输入数字
(4)如果仅需要输入数据即可满足某些原则,那么可能会有多个有效类和几个无效等价类;
例如: 交易用户登录密码只能输入数字,字母和一些特殊符号,不能输入单/双引号和汉字
注意: 与每个有效等效类相对应的无效等效类的并集是不符合输入原理的数据集.
(5)如果指定了一组输入数据值(假设n),并且程序对不同的输入值执行了不同的处理,则可以将其划分为n个有效的等效类(每个允许的输入值为一个有效等价类)和无效的等价类(所有不允许的输入值的集合).
例如: 设置基金帐户时,您必须选择是否检查自我交易
在此处写图片描述
例如,输入条件规定可以是: 大专,本科,硕士,博士等.
(6)当已知划分的等价类中的元素在程序中的处理方式不同时,应将等价类进一步划分为较小的等价类.
例如: 行业主要原因和行业子类别
2)测试用例设计步骤
(1)划分等价类后,建立等价表并为每个等价类指定唯一的编号;
(2)设计一个测试用例,以覆盖尽可能多的有效等效类,并尽可能多地覆盖它等价类测试三角形问题,并重复此步骤,直到覆盖所有有效等效类;

(3)设计一个新的测试用例,使其仅覆盖一个尚未涵盖的无效等效类. 重复此步骤,直到覆盖所有无效的等效类. (因为单个测试用例涵盖了无效的等效类,这是因为某些特定的输入错误将掩盖或替换其他输入错误检查)
第二,练习练习
1)三角形问题的等效测试用例
[问题描述]程序要求: 输入三个整数a,b和c作为三角形三个边的长度,并确定程序形成的三角形的类型;当三角形是普通三角形,等腰三角形或等边三角形时,请分别进行操作...
<问题分析>
(1)输入范围的显式/隐式要求: 一个整数,三个B,正C,D的两个侧面之和大于第三个侧面,E的三个侧面不相等,两个F的边相等但不等于前三个G的边相等. (D〜G由输出范围的等价类隐式确定)
(2)输出范围的等价类: R1 = {不构成三角形},R2 = {一般三角形},R3 = {等腰三角形}等价类测试三角形问题,R4 = {等边三角形};
<问题和答案>
(1)列出等效的类表和编号
(2)涵盖有效等效类的设计测试用例
a b c 覆盖等价类号码
3 4 5 (1)--(7)
4 4 5 (1)--(7),(8)
4 5 5 (1)--(7),(9)
5 4 5 (1)--(7),(10)
4 4 4 (1)--(7),(11)
(3)涵盖无效等效类的设计测试用例
2)NextDate函数的等效测试用例
[问题描述] NextDate函数包含三个变量: 月,日和年. 函数的输出是输入日期之后一天的日期. 例如,如果输入为2006年3月7日,则函数的输出为2006年3月8日. 输入变量month,day和year均为整数值,并且必须满足以下条件:
①1≤month≤12
②1≤day≤31
③1912≤year≤2050
<问题分析>该功能的主要特点是输入变量之间的逻辑关系相对复杂,具体体现在: 输入字段的复杂性; year年规则. 例如,当可变年份和可变嘴巴采用不同的值时,相应的可变日期将具有不同的值范围,即1-30或1-31或1-28或1-29.
<问题和答案>
(1)分割方法一

(1.1)划分等价类
A. 有效等效课程
M1 = {嘴: 1≤嘴≤12}; D1 = {day: 1≤day≤31}; Y1 = {year: 1912≤year≤2050}
B. 无效的等价类
M2 = {嘴巴: 嘴<1},M2 = {嘴巴: 嘴> 12};
D2 = {day: day <1},D3 = {day: day> 31};
Y2 = {year: year <1912},Y2 = {year: year> 2050};
(1.2)一般等效检验
由于有效类的数量等于自变量的数量,因此仅出现弱通用等效测试用例,它们与强通用等效测试用例相同.
【注】“弱”是指具有单个缺陷的假设(很少失败是由两个或多个缺陷同时引起的),“强”是指具有多个缺陷的假设(失败是由两个或多个缺陷引起的)同时导致两个以上的缺陷); ``常规''表示不考虑无效值. 弱通用等效测试用例是通过在测试用例中使用每个有效等效类(间隔)的代表值来实现的(通常以对称方式标识这些测试用例,并注意单方面假设的作用);价测试用例由每个自变量的有效等价类的笛卡尔积实现.
(1.3)健壮的等效性检验
(1.3.1)弱健等价检验
在弱而健壮的等效测试中,无效测试用例仅包含一个无效值,而所有其他均为有效值,即它们包含单个缺陷假设.
[注: “弱”是指单缺陷假说,“强”是指多缺陷假说; “稳健”是指考虑无效值]
在此处写图片描述
(1.3.2)健壮的等效性检验
鲁棒等效测试考虑了更多无效值. 健壮等效性测试中的无效测试用例可以包含多个无效值,即包含多个缺陷假设. NextDate函数具有三个变量,因此健壮的等效类测试用例可以相应地包含一个无效值,两个无效值或三个无效值.
[注: “强”是指具有多个缺陷的假设,“强”是指具有多个缺陷的假设; “健壮”是指对无效值的考虑]

(2)分割方法二
很明显,当使用除法1测试NextDate函数时,既不考虑2月的天数也不考虑the年. 因此,应该进行进一步的改进.
(2.1)划分等效类
等价关系的要点是,等价类中的元素应被“相同地处理”,即,它们应全部在有效级别执行或全部在无效级别执行. 因此,更有效的等效类为:
可变嘴: M1 = {嘴: 嘴有30天},M2 = {嘴: 嘴有31天,除了12月},M3 = {嘴: 嘴是2月},M4 = {嘴: 嘴是12月} ;
变量日: D1 = {day: 1≤day≤28},D2 = {day: day = 29},D3 = {day: day = 30},D4 = {day: day = 31};
变量日: Y1 = {year: 年是a年},Y2 = {year: 年是正常年};
(2.2)一般等效检验
A. 通用等效测试弱
考虑到单边假设,以对称的方式机械地选择相应类别的有效输入:
B. 强大的通用等效测试
从弱对等类检验到强对等类检验,无论是普通类还是鲁棒类,都进行独立性假设,并且必须表示为等价类的笛卡尔积.
在此问题中,可变口等效类的数量为4,可变日等效类的数量为4,可变年份等效类的数量为2,因此强通用等效类测试用例的数量为442 = 32.
3)保险利率等值类别的分类
一家保险公司从事人寿保险已有多年了. 公司的保险费计算方法是投资多少*保险费率. 保险费率受积分影响. 不同点的保险费率不同. 10分及以上的率为0.6%,10分以下的为0.1%
(1)列出等效的类表和编号
(2)涵盖有效等效类的设计测试用例
(3)涵盖无效等效类的设计测试用例
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-258742-1.html
想讹点钱花