功能测试用例设计积累(五):等价类划分法分析与实践

发表于:2009-1-15 15:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:okokokk    来源:51Testing博客

关键字:功能测试测试用例、等价类划分法

  1、方法定义:

  从软件测试的角度来说,等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。等价类划分包含两个部分:有效等价类和无效等价类。

  1) 有效等价类

  是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。主要为了检验程序是否实现了规格说明中所规定的功能和性能。

  2) 无效等价类

  与有效等价类相反,主要为了程序的健壮性与可靠性。

  2、方法运用到用例设计中的思路:

  1) 根据需求说明书,把需要输入的数据划分成若干个子集合。在这里要确保两点:

  A、每个子集中的数据在测试过程中对于发现程序缺陷是有效的。

  B、每个子集中的数据在测试过程中对于发现程序缺陷是等效的。

  C、子集之间数据互不相交。

  2) 然后从每个集合中选择部分代表性数据形成测试用例中的输入数据。

  3) 覆盖所有有效的和无效的等价类

  3、确定等价类的原则

  1) 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

  例如:成年人每分钟的心跳60-100之间为正常。

  有效等价类:60-100 无效等价类:<60 和 >100

  2) 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

  例如:用户连续输入错误密码的次数最多为3次。

  有效等价类:<=3次 无效等价类:>3次

  3) 在输入条件是一个布尔量的情况下,可确定一个有效等价类。

  例如:单选的选中与不选中。

  4) 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

  例如:输入数据为省份的选择。

  5) 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

  例如:规定必须输入非0的正整数。

  这种例子应充分考虑规则是否可以拆分为具有单一的子规则,然后得到从不同角度违反规则的无效等价类。

  该例子起码可拆分为非0、数字、正数、整数4个子规则,至少每个规则对应一个无效等价类,即0、字符串、负数、小数,甚至可挖掘出输入为空的隐含等价类。

  6) 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

  例如:核对日期的有效性,初步有效等价类是1<=Month<=12,1<=Day<=31

  可是考虑到2月以及闰年、闰月、长月、短月等,需要进一步细分,当然其中还涉及到了年月日组合的问题。

  4、测试用例举例

  竞猜系统中:投注的金额要求是大于10的正整数。

  根据分析等到以下等价类表。

输入条件有效等价类无效等价类
>10的正整数大于10的正整数
小数
<10的数
负数
字符串

  5、优缺点

  优点:避免了盲目或随机选取输入数据的布完整性和覆盖的不稳定性

  缺点:没有对组合情况进行充分的考虑,需要结合其他测试用例设计的方法进行补充

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。

本文出自okokokk的51Testing软件测试博客:http://www.51testing.com/?75241

相关阅读:

功能测试用例设计积累(四):在没有需求文档的情况下如何设计测试用例

功能测试用例设计积累(三):正交表分析与实践

功能测试用例设计积累(二):错误推测法分析与实践

功能测试用例设计积累(一):软件界面

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • liumeidan1
    2012-7-04 15:51:17

    细分的很全面,且有例子,谢谢楼主分享

  • 101°C
    2012-5-12 17:01:15

    挺好的,学习了

  • yanjy
    2009-3-09 11:50:22

    写得很好...

  • fsyj000
    2009-3-09 08:44:04

    真的不错,特别是总结了优缺点,华为电话面试,需要问这些测试方法的优缺点。以上可供参考

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号