第3章 软件测试方法--基于输入域的测试方法(等价类、边界值)


3.2 基于输入域的测试方法

3.2.1 等价类测试方法

  等价类:某个输入域的子集,在该子集中每个输入数据的作用是等效的。分为有效等价类无效等价类
(1)有效等价类
  合理、有意义的输入数据构成的集合,即被测对象能接受的数据。用于考查软件的正常工作能力

(2)无效等价类
  不合理、无意义的输入数据构成的集合,即被测对象不能接受的数据。用于考查软件的容错能力。

  将输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例。
  设计测试用例时,要同时考虑有效无效两种等价类。因为软件不仅要能接收合理的数据,也要能经受异常数据的考验。经过正反的测试才能确保软件具有更高的可靠性。

确定等价类的方法

  1. 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
    在这里插入图片描述
  2. 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。在这里插入图片描述
  3. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。在这里插入图片描述
  4. 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
  5. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

判断等价类中所有数据是否完全等价的简便原则
  在某个指定的等价类中,被测对象对该等价类中的输入数据或输入项的处理方式是否一致,如果不一致,则该等价类需要进一步做等价划分

根据等价类创建测试用例的步骤
①建立等价类表,列出所有划分出的等价类:
在这里插入图片描述
②为每个等价类规定一个唯一的编号;
③设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类
④重复③,最后使得所有有效等价类均被测试用例所覆盖;
⑤设计一个新的测试用例,使其只覆盖一个无效等价类。
⑥重复⑤使所有无效等价类均被覆盖。

测试用例的完整性划分
完整性从弱到强排序:弱一般等价类测试、弱健壮等价类测试。强一般等价类测试、强健壮等价类测试。下面逐一定义。

  1. 弱一般等价类:遵循单缺陷原则,要求用例覆盖每一个变量的一种取值即可,取值为有效值。
    cec64cae9caad52c66ff38e38f55487b.png

  2. 弱健壮等价类:在弱一般等价类的基础上,增加取值为无效值的情况。“健壮”意味着程序要有容错性,取到无效值也要正确识别出来。对于有效输入,使用每个有效值类的一个值。对于无效输入,测试用例将拥有一个无效值,并保持其余的值是有效的。
    bb88950370a97cbde52ea62e54dd4c87.png

  3. 强一般等价类:遵循多缺陷原则,要求用例覆盖每个变量的每种取值之间的迪卡尔乘积,即所有变量所有取值的所有组合,取值为有效值。例如变量X有3个等价类,变量Y有2个等价类,那么应设计3*2共6个用例。要覆盖所有的有效等价类组合。
    afbfc1919caab92a7c80d1bc71eaf1da.png

  4. 强健壮等价类:在强一般等价类的基础上,增加取值为无效值的情况。(不仅取单个无效值,也要取多个无效值。)
    019a5b886bce65aa3ffc07bcab35a46f.png

例1:有关三角形判定的例子。我们也将等价类分为有效类和无效类两类来进行讨论。如图所示共有20种情况:在这里插入图片描述
从而确定并得出测试用例如图所示:在这里插入图片描述
例2:第二日问题

  1. 第一次划分尝试
    等价划分:
    在这里插入图片描述
    无效等价类的测试用例:
    在这里插入图片描述
    有效等价类的测试用例:
    在这里插入图片描述
  2. 第二次划分尝试;
    等价划分:
    在这里插入图片描述
    测试用例:
    在这里插入图片描述
    要考虑测试用例中不存在的情况(独立性假设所产生的冗余):
    在这里插入图片描述

若针对整体输入域:对输入对象施加条件:
在这里插入图片描述

总结

  • 目标:从理论上追求测试的完备性和无冗余性
  • 基于:独立性假设和单缺陷假设
  • 当等价划分不合理(即存在漏洞时),将导致测试用例的漏洞;
  • 当输入条件之间存在关联时,若基于个体输入域进行测试,将导致测试用例的冗余。

3.2.2 边界值分析方法(BVA – Boundary Value Analysis)

  设计方法
  1.确定边界情况(输入或输出等价类的边界)。
  2.选取正好等于、刚刚大于或小于边界值作为测试数据。

确定边界值的方法

  1. 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
    在这里插入图片描述

  2. 如果输入条件规定了值的个数,则用最大个数最小个数比最小个数少一比最大个数多一的数作为测试数据。
    在这里插入图片描述

  3. 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素最后一个元素作为测试用例。

  4. 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

边界值是在有效类的边界上选取
例1:在这里插入图片描述
例2:
在这里插入图片描述
例3:佣金问题
某酒水销售公司指派销售员销售各种酒水,其中白酒、红酒和啤酒的单价分别为168元/瓶、 120元/瓶、5元/瓶。
每个销售员,白酒每月的最高供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶
各销售员每月至少需售出白酒50瓶,红酒30瓶,啤酒300瓶
月末,各销售员向酒水销售公司上报他所在区域的销售业绩,酒水销售公司根据其销售额计算该销售员的佣金,并作为奖金发放
销售员的佣金计算方法如下:
2万元以下(含):4%;
2万元(不含)~4.5万元(含):1%;
4.5万元以上(不含):0.5%。
最终将由佣金计算系统生成月销售报告,对当月售出的白酒、红酒和啤酒总数进行汇总,并计算销售公司的总销售额和各销售员的佣金。

边界点:1.35为每月最少销售额度
在这里插入图片描述
针对输出域的测试用例:
在这里插入图片描述
总结

  • 边界值测试:一种最基本、最简单的黑盒测试方法,通常可作为等价类测试的补充
  • 基于:独立性假设和单缺陷假设
  • 边界值测试关注的是系统边界,并不关注系统对不同类型数据的处理规律,因此,该法设计的测试用例往往具有较大的系统冗余与漏洞,但这并不影响该法的有效性
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
软件测试方法和技术第三版》是软件测试经典的参考书籍之一,被广泛应用于软件测试实践和教育培训中。该书主要介绍了软件测试的基本概念、原则、方法和技术,并深入讨论了各种不同类型的测试方法和技术。 该书的内容涵盖了软件测试的各个方面。首先,它介绍了软件测试的基本概念和原则,包括测试的定义、测试目标和测试过程等。然后,它详细讨论了各种测试方法,包括黑盒测试、白盒测试和灰盒测试等。此外,书中还介绍了一些常用的测试技术,如等价类划分、边界值分析、路径覆盖和数据流测试等。另外,还介绍了一些高级的测试技术,如模型驱动测试、自动化测试和性能测试等。 《软件测试方法和技术第三版》提供了丰富的案例和练习题,在每结束时提供了进一步学习的参考资料,有助于读者加深对软件测试理论和实践的理解。此外,该书还介绍了一些软件测试工具和平台,帮助读者更好地应用所学的测试方法和技术。 综上所述,《软件测试方法和技术第三版》是一本全面介绍软件测试的经典教材,对于软件测试从业人员和学习者来说,都是一本不可或缺的参考书籍。无论是对于初学者来说,还是对于有经验的测试专家来说,该书都提供了丰富的内容和实用的方法,能够帮助读者提升软件测试的能力和水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值