小马的测试用例那些事 测试用例设计之等价类法

老马 · 2018年11月12日 · 1411 次阅读

常用的测试用例设计方法有 8 种,分别是: 场景图,因果图,判定表,等价类,边界值,状态转换法,正交表法,状态转换法和错误猜测法.

定义

等价类是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例,等价类分为有效等价类和无效等价类.

有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合;

 无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。

等价类划分原则:

在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
在输入条件规定了输入值的集合或者规定了 “必须如何” 的条件的情况下,可确立一个有效等价类和一个无效等价类。
在输入条件是一个布尔量的情况下,可确定一个有效等价类。
在规定了输入数据的一组值(假定 n 个),并且程序要对每一个输入值分别处理的情况下,可确立 n 个有效等价类和一个无效等价类。
在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

应用范围

1) 功能层次 --- 有编辑框的功能: 登陆, 注册, 新建, 查询

2) 业务层次 --- 需要结合具体的业务,下面以证券行业为例:

股票种类:

股票处理状态:

使用步骤

1) 根据等价类划分原则,识别等价类, 并划分有效等价类和无效等价类

2) 填写等价类表 & 为每个有效和无效等价类编号

3) 根据等价类表,以下 2 个原则设计测试用例:

设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

案例

测试功能点: http://www.emoney.cn/product/ggzd.html 个股诊断功能

功能说明: 只支持对沪深 A 股进行体检!

输入框规则: 输入代码,名称或拼音

等价类 -- 分析过程

1) 识别等价类, 并划分有效等价类和无效等价类

股票代码位数

有效等价类: 6 位

无效等价类: 非 6 位

股票代码字符规则

有效等价类: 数字,字母,名称

无效等价类: 数字和字母组合,数字和名称组合,名称和字母组合,特殊字符,其他

业务层面:

有效等价类: 沪深 A 股

无效等价类: 股票非沪深 A 股,其他

2) 填写等价类表 & 为每个有效和无效等价类编号

3) 根据等价类表,依据 2 个原则,设计测试用例:

共 32 条用例

总结

划分等价类的方法:下面给出六条确定等价类的原则。

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

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

3) 在输入条件是一个布尔量的情况下,可确定一个有效等价类。

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

5) 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

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

备注说明:
该文应该是搜集整理过来的,只是觉的定义和解释的比较规范,非本人原创.若有不当,请联系我,更新援引说明.

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册