软件测试----等价类划分

09月30日 收藏 0 评论 1 测试开发

软件测试----等价类划分

文章声明:转载来源:https://blog.csdn.net/qq_38016931/article/details/79727020

  方法定义:将所有可能输入数据的数据域进行划分,分成若干子集,再从其中选出少数具有代表性的的是用例测试程序,该方法是一种常用的黑盒测试方法。

▲等价类划分可有两种不同的情况:有效等价类和无效等价类。

1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。

▲划分等价类的标准:
1)完备测试、避免冗余;
2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
3)并是整个集合:完备性;
4)子集互不相交:保证一种形式的无冗余性;
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

实例分析:

首先是测试1600年至2100年的任意一天的下一天的日期情况,按照年、月、日的取值划分。划分情况如下:

①1600<= y <=2100平年 ②1600<= y <=2100闰年

 ③y <1600 ④y >2100 ⑤m∈{1,3,5,7,8,10} ⑥m∈{4,6,9,11} ⑦m = 2 ⑧m = 12 ⑨ m <1 ⑩m >12 ⑪1<= d <=27 ⑫d = 28 ⑬d = 29 ⑭d = 30 ⑮d = 31 ⑯d > 31 ⑰d < 1

按照等价类范围选出某些具有代表性的策划用例:

然后根据测试用例测试程序将情况按表列出:


备注一:

备注二:

备注三:

然后是测试三角形种类程序(感觉这个有错误):

等价类划分:

①a<=0 ②a>200 ③b<=0 ④b>200 ⑤c<=0 ⑥c>200 ⑦0<a、b、c<200 ⑧(a+b)>c||(a+c)>b||(b+c)>a ⑨ (a+b)<c&&(a+c)<b&&(b+c)<a ⑩a=b||b=c||a=c
⑪a!=b&&a!=c&&b!=c ⑫a=b&&a=c&&b=c ⑬a!=b||a!=c||b!=c ⑭a*a+b*b=c*c||a*a+c*c=b*b||b*b+c*c=a*a ⑮a*a+b*b!=c*c&&a*a+c*c!=b*b&&b*b+c*c!=a*a ⑯a*a+b*b=c*c&&
(a=b||b=c||a=c)... ⑰a*a+b*b!=c*c||(a!=b&&b!=c&&a!=c)...

测试实例:

①4,5,6  ②1,1,2  ③2,2,3  ④2,2,2  ⑤3,4,5 
⑥1,1,1.414214(√2) ⑦0,2,1 ⑧ ⑨201,100,150 ⑩20,201,190
⑪1,2,0 ⑫190,20,201


备注一:

备注二:

划分等价类的方法用自己所理解的一句话来总结:即是每个等价类里面的所有情况只能通过一个方法或者说是算法来得到结果。

这个条件所遇到的类似if else switch得到的结果都是一样。结果也就是属于一个类别

以上。

C 1条回复 评论
信长之野望

怎么没能早点看到你这篇文章呢

发表于 2024-05-03 21:00:00
0 0
Bunny

云里雾里地听完了……

发表于 2023-09-27 23:00:00
0 0
即刻打烊

准备三刷这节课!

发表于 2023-06-25 23:00:00
0 0
耿蕊

干货满满,很详细,评论占个坑

发表于 2022-09-22 23:00:00
0 0
Vincent

真的好拼呀

发表于 2021-12-19 23:00:00
0 0
小朱吖

我还是个菜鸟

发表于 2021-11-25 21:00:00
0 0