一、关于”好的“测试用例
  在设计测试用例的时候有多种设计方法和策略可以使用,使得测试用例设计得更丰富,尽可能覆盖到更多的程序路径和功能场景。常见的测试用例设计方法被提到多的是等价类划分、边界值分析、错误推断法等,而且在常规思路中希望测试用例越全面越完整越好。但是在复杂测试问题场景中,设计出完整全面的测试用例不是不可能,但是数量巨大的测试用例往往严重降低了测试效率,甚至可以说不是很好的用例设计。从我自己的经验,作为一名测试新手,开始设计测试用例的时候希望做到”全面“,眼花缭乱的用例乍一看很是惊艳,可是真正测试起来便知其效率有多低下、冗余有多繁杂。因而,设计出全面完整的测试用例不是难事,难在如何将用例做减法。也是说,如何用尽可能少的测试用例覆盖到更多的程序路径和功能场景,这才算是一份‘好的”的测试用例。
  二、关于PairWise策略
  PairWise(又称全对偶)策略是组合测试中的一种设计测试用例的方法,在很早之前被提出,且被多项文章和实验证明是成效显卓。为了更好地理解PairWise,我们先假设一个常见的测试场景。假如我们测试公司电脑能够正常打印,需要测试两个因素,操作系统和打印机类型。假设操作系统有win7、mac、win8三个,打印机类型有EP、HP两种。我们此时设计一下测试用例:

  假如此时我们再增加一个测试因素,打印类型(打印单面、打印双面两个值),按照“全面”的测试用例设计方法,此时我们的测试用例个数达到6*2=12个,当然这也可以接受。

  但是我们考虑到这其中有冗余的情况,比如7号测试用例win7-HP这两个因素组合的情况已经由1号测试用例测试过了,且7号测试用例HP-双面这两个因素的组合也会由8号测试用例测试。因而7号测试用例是多余的,因为它可能发现的bug,1号和8号完全可以测试出来。按照这个思路,我们需要的是在一组测试用例中能够保证至少一个用例中的每个其他变量的每个取值都配对过。这样的话我们只要6个测试用例够了:

  事实上,如果这三个参数中的某两个参数的值的任意不同的组合会触发一个bug的话,那表格上的那组测试用例也可以发现该bug。
  相对于所有组合情况来说,PairWise的测试效率要高很多。例如,如果你想测试10个参数且每个参数都有26个值的功能,所有组合情况将导致存在141167095653376个测试用例。而PairWise测试法只要测试1094个测试用例可以。因而善于利用PairWise设计测试用例,可以利用较少的测试用例覆盖尽可能全的测试路径。