
3、然后再将第二个参数和第四个参数的各个条件组合一次,如下图所示:

4、为了确保第四个参数跟第三个参数的各个条件都有一次组合,可以使用Excel提供的过滤功能来判断,例如下图中,很明显,两个参数没有一个完全组合:

5、解决方案很简单,只需要再添加两行,将两个参数中没有组合的条件各自组合一次好了(当然,你也可以将第四个参数的条件稍微调整一下达到相同的目的):

自动化步骤
上面的工作还是有点繁琐,实际上早已有人将这个过程自动化了,这里介绍一个免费开源的工具allpairs.exe,请于下面这个链接里下载:http://www.satisfice.com/tools/pairs.zip
对于上面的例子,使用allpairs生成组合的方式是:
1、先将上面的条件输入到Excel里,如下图所示(因为这个工具是老外写得,没有考虑支持中文的问题,所以最好全部用英文表示):

2、将Excel文件保存为以Tab键作为分隔符的文本文件:

3、然后使用allpairs.exe处理这个文件:
allpairs.exe test.txt > output.txt
4、在output.txt里,PAIRING DETAILS下面的东西都是没有用的,可以直接删掉,删掉以后,结果如下:

你可以在设计测试环境矩阵还有组合测试用例的时候使用allpairs这个技术,当然,你不能完全依赖这个技术,除了allpairs组合的测试用例以外,你最好再根据测试覆盖率和用户场景覆盖率入手,补充更有价值的测试用例。
另外,使用配对测试的算法,我们有可能结合Behavior Driven Design技术,直接从需求自动生成测试用例,加之如果我们将基本的测试用例自动化以后,完全可以使用这个技术将自动化过的测试用例配对组合(当然需要加上一些限制条件),在节省测试时间的同时,达到满意的测试覆盖率,当然,这样做要求我们自己写一个测试工具来实现这个技术—至少到现在我还没有看到现成的工具,而且这个技术应该要比模型驱动测试更容易使用,因为模型驱动测试的问题是建模太困难。