51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【109期】:python爬虫的魔力 !双11剁手不吃土,来投稿赚回血红包! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 3266|回复: 10

[求助] 等价类划分法新手求助

[复制链接]

该用户从未签到

发表于 2013-5-22 22:13:55 | 显示全部楼层 |阅读模式
我是一个测试新手,刚开始学习,想把理论基础搞透彻,这样工作的时候就有指导和方向。最近学习等价类划分法的时候,有些迷惑,请高手指点,万分感谢!
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个,这是何故?
回复

使用道具 举报

该用户从未签到

发表于 2013-5-29 09:49:55 | 显示全部楼层
我也是新手,把自己的一些观点说下吧
           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.等价类划分法只关注输入,并不关注输入之间的组合情况,而且,一条用例应该尽量包含多的有效类情况,所以,用例数比所有输入的组合少是很正常的啊
回复 支持 1 反对 0

使用道具 举报

  • TA的每日心情
    开心
    2019-11-21 09:00
  • 签到天数: 787 天

    连续签到: 2 天

    [LV.10]测试总司令

    发表于 2013-5-23 13:24:24 | 显示全部楼层
    高深 完全看不懂 年份我觉得考虑的少的点还行 ,月份是一定要考虑的

    我曾经就在这上面 犯过错误。。

    全都穷举出来不得累死了,我们一个页面就20好几个输入框,所以少是正常的。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-23 15:02:46 | 显示全部楼层
    个人觉得还是要细分,站在客户的角度,要假象什么事情都可能发生,因此程序必须足够强大!在这个基础上,去归纳总结,可能会发现某两种测试用例可以归纳成为一种,这样就会减少测试用例数。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2013-5-23 19:13:20 | 显示全部楼层
    回复 2# 赵佳乐SMILE


       少用例应该不是随机少吧,为了尽可能多的覆盖等价类,测试用例的减少也应该是有规律的,我就是不知道这个规律是什么
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-21 09:00
  • 签到天数: 787 天

    连续签到: 2 天

    [LV.10]测试总司令

    发表于 2013-5-24 09:08:34 | 显示全部楼层
    回复 4# pkcs2012


        反正我是没学过等价类

    虽然页面上输入框很多 比如有的 就让你随便输入 那你肯定不用太专心测

    比如一个百分比 那就有范围了 得仔细测

    在比如 右键 电话 格式

    数字、编码 多花心思

    主要还是根据业务的限制 和主要功能来取舍
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-29 09:51:42 | 显示全部楼层
    回复 4# pkcs2012


        一条有效类的用例应尽量包含多的有效类情况,一条无效类用例对应无效类情况,我的理解是这样的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-29 10:16:55 | 显示全部楼层
    好吧,我来说一下自己的想法~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-29 10:24:15 | 显示全部楼层
    本帖最后由 ChelyFang 于 2013-5-29 10:25 编辑

    看上去写了很多,实际上的区间值应该是200101~200512,所以等价类分析的话,200101 200512这两个区间内的应该是有效等价类,而200101时间之前的和200512之后的都应该属于无效等价值类,至于说的为文件名为名 、空格和特殊字符都属于无效等价类的范围,是需要考虑的。同时也可以加上边界值的分析方法来设计测试用例……
    顺便说一下,像这种类似的案例,除了要考虑文件名的正确的输入值外,还要考虑文件的存储格式 文件大小 文件名所限制的长度等等因素!
    只提供参考,共同学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-29 14:06:34 | 显示全部楼层
    回复 9# ChelyFang


          200101--200512这个区间你怎么定义呢?取整数的话,比如200113你算不算这个区间里的值呢?
          本来论坛就是互相学习,互相探讨么
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-29 16:06:26 | 显示全部楼层
    回复 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””。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2019-12-9 16:54 , Processed in 0.073334 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表