Pairwise算法

正交分析法进行软件测试的时候,会生成很多的测试用例。
假设有三个维度,每个维度有两个因子,如果用正交分析法会生成8个测试用例,这只是在维度和因子数很小的情况下,实际测试时维度数和因子数较大会产生很多很多的测试用例,为了提高效率需要对正交法产生的测试用例进行取舍。

pairwise的假设

  1. 每个维度都是正交的
  2. 根据数学统计分析,73%的缺陷是因为单因子和双因子产生,19%的缺陷是3因子相互作用产生。
    因此,pairwise基于覆盖所有2因子的交互作用产生的用例集合性价比最高而产生的

pairwise算法

假设现在有3个维度:

  1. 浏览器:Firefox, Chrome
  2. OS: Linux, Windows, IOS
  3. 语音: zh-CN, English

现在用正交分析法,会产生12个测试用例:

  1. FLZ
  2. FLE
  3. FWZ
  4. FWE
  5. FIZ
  6. FIE
  7. CLZ
  8. CLE
  9. CWZ
  10. CWE
  11. CIZ
  12. CIE

现在使用pairwise算法对测试用例进行取舍:
从第12个测试用例开始,两两组合CI、CE、IE,如果其它测试用例出现过这三个两两组合就可以舍去第12个测试用例。
- 11出现CI,10出现CE, 6出现IE,所以可以删除12。
- 第11个测试用例因为有CI这个组合,而其它测试用例没有出现这个组合所以保留
- 第10个测试用例的cw在第9个,CE在第8个,WE在第4个,第10个测试用例删除
- 第9个因为CW所以保留,第8个也保留因为CE,第7个因为CZ也保留
- 第6个保留(IE),第5个FI、FZ、IZ,在第6、3、11出现所以删除
- 第4个保留,第3个删除,第2个删除,第1个保留
所以剩下7个测试用例:

  1. FLZ
  2. FWE
  3. FIE
  4. CLZ
  5. CLE
  6. CWZ
  7. CIZ
    用这7个测试用例理论上可以覆盖73%的缺陷,可以提升效率。
posted @ 2022-07-24 22:05  店里最会撒谎白玉汤  阅读(934)  评论(0)    收藏  举报