使用正交法生成测试用例

574 阅读2分钟

常用的黑盒测试编写测试用例方法有很多:边界值分析、等价类划分、错误推断、场景法、因果图、功能图、判定表驱动法、正交实验法等。一般对于比较基础单一的测试常用边界值等价类较多,而当我们测试情况比较多时,正交的优势就会显现出来,本文将会对正交实验法进行介绍并举出实例。

正交实验法

正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。

正交表是一种特制的表格,一般用 Ln(mk)Ln(m^k) 表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数.可以这样理解: L试验次数(每个因素对应的情因素数L试验次数( 每个因素对应的情况^{因素数})

实例应用

假设网站现在对一个输入框字段添加一个数据类型的转变开关,原有数据类型是number,打开开关数据类型就更新为string类型,对于一个这个字段的更新操作,我们需要检测的情况为:

  • 原始的数据类型: number、string
  • 原始创建端 : portal( UI端)、api端
  • 开关状态:enable(打开)、disable(关闭)
  • 尝试更新的数据类型:number、string 如果我们不加整理直接尝试,那么要进行2* 2 * 2 * 2=16次测试。而如果我们使用正交实验法,可以获得每一种情况都尝试到的情况下尝试次数最少的方案L8(24)L8(2^4) ,即八条测试用例便可覆盖所有情况。

1629538808(1).png

一般情况下,数据越多,正交法的优势就越明显。它可以在保障覆盖率的情况下提供更少的工作量,大大节省了测试的人力成本、时间,提高工作效率。

工具

在实际应用的时候,因为我们无法保证每个因素点对应的情况数是统一的,很难找到正好合适的正交表格,所以一般会借助工具来生成正交实验测试用例。常用的软件为Allpairs,操作百度上有很多就不多做赘述。这里贴一个楼主在GitHub刷到的在线生成正交表的宝藏网站:正交测试用例生成工具 (orthogonal-array-test-online-tool.vercel.app)无广告 :-D支持单一水平正交表和混合水平正交表,复制到剪贴板的数据可以直接粘贴到 Excel 等表格工具~立刻收藏 !