多变量测试一般性方法

发表于:2010-7-06 11:58

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

 作者:sxg_feixue    来源:51Testing软件测试博客

  本文针对系统测试中黑盒输入变量较多提出一些测试方法,可以提高有限的测试资源下测试设计的有效性。对于计费、报表等测试设计有较好的实用价值。

  1.  从实践中常遇到的问题开始:

  在黑盒系统测试计划设计中,一般将界定的测试需求细化为详细的测试功能集,每个可测试的功能都有一些输入和输出,通过组合特定的输入来校验预期的输出。

  常见的组合方法有:等价类划分、因果图、正交矩阵法、边界分析、判定表驱动、功能图等,主要是解决输入穷举数量级与测试有效性的矛盾。

  对于较少的输入变量,通常有较好的效果,或者多种方法复合使用等等。但是当输入因素较多时(比如有200个),如果照搬套用的话,那么数量级将超出测试资源的约束,也就是说可能不得不牺牲测试的有效性。

  在计费测试中,简单地按照黑盒测试划分输入因素,计费文件和配置数据将组合出太多的可能;如果轻率地只用几个测试用例,那么计费的有效性显然没有说服力。

  报表测试与此类似,影响某个报表结果的数据库输入组合同样很多。

  如果把输入变量的组合理解为一个区域,白色为已有的测试用例:

  那么在灰色区域都没有经过测试,无法确认里面没有BUG。

  2.  缩减输入变量的简易方法:

  最简单的方法就是尽可能减少输入变量的个数和每个变量可能的取值范围,比如筛选出一些不变量或变化不大的变量不列入输入变量,当做是系统恒定值处理;再如根据需求筛选一些变量的取值范围,或剔除一些无意义的组合等等。目的是减小测试区域的面积。

  这些方法只能减少较为有限的幅度,而且受应用的限制比较大。

  3.  测试范围的界定:

  在测试开始的时候,必须确定测试的范围,表面上看似乎是“毋庸置疑”的,但却可以重新认真选择和考量,比如:

  在该图中可以选择不同的椭圆作为测试的范围。如果选择最小的椭圆作为测试范围,那么可能需要把config和input作为输入变量考虑;如果用中间的椭圆作为测试范围,只需要用input作为输入变量考虑;如果选择最大的椭圆作为测试范围,那么就没有输入变量了。(注:并非测试范围扩大就一定会得到较少的输入)

  可以看到,选择不同的测试范围对测试输入有影响。一般来说,测试系统的范围至少要大于需求的范围,若把一些因素比如配置变量纳入测试范围内,则会减少输入变量。

  对于上述将一些因素放入测试范围内而不再参加输入组合的穷举,必须有相应的“典型值集合”来弥补可能的遗漏。

  同样以上图为例:选取一个集合config-A

  config-A={config1,config2,config3,...,confign}

  input-B={input1,input2,input3,…,inputn}

  集合中将是一些典型的具有代表意义的若干组合,然后对集合A做INPUT的穷举组合(组合方法见前述黑盒测试方法)测试,再对集合B做CONFIG的穷举组合测试,如果必要的话可能在产品部署前针对确定的CONFIG-C做一次回归测试。

  集合选取的策略可以根据需要灵活把握。

  以此类推可以根据选择和组合将较多的输入变量简化为容易测试的集合。值得特别注意的是:例子中的config在需求中,恰好是一旦确定后变化不大,那么是否可以随意选择其他任意的因素呢?

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号