正交测试方法的探索与实践

2018-08-02   出处:大商所行业测试中心  作/译者: 大连飞创  

摘 要:对于多变量组合类的测试,可选择的一种测试方法就是测试所有变量的笛卡儿积,这种方法是所有变量、所有取值的完全组合,是最全面的测试。但是,在变量多的情况下这是最不可能实现的方法,所以我们要选择一种方法,既可以测试出大部分的缺陷,又能够极大的缩短测试时间。本文对正交测试方法进行研究,以覆盖所有变量的组合得到最小的测试集,达到提高测试效率的目的

一、正交测试方法概述
正交测试方法是研究多因子多水平的一种测试方法,它是根据正交性从全面测试中挑选出部分有代表性的点进行测试,这些有代表性的点具备了“均匀分散,齐整可比”的特点。正交测试方法是使用正交表进行测试设计。
1、什么是正交表
正交表是将正交测试选择的水平组合列成的表格针对某一因子的任意一个水平(因子的取值), 其他因子的全部水平(任意的两两因子之间)各出现相同次数的表。因子是指每一个变量;水平是指每一个变量的取值。
正交表是基于两两组合,依据的前提是“缺陷大部分发生在因子两两组合的情况下,三个因子组合导致的缺陷并不多见”。
以L8(27)为例,A、B、C、D、E、F、G是7个因子,因子对应的列显示的{1,2}叫做水平,针对A因子的水平“1”,B、C、D、E、F、G因子的水平“1”、“2”各出现两次。

2、正交表生成测试用例的流程
使用正交表进行用例设计时,要依据查询条件的个数来确定因子、水平数,从而选择合适的正交表来生成测试用例,具体的流程如下图所示:

                                      图一:正交表生成测试用例的流程

                     

二、正交表测试方法分析
进行正交表测试方法分析之前,先对比一下正交表与常用的组合测试方法的优劣性;目前常用的组合测试方法有笛卡儿积(全组合)和Pairwise(成对测试法),对比的情况如下:

表二:测试方法的优缺点对比说明
为了更好的说明以上三种方法的优劣性,以前文的27(有A、B、C、D、E、F、G 7个因子,每个因子有2水平)为例来对比三种测试方法生成的用例数量。
按照笛卡儿积全组合的方法,则需要2×2×2×2×2×2×2=128个测试CASE;
按照Pairwise测试方法则有84个测试CASE:AB、AC、AD、AE、AF、AG、BC、BD、BE、BF、BG、CD、CE、CF、CG、DE、DF、DG、EF、EG、FG,21种两两因子组合,每个因子有2水平,因此每种组合有2×2=4个CASE,21×4=84个;
按照L8的正交表,总共128个全组合的测试CASE、Pairwise的84个测试CASE减少为8个。
综上所述,当因子水平数很多时,使用正交表测试方法可以实现以最少的测试用例数达到与大量全面测试等效的结果,是一种高效率的测试方法。

                       

三、正交表在组合测试方法中的实践
正交表测试方法特别适用于因子、水平数较多的功能,可以使设计的测试用例不是很多但又能全面覆盖到需求。场下业务诸如数据整合平台、监察系统等,通常功能页面的查询条件很多很复杂,这种情况下就可以考虑使用正交表法。下文以数据整合平台的个体做市商成交量情况为例,具体说明标准与非标准正交表的使用方法。

(一)标准正交表的测试设计方法
业务需求:查询个体做市商成交量情况分析。
根据<品种>=“全部、具体品种”进行查询;
<日期区间>=“当前交易日、历史交易日、当前到历史交易日”进行查询;
<统计条件>=“市场、品种、合约”进行查询;
<客户区域>=“境内、境外、港澳台”进行查询;
<合约类型>=“做市合约、近月合约、全部合约”进行查询;
<交易时段>=“交易日、日盘、夜盘”进行查询;
<频率>=“日、月、全部时间段”进行查询;
<格式>=“HTML、EXCEL、PDF”进行查询;
分析上述业务需求,有混合正交表,于是用正交表测试法得出8个被测因子,除第一个因子有两个水平之外,其余的因子都是三个水平,对于此1因子2水平与7因子3水平的刚好可以使用L18(2137)的18个测试用例如下:

                                       表三:各因子水平说明(标准)

                                   表四:标准正交表生成的测试用例集
(二)非标准正交表的分配
很多情况下,查询条件的因子数和水平数无法找到标准的正交表进行套用,则找到与因子数与水平最接近的正交表。
1、按照因子所持有的水平数确定分配因子的栏数。
因子数少于表格栏数的情况,针对空因子的水平,全部输入“e”。但是,因为实验次数相同,使用e是有损失的。
2、在各个因子的水平栏内,分配各个水平。
水平数少于表格中的水平栏数的情况,将分配过的水平再次分配。使用更希望验证的水平等,作相应调整。如下的例子中,表中的因子数≥7,有两个因素的水平数为2,其余4个的因子数为3。因此可选用的最接近的正交表是L18(2137)

                                   表五:各因子水平说明(非标准)
e3使用更希望验证的“统计条件”的水平替换,如“近月合约”;缺少的因子以empty替代,同样生成18条测试用例。

                                   表六:非标准正交表生成的测试用例集

                

四、后续研究方向
如果功能页面的因子水平数可以完全匹配现有的正交表模板,那么测试用例的设计就相对简单很多;但是,在没有现成的正交表模板可以参照的情况下,由于正交表的复杂多样性,不同的人在选取正交表和调整用例的过程中,会生成不同的测试用例,怎样形成统一的用例规范以及如何将正交表适用于我们正在使用的测试设计方法中,是现在还未攻克的难题,因此需要进一步的研究,寻求合适的解决方法,研究成果以后会继续向大家展示。

                

参考文献
[1] 铁军.全因子分析[J].试验设计与数据处理,2009,10(1).
[2] 赵丹.正交试验设计.
https://wenku.baidu.com/view/0bc2128cfab069dc51220127.html
[3] 肖驰.正交设计法在软件测试中的应用https://wenku.baidu.com/view/18d6daab700abb68a882fb29.html



欢迎给测试窝投稿或参与内容翻译工作,请邮件至editors@testwo.com。也欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,并与我们的编辑和其他窝友交流。
205°|2054 人阅读|0 条评论

登录 后发表评论
最新文章