正交实验法是研究多因素多水平的一种设计方法,它依据 Galois理论从全面实验中挑选出部分具有代表性的水平组合进行实验,并对结果进行分析从而找出最优的水平组合。
因子状态表

因子1 因子2 因子3 因子4 ……. 因子N
状态1
状态2
状态3
…….
状态m

因子状态https://www.york.ac.uk/depts/maths/tables/orthogonal.htm

  • 3因子2状态

image.png

  • 7因子2状态

image.png

  • 4因子3状态

image.png

  • 11因子2状态

image.png

  • 8因子3状态

image.png

一、提取功能说明,构造因子-状态表

  • 举例:淘宝购物-搜索宝贝条件
  • 评 价:好中差
  • 价格范围:100以下100-199200-299
  • 所 在 地:北上广
  • 包 邮:包邮不包邮

通过提取得出因子状态表

因子/状态 评价 价格范围 所在地 包邮
状态1 100以下 包邮
状态2 100-199 不包邮
状态3 200-299 广

二、加权筛选,生成因素分析表

计算各个因子和状态的权值,删除一部分权值较小,计重要性较小的因子或状态,使最后生成的测试用例集缩减到允许的范围。

  • 举例:如果用户定义为富二代,那么对于该用户群体,价格的权重占比较小,并且对于所有用户来说评价差评的不用户选择范围所以得到大概权值
  • 评价:好中差(30%)
  • 价格范围:100以下,100-199,200-299(5%)
  • 所在地:北上广(30%)
  • 包邮:包 不包(25)
  • 通过分析获取到新的因子状态表 | 因子/状态 | 评价 | 所在地 | 包邮 | | —- | —- | —- | —- | | 状态1 | 好 | 北 | 包邮 | | 状态2 | 中 | 上 | 不包邮 | | 状态3 |
    | 广 | |

三、利用正交表构造测试数据集

1.如果各个因子的状态数是不统一的,几乎不可能出现均匀的这情况,必须首先用逻辑命令(与、或、非)来组合各个因子的状态,做出布尔图
2.根据布尔图查找最接近的相应阶数的正交表
3.已招因果图上根节点到叶节点的顺序逐步替换正交表上的中间节点,得到最终的正交表

  • 举例说明,将所在地用逻辑命令来组合因子得到因果图 | 因子/状态 | 评价 | 所在地 | 包邮 | | —- | —- | —- | —- | | 状态1 | 好a1 | 北b1 | 包邮c1 | | 状态2 | 中a2 | 上b2 | 不包邮c2 | | 状态3 |
    | 广b3 | |

05.正交实验法介绍 - 图6
通过分析得出最终因子状态表

因子/状态 评价 所在地 包邮
状态1 a1 12 c1
状态2 a2 b3 c2

四、利用正交表每行数据构造测试用例

image.png

Experiment a(评价) b(所在地) c(包邮)
1 a1 b1 c1
2 a1 b2 c2
3 a1 b3 c2
4 a2 b1 c1
5 a2 b2 c1
6 a2 b3 c2
  • 得出最终测试用例 | Experiment | a(评价) | b(所在地) | c(包邮) | | —- | —- | —- | —- | | 1 | 好评 | 北 | 包邮 | | 2 | 好评 | 上 | 不包邮 | | 3 | 好评 | 广 | 不包邮 | | 4 | 中评 | 北 | 包邮 | | 5 | 中评 | 上 | 包邮 | | 6 | 中评 | 广 | 不包邮 |

五、可使用工具,转为用例

Orthogonal Arrays
allpairs.7z

因子/状态 评价 所在地 包邮
状态1 包邮
状态2 不包邮
状态3
广

1.新建txt文件将表格内容复制到txt文件中
image.png
2.将txt文件放到allpairs文件夹下
image.png
3.该文件夹下输入cmd,按enter进入DOS命令界面
image.png
4.执行命令allpairs.exe 文件名 > 新导出的文件名

  1. 命令:allpairs.exe test.txt > test2.txt
  2. 输出:
  3. TEST CASES
  4. case 评价 所在地 包邮 pairings
  5. 1 包邮 3
  6. 2 不包邮 3
  7. 3 不包邮 3
  8. 4 包邮 3
  9. 5 广 包邮 2
  10. 6 广 不包邮 2
  11. PAIRING DETAILS
  12. var1 var2 value1 value2 appearances cases
  13. 所在地 评价 1 1
  14. 所在地 评价 1 2
  15. 所在地 评价 1 3
  16. 所在地 评价 1 4
  17. 所在地 评价 广 1 5
  18. 所在地 评价 广 1 6
  19. 所在地 包邮 包邮 1 1
  20. 所在地 包邮 不包邮 1 2
  21. 所在地 包邮 包邮 1 4
  22. 所在地 包邮 不包邮 1 3
  23. 所在地 包邮 广 包邮 1 5
  24. 所在地 包邮 广 不包邮 1 6
  25. 评价 包邮 包邮 2 1, 5
  26. 评价 包邮 不包邮 1 3
  27. 评价 包邮 包邮 1 4
  28. 评价 包邮 不包邮 2 2, 6

5.testcase为测试用例 其余元素删除即可,如果出现~ 代表选择任意一个即可