正交表与测试用例的设计

2010-12-08  籽藤 

声明:以下理论大多源自《运用Excel进行正交表的构建》、《正交表测试策略》、《Minitab实现正交试验设计》。
 
    对软件测试人员来说,测试用例的设计是一个有趣又困难的过程。我们应该了解:产品的质量不是测试出来的;测试仅仅证明软件存在缺陷,但从来不能证明不存在缺陷;即使在一个小的系统中全面快速的测试也是不可能的。然而,测试是必须的。所以,在设计测试用例的时候,我们应该用一些方法,把自己从无休止的、执行那些不可能发现缺陷的,并且不能增加你对系统的自信的测试状态中解脱出来;从而转变到一种执行简单、能够发现大部分(不是全部)的缺陷,并且对软件的质量更有信心的测试状态。

一个简单的例子

    一个网页有三个不同的部分(Top,Middle,Bottom),并且每个部分都可以有两种状态:隐藏或显示(hidden或visible)
。而你要测试这三部分的相互影响;如果要测试所有可能的组合,将得到8个测试用例。如果你运用正交表的测试策略,得到的将是4个测试用例:

    正如你所看到的,正交表并没有将所有的情况穷尽,因为在很多情况下,我们要测试的因素不只有3个,而这些因素的状态也不仅仅只有2种而已。为了在有限的时间发现更多的缺陷,我们要寻求一种高效率的设计方法。然而,我们又凭什么说,正交表就是我们期望的方法呢?正交表又是如何构造出来的呢?

正交表的特性

    我们观察上面的正交表,可以得出它的两个特性:

  • 任一列中,不同数字出现的次数相等
  • 任两列中,同一横行所组成的数字对出现的次数相等

    这即是正交表的两大优越性,即“均匀分散性,整齐可比”。通俗的说,每个因素(Top/Middle/Bottom)的每个水平(Hidden/Visible)与另一个因素各水平各碰一次,这就是正交性。

    正交表实质上是选择了所有组合中具有代表性的部分组合;应用正交表进行测试,是在牺牲部分交互的情况下节省测试量。而它的使用,也出现在很多生物统计学、科学研究和加工工艺试验的教材里。

正交表的构造

    正交表的构造有很多种方法,什么哈达玛(Hadamard)矩阵法,正交拉丁法,有限域内积表法等等。So,正交测试本身是很复杂的算法,想要弄清楚来龙去脉,是需要很强的抽象代数的功底的。好在正交表的构造过程可以通过工具――Minitab来实现。

图1             图2

图3             

图4

图5

最后说的话

    在科学实验中,正交是一种普遍应用的方法。虽然这个算法本身有些复杂,但是从我们使用的层面上来讲,正交表是很简单的。

    在人力和时间允许的情况下,若测试要求比较高,我们应该尽可能多的覆盖所有情况然而,在资源比较紧张的情况下,我们可以从大量的测试用例中选取有代表性的来测试,也就是利用正交表来减少测试用例数。

501°/5017 人阅读/0 条评论 发表评论

登录 后发表评论