问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

等价类划分法:软件测试中的重要黑盒测试方法

创作时间:
作者:
@小白创作中心

等价类划分法:软件测试中的重要黑盒测试方法

引用
CSDN
1.
https://m.blog.csdn.net/weixin_39857174/article/details/111327978

等价类划分法

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

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等效于对这一类中其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果。等价类通常包括有效等价类和无效等价类:

  • 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和非功能特性。
  • 无效等价类:与有效等价类的定义恰巧相反,该等价类中包括的是程序认为无效的数据。

设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。

划分等价类的方法

下面给出六条确定等价类的原则:

  1. 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。例如:网站上某商品的库存范围为1到99,那么针对商品库存的有效等价类是1到99,两个无效等价类分别是小于1和大于99。
  2. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。 有效等价类是真和假,其他所有输入构成了无效等价类。
  3. 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。例如:公园门票针对老人、成年人和小孩分别有不同的票价,那么就可以生成3个有效等价类(老人、成年人和小孩),以及一个无效等价类(不属于上述三类人)
  4. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如:某公司规定服务年限大于五年的女性员工在妇女节那天可以放假一天,那么有效等价类显然就是同时满足服务年限大于5年并且是女性的员工,而无效等价类有两个,一个是服务年限没有超过5年,另外一个是女性员工。
  5. 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

设计测试用例

在确立了等价类后,可建立等价类表,列出所有划分出的等价类。初始的表格如表4.2.1-1所示。

表4.2.1-1 等价类初始表格

例如:为了覆盖所有的有效等价类和无效等价类,可以从划分出的等价类中按以下三个原则设计测试用例:

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

等价类案例

某商店为购买不同数量商品的顾客报出不同的价格,其报价规则如表4.2.1-2所示。

表4.2.1-2 等价类案例描述

如买8件需要支付520+318=154元,买20件需要支付520+518+515+512=325元。现在该商家开发一个软件,输入为商品数C(1≤C≤50),输出为应付价钱P。采用等价类划分法为该软件设计测试用例(不考虑C为非整数的情况)。

表4.2.1-3 利用等价类获得的输入数据

等价类划分法是把程序的输入域按规则划分为若干子集,然后从每个子集中选取一具有代表性的数据作为测试用例。上例规定了C的取值范围(1 ≤C≤50),按规则可以划分为一个有效等价类{C|1 ≤C ≤50}和两个无效等价类{C|C< 1}、{C|C> 50}。表中对C取不同值有不同的处理,因此上述有效等价类还可以进一步细分为4个等价类{C|1 ≤C ≤5}、{C| 6 ≤C ≤10}、{C|11 ≤C ≤15}、{C|16 ≤C ≤50}。这样一共得到6个等价类,包括4个有效等价类{C|1 ≤C ≤5}、{C| 6 ≤C ≤10}、{C|11 ≤C ≤15}、{C|16 ≤C ≤50}和两个无效等价类{C|C<1}、{C|C>50}。设计用例时从这6个等价类中任选一个代表数据即可。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号