欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

07 测试用例设计方法 [黑盒--边界值分析方法

最编程 2024-04-21 18:08:17
...

黑盒测试用例设计方法-边界值分析法

边界值分析法一般是对等价类划分法的补充
【边界值分析法】
对被测程序的输入域或输出值域的边界值进行测试的一种测试
【边界值分析法的重要性】
经大量的实践表明,软件中大量的故障往往发生在输入定义域或者输出值域的边界上,而不是在其内部。
【如何设计测试用例?】
1.首先确定边界情况。
通常输入活输出等价类的边界就是应该着重测试的边界值
2.选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。

【如何获取测试用例数据】

边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。
——因此,在边界值分析法中获取测试用例数据的方法是:
1.每次取程序输入条件中的一个变量,让这个变量依次(不能同时取所有变量,因为会不确定到底是哪个变量的边界值引起的故障)取min、min+、nor(除边界值外的任意值)、max-和max,其余的其它变量取域内的任意值(一般取正常值范围内的中间值附近);
2.对程序中的每个变量重复(1)。
【举例】
1.报表的第一行和最后一行
2.数组元素的第一个和最后一个
3.循环的第0次、第1次和倒数第2次、最后1次
4.通常情况下,软件测试所包含的边界检验有几种类型:
数字、字符、位置、质量、大小、速度、方位、尺寸、 空间等
相应地,以上类型的边界值应该在:
第一个/最后一个、开始/完成、最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最长、/满等情况。
其他边界值检验:
包括默认值/空值/空格/未输入值/零、无效数据/不正确数据和干扰数据等。
边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例
【举例】
测试计算算术平方根的函数
——输入:实数
——输出:实数
——规格说明:当输入一个0或比0大的实数的时候,返回其非负平方根;当输入一个小于0的实数时,显示错误信息“平方根非法-输入值小于0”并返回0。
等价类划分:

等价类划分.png

等价类测试用例.png

边界值分析.png

设计测试用例数据原则:

1.如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。
2.如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。
3.如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合中的第一个和最后一个元素作为测试用例。
4.如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。
5.分析程序规格说明,找出其它可能的边界条件。

【案例】

  1. 三角形问题,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。
    分析:
    首先:从输入角度分析,该问题输入变量有3个,其对应的等价类划分
    其次:按照边界值取值法取值:
    取值{0,1,2,50,99,100,101}
    一边取边界值,其它2边取中间值,重复数据的删掉
    最后:边界值分析测试用例
    一般情况下: min-,min,min+,max-,max,max+
    image.png

    2.某酒水销售公司指派销售员销售各种酒水,其中白酒卖168元/瓶,红酒卖120元/瓶,啤酒卖5元/瓶。对于每个销售员,白酒每月的最高供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶,各销售员每月至少需销售出白酒50瓶,红酒30瓶,啤酒300瓶。每到月末,各销售员向酒水销售公司上报他所在区域的销售业绩,以供酒水销售。
    公司根据其销售额计算该销售员的佣金,并作为奖金发放,计算方式如下:
    2万元(含以下),4%;
    2万元(不含)到4.5万元(含),1%;
    4.5万元(不含)以上,0.5%
    分析:
    考虑输入.png

    考虑输出.png

    image.png

    注意:本案例中若只考虑输入条件设计测试用例,它只能验证了程序的健壮性,其测试用例中,销售额都是大于4.5万,且测试用例存在冗余,并且没有对小于4.5万的销售额进行测试,测试存在遗漏。因此也要考虑输出销售额进行等价划分来设计测试用例。

最终筛选出最有效的测试用例:

最终.png