要点:
将多个输入参数进行全排列组合,依据这些组合来设计测试。举个简单的例子,有一个程序需要从1.0升级到2.0,需要让测试工程师模拟不同的测试环境来充分检验这种升级安装过程是否能顺利进行。假设:
- 需要在Windows 2000/xp/2003 server/vista这4种操作系统上进行测试。
- 要兼容5种浏览器IE8/7/6/5,Firefox。
- 操作系统语言要支持三种语言English,German,CHS。
- 目标机器上可能已经安装了CLR或者还没有安装CLR(假设我们的程序基于.NETFramework 2.0开发)。这是两种情况。
最后将得到4*5*3*2*2=240种可能的组合。
心得:根据错误模型发现,值的互相组合是缺陷的最主要来源,绝大多数缺陷都源于结对参数的组合。由三个或者多个参与的组合而导致的缺陷不占大多数(Very few defects occur in triplet + combination)。
所以,我们可以只专注在成对组合(pair-wise),即以两个两个为主来进行组合设计。首先,每个参数的每种状态都至少测试一次(Each state of each parameter is tested at least once);然后,不同类型中的参数要与其他类型中的参数进行结对测试(Each variable in each parameter is tested in a pair with every variable in other parameters. Pairs of variables test exist in other combinations can be dropped from the matrix of combinations.)
很明显这种大规模的,不管是全组合还是成对组合,在现实的测试环境下得到的数量都是十分惊人的,而且一次次重复不同的环境组合是一个十分费力和容易出错的工作,基本上无法用手工来完成,所以往往借助工具来生成这种组合。

0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.