实际软件成活动中,保证被测对象测试充分性的最好方法即是使用穷举法全覆盖、完全组合,但显而易见的是这种思路不可取,软件项目实施受时间、成本、范围、风险等多个因素限制。故而,使用一种高度归纳概括的用例设计方法将会大量减少穷举法带来的大量用例,在保证测试效果的同时提高测试效率,等价类划分正是这样的一种非常常用的黑盒用例设计方法,在保证测试效果的同时提高测试效率。等价类分正是这样的一种非常常用的黑盒用例设计方法,该方法依据用户需求规格说明书,细分用户期望,设计用例。
1、等价类的概念
等价是指某类事物具有相同的属性或特性,在此集合中个体之间因外部输入引起的响应基本无差异。对于软件测试而言,等价类即是某个测试对象的输入域集合,在此集合中单个个体对于揭露被测对象缺陷的效用是等价的,即输入域中的某个体如能揭露被测对象的某种缺陷,那么该集合中的其他个体都能揭露该缺陷,反之亦然基于上面表述的推理,可根据被测对象用户需求的实际情况,做出合理的推断归纳,将输入域划分为若干等价类,并在每个等价类集合中选择一个个体作为测试输入,从而利用少量的测试输入取得较好的测试效果,在测试效率与效果间达到平衡。
![3f5aaf6580d59baa5634acb7fc0ba843.png](https://i-blog.csdnimg.cn/blog_migrate/5a9f472b8c6d1693ea785622f636a61b.jpeg)
2、等价类的分类
等价类一般可分为有效等价类和无效等价类。
有效等价类:针对被测对象需求规格说明而言,有意义、有效的测试输入集合。
无效等价类:针对被测对象需求规格说明而言,无意义、无效的测试输入集合。
软件系统在应用过程中,能接收正确的输入或操作,亦能针对错误或无效输入操作做出正确响应,设计测试用例时需同时考虑有效等价类和无效等价类。
![9174c2c21fec6b3fb9dbc6a8082224b8.png](https://i-blog.csdnimg.cn/blog_migrate/d66abe631ddae0c778a5610fce5b8f9f.jpeg)
据被测对象的需求规格说明书,通常可从 个层面考虑等价类划分。
(1)、着求规格说明中规定了取值范围或值个数时,可以设立一个有效等价类和两个无效等价类,有效取值范围内的输入域集合称为有效等价类,有效取值范国外的输入域集合称为无效等价类。例如,客户姓名字符长度在6~18位,则客户姓名长度在6~18位时有效,而两个无效等价类分别是1-5和>18位的姓名长度。
(2)若需求规格说明中规定了输入值的集合或者规定了必须遵循某个规则时,可确立一个有效等价类和一个无效等价类。例如,如果客户姓名必须由汉字组成,则汉字构线是有效等价类,非汉字构成则是无效等价类。
![f75a222a627df9e887d065fc24dc9b15.png](https://i-blog.csdnimg.cn/blog_migrate/b7b5e08cfb92dda87020b6830aed397a.jpeg)
(3)若输入条件是一个布尔值(即真假值),可确定一个有效等价类和一个无效等价类。例如,如果登录用户是钻石会员账号,则在购物车结算时,可自动享有8折优惠,否则不打折,钻石会员账号即是有效等价类,非钻石会员属于无效等价类。
(4)若需求规格说明中规定输入数据是一组值,并且程序要对每一个输入值分别理,则可确立若干有效等价类和一个无效等价类,例如,电子商务系统中的会员管理,如京东商城,有普通会员、金牌会员、铜牌会员、钻石会员等,不同会员的积分规则、优惠策略不同。
![7eec81593e83be04eb15a13b93fc1a78.png](https://i-blog.csdnimg.cn/blog_migrate/2701870fee84bdd9c5c9b6783e6f83f6.jpeg)
(5)若需求规格说明中规定了输入数据必须遵守某些规则,则可确立一个符合规的有效等价类和若干从不同角度违反规则的无效等价类。