51Testing软件测试论坛
标题:
等价类划分法新手求助
[打印本页]
作者:
pkcs2012
时间:
2013-5-22 22:13
标题:
等价类划分法新手求助
我是一个测试新手,刚开始学习,想把理论基础搞透彻,这样工作的时候就有指导和方向。最近学习等价类划分法的时候,有些迷惑,请高手指点,万分感谢!
1、输入划分的角度把握不准,尤其是当同一个输入有多种限定条件时。例如有个例子:某公司要打印2001--2005年的报表,报表日期由6位数字组成,其中前4位是年份,后2位是月份。这里的输入--日期有两种限定条件:日期要6位数字、日期的前4位在2001-2005之间后2位在1-12之间。按我来看,输入是日期,那输入就可以划分为:6位数字、<6位数字、>6位数字、包含非数字、空这几种。但这样明显是不对的,没有考虑年份和月份的要求。是否还应该将6位数字细分为:年份在2001-2005之间、月份在1-12之间、年份<2001、年份>2005、月份<1、月份>12?请高手帮忙分析下
2、等价类生成用例时,一般都比所有输入的组合少,例如3个输入,每个各有2种等价类,按我的理解应该是2*2*2=8个用例,但看材料解析的时候,往往最后的用例都会少于8个,这是何故?
作者:
赵佳乐SMILE
时间:
2013-5-23 13:24
高深 完全看不懂 年份我觉得考虑的少的点还行 ,月份是一定要考虑的
我曾经就在这上面 犯过错误。。
全都穷举出来不得累死了,我们一个页面就20好几个输入框,所以少是正常的。。
作者:
IreneFeng
时间:
2013-5-23 15:02
个人觉得还是要细分,站在客户的角度,要假象什么事情都可能发生,因此程序必须足够强大!在这个基础上,去归纳总结,可能会发现某两种测试用例可以归纳成为一种,这样就会减少测试用例数。
作者:
pkcs2012
时间:
2013-5-23 19:13
回复
2#
赵佳乐SMILE
少用例应该不是随机少吧,为了尽可能多的覆盖等价类,测试用例的减少也应该是有规律的,我就是不知道这个规律是什么
作者:
赵佳乐SMILE
时间:
2013-5-24 09:08
回复
4#
pkcs2012
反正我是没学过等价类
虽然页面上输入框很多 比如有的 就让你随便输入 那你肯定不用太专心测
比如一个百分比 那就有范围了 得仔细测
在比如 右键 电话 格式
数字、编码 多花心思
主要还是根据业务的限制 和主要功能来取舍
作者:
s1100411
时间:
2013-5-29 09:49
我也是新手,把自己的一些观点说下吧
1.把输入分为有效和无效,然后在有效和无效里再细分等价类用例。
例如:有效类:1)日期为6位数字
2)前4位在2001--2005之间
3)后俩位在1-12之间
无效类:4)日期大于6位
5)日期小于6位
6)日期不为数字
7)前4位大于2005
8)前4位小于2001
9)后俩位小于1
10)后俩位大于12
用例设计的时候,1)2)3)可以用一条用例,4)--10)需要7条用例
2.等价类划分法只关注输入,并不关注输入之间的组合情况,而且,一条用例应该尽量包含多的有效类情况,所以,用例数比所有输入的组合少是很正常的啊
作者:
s1100411
时间:
2013-5-29 09:51
回复
4#
pkcs2012
一条有效类的用例应尽量包含多的有效类情况,一条无效类用例对应无效类情况,我的理解是这样的
作者:
ChelyFang
时间:
2013-5-29 10:16
好吧,我来说一下自己的想法~
作者:
ChelyFang
时间:
2013-5-29 10:24
本帖最后由 ChelyFang 于 2013-5-29 10:25 编辑
看上去写了很多,实际上的区间值应该是200101~200512,所以等价类分析的话,200101 200512这两个区间内的应该是有效等价类,而200101时间之前的和200512之后的都应该属于无效等价值类,至于说的为文件名为名 、空格和特殊字符都属于无效等价类的范围,是需要考虑的。同时也可以加上边界值的分析方法来设计测试用例……
顺便说一下,像这种类似的案例,除了要考虑文件名的正确的输入值外,还要考虑文件的存储格式 文件大小 文件名所限制的长度等等因素!
只提供参考,共同学习!
作者:
s1100411
时间:
2013-5-29 14:06
回复
9#
ChelyFang
200101--200512这个区间你怎么定义呢?取整数的话,比如200113你算不算这个区间里的值呢?
本来论坛就是互相学习,互相探讨么
作者:
Jackc
时间:
2013-5-29 16:06
回复
10#
s1100411
"年份<2001、年份>2005、月份<1、月份>12"
“例如3个输入,每个各有2种等价类,按我的理解应该是2*2*2=8个用例”
组合生成的测试数据组,其中有一部分是无效的,需要对各个输入因素的取值进行实际分析,然后去掉无效的数据。
如:年份<2001,月份>12, 日>31 这一组数据
“年份<2001”是针对最小值越界的测试数据
"月份>12, 日>31 " 则是针对最大值越界的测试数据
显然,测试数据中,各个测试因素的目的并一致,故需将它筛选掉。
至于筛选掉以后,是否存在覆盖泄漏,在时间充裕的情况下可以再进行一轮分析,实际有效的2组测试数据:
“年份<2001,月份<12, 日<31 ”
“年份>2001,月份>12, 日>31 ”
此两组测试数据的测试点已覆盖“年份<2001,月份>12, 日>31 ”,故无覆盖泄漏。
---------------------------
另外,说2个建议:
1. 等价类 中每个等价因素通常是3个属性,而非2属性或1属性。
如“最小年2001”,它的等价属性为“<2001”,"=2001",">2001" 。而实际测试因素没有“>2001”,其实只是将它与“<2005”进行了等价,最终只得到1个因素属性而已。
2. 等价类在完成理论划分后,通常还需要根据实际业务再进行一次测试数据的覆盖率检查。
首先,根据目前已有的业务分析,分为以下4类:
1).“年份>2001,月份>12, 日>MaxD ” (MaxD 受闰月,大,小月约束)
2).“2001<年份<2005,1<=月份<=12, 1<=日<=MaxD“
3).“年份<2001,月份<12, 日<MaxD”
4).“字符串存储测试类,比如:字符串类型、Null值等等”
PS:第4类不涉及测试数据等价,仅仅是测试数据属性的分析测试而已,故将它们分到1类,但实际是由多个用例组成。
但如果再增加一个业务需求,LZ可以思考1,2,3个等价类的覆盖泄漏问题。
需求描述:“年,月,日录入超过边界的参数值时,系统将自动进行换算,如录入“2002-12-40”,系统自动换算为“2003-01-09””。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2