功能测试的方法

发表于:2009-06-26来源:作者:点击数: 标签:功能
目前在 功能测试 中。常用的 黑盒测试 方法有等价类划分法、边界值划分法、错误推测法、刚果图法和组合分析法。下面将一一给予简单介绍,关于其测试用例殴计,请参考第14章。 1等价类划分法 数据测试是功能测试的主要内容,或者说功能测试是主要的手段之一就

目前在功能测试中。常用的黑盒测试方法有等价类划分法、边界值划分法、错误推测法、刚果图法和组合分析法。下面将一一给予简单介绍,关于其测试用例殴计,请参考第14章。

  1等价类划分法

  数据测试是功能测试的主要内容,或者说功能测试是主要的手段之一就是借助数据的输入/输出来判断功能能否正常运行。在进行数据输入测试时,如果需要证明数据输入不会引起功能上的错误、或者其输出结果在各种输入条件下都是正确的,就需要将可输入数据域内的值完全尝试一遍(即穷举法),这实际是不现实的。假如一个程序P有输入量11和12及输出量0,在字长为32位的计算机上运行。如果Il和12均取整数,则测试数据的最大司能数目为:2”×2”=2“。如果测试程序P,采用穷举法力图无遗漏地发现程序中的所有错误,且假定运行一组(11,12)数据需1毫秒,  天工作24小时,一年工作365天,则2“组测试数据需5亿年。说明穷举的黑盒测试通常是不能实现的,因此只能选取少量有代表性的输入数据,以期用较小的代价暴露H{较多的错误。

    为了解决这个问题,人们就设想是否叫以用一组有限的数据去代表近似无限的数

据,这就是等价类划分法的基本思想。等价类划分法选择适当的数据子集来代表整个数据集通过降低测试的数目实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。等价类划分法基于对输入或输出情况的评估,然后划分到两个或更多子集来进行测试,即将所可能的输八数据(有效的或无效的)划分成若干个等价类,从每个等价类中选择一定的代表值进行测试。其中有一个假定:等价类·p的所有数据对于暴露程序中的错误是等效的,即如果用这个等价类中的代表值作为测试用例未发现程序错误,那么该类中其他的测试用例也不会发现程序的错误。有时,在确定输入数据的等价类时常要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类。这样就将漫无边际的随机测试变为具有针对性的有效测试,极大地提高了测试效率。先举一个抽象并能完全描述等价类划分法的例子,假设函数需要3个参数(A、B、c),

每个参数的输入域分别在以下的子集里(参见图6—2):

    A=Al uA2UA3:  B=B1 UB2uB3:  C=C1 UC2

  C=C1 UC2

表6_2等价类划分法分析

    下面再举一个例子来说明等价类划分法的具体意义。例如,有一报表处理系统,要求用户输入处理报表的日期。假设日期限制在2000年1月至2020年12月,即系统只能对该段时期内的报表进行处理。如果用户输入的日期不在这个范围内,则显示错误信息。并且此系统规定日期由年月的6位数字组成,前4位代表年,后2位代表月,则检查日期时,可用表6_3进行等价类划分和编号。

表6-3等价类划分的~个实例

┏━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┓

┃    输入      ┃    合理等价类      ┃    不合理等价类      ┃

┣━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━━┫

┃              ┃                    ┃    2有非数字字符     ┃

┃    报表目期  ┃    l 6位数字字符   ┃    3少于6个数字字符  ┃

┃              ┃                    ┃    4多于6个数字字符  ┃

┣━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━━┫

┃              ┃                    ┃    6小于2000         ┃

┃    年份范围  ┃    5在200(}~2020  ┃                      ┃

┃              ┃                    ┃    7大于2020         ┃

┣━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━━┫

┃              ┃                    ┃    9等于0            ┃

┃    月份范围  ┃    8在1~12        ┃                      ┃

┃              ┃                    ┃    10大于12          ┃

┗━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━━┛

    在进行功能测试时,只要对台理等价类和不合理等价类测试进行测试,覆盖1,5,8三个台理等价类测试,只要用一个值201006即可;对不合理等价类的测试则要分别输入7个非法数据,如200aOb、20102、1012012、198802、203011、200000、202013。合起来只要完成8个数据的输入就司以了。如果不用等价类划分法,其测试的输入值是几百、L干个,可见等价类划分法提高了测试效率,等价类划分法优点是基了:相对较少的测试案例,就能够进行完整覆盖,很大程度上减少了重复性;缺点是缺乏特殊案例的考虑。同时需要深入的系统知识,才能做到有效地处理。

2边界值分析法

    实践证明,程序往往在输入输出的处理边界情况下发生错误。边界情况指输入等价类

和输出等价类边界上的情况,检查边界情况的测试用例是比较高效的,-,J以蛰出更多的错误。如上面介绍的处理报表日期的例子,等价类划分法就忽略了几个边界条件,如200001(边界有效最小值)、202012(边界有效最大值)以及边界无效值199901、199912、202101、202112等,而程序往往会在这些地方出错。这就是下面要讨论的边界值分析法的优点。边界值分析法就是在某个变量范围的边界上,验证独立的输入/输出是否正确的测试方法。边界值分析法取决于变量的范围和范围的类型,确认所有输入的边界条件或临界值,然后选择这些边界条件/临界值及其附近的值来进行相关功能的测试。边界值分析法处理技巧有:

    ·  如果输入条件规定了值的范围,则取刚达到这个范围的边界值(如上述200001、

    202012),以及刚刚超过这个范围边界的值(如上述199912、202101)a

    ·  如果输八条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数等作为测试数据。

    ·  根据规格说明的每一个输出条件,分别使用以上两个规则。

   

原文转自:http://www.ltesting.net