【小专题】正交试验法设计测试用例

正交试验法设计测试用例

正交试验法设计工具:

1、正交设计助手

2、AllPairs

3、python(本质是使用AllPairs)

先看一个案例:

假设一个web系统,需要做兼容性测试,该系统兼容不同操作系统、数据库和web服务器软件,并且客户端有许多的浏览器:

>浏览器:Firefox、IE、Google Chrome
>数据库:MySQL、Oracle、DB2
>应用服务器:nginx、Apche、Tomcat
>操作系统:Windows Server、Unix、Linux

分析

4因素3水平实验:全面实验需要81条用例,而正交实验只需要9条用例

全面实验:
3 4 = 81 3^{4}=81 34=81
正交实验:
L 9 ( 3 4 ) L_{9}(3^{4}) L9(34)

工具一>正交设计助手

在这里插入图片描述
在这里插入图片描述

工具二—>Allpairs

1、根据需求在Excel中确定因素及每个因素的取值(水平)

2、新建txt文档,将取值表数据直接复制粘贴到txt中,并保存

在这里插入图片描述

3、将步骤2的文件放到Allpairs安装的文件路径下

在这里插入图片描述

4、打开cmd命令行工具,进入Allpairs解压后所在的路径,

输入allpairs.exe test.txt>test2.txt,然后回车

在这里插入图片描述

6、打开Allpairs文件路径,就可以看到新生成的正交表文件test2.txt了

就是不知道为什么Allpairs生成的用例多了一条,可能是我下载的版本问题

如果因素和水平符合标准的正交表,建议使用正交设计助手,如果水平没有那么规范,建议使用Allpairs

工具三—>python

1、导allpairspy包实现AllPairs功能

from allpairspy import AllPairs
 
parameters = [
    ["Firefox", "IE","Google Chrome"],
    ["MySQL", "Oracle", "DB2"],
    ["nginx", "Apche", "Tomcat"],
    ["Windows Server", "Unix", "Linux"]
]
 
print("测试用例:")
for i, pairs in enumerate(AllPairs(parameters)):
    print("用例编号{:2d}: {}".format(i+1, pairs))

在这里插入图片描述
2、过滤,用python输出测试用例的好处是能够过滤不需要的用例
例如公司开发资源不足,项目负责人确定第一个版本不需要支持Iinux系统在ie中的兼容性时,将不需要的用例直接过滤掉

from allpairspy import AllPairs

def is_valid_case(row):
    n = len(row)
    # 设置过滤条件
    if n > 3:
        # 不需要支持Iinux系统在ie中的兼容性
        if "IE" == row[0] and "Linux" == row[3]:
            return False
    return True


parameters = [
    ["Firefox", "IE","Google Chrome"],
    ["MySQL", "Oracle", "DB2"],
    ["nginx", "Apche", "Tomcat"],
    ["Windows Server", "Unix", "Linux"]
]


 
print("测试用例:")
for i, pairs in enumerate(AllPairs(parameters, filter_func=is_valid_case)):
    print("用例编号{:2d}: {}".format(i+1, pairs))

在这里插入图片描述
3、使用OrderedDict,可以将结果存储到nametuple数据结构中

from collections import OrderedDict
from allpairspy import AllPairs

def is_valid_case(row):
    n = len(row)
    # 设置过滤条件
    if n > 3:
        # 不需要支持Iinux系统在ie中的兼容性
        if "IE" == row[0] and "Linux" == row[3]:
            return False
    return True


parameters = OrderedDict({
    "浏览器":["Firefox", "IE","Google Chrome"],
    "数据库":["MySQL", "Oracle", "DB2"],
    "应用服务器":["nginx", "Apche", "Tomcat"],
    "操作系统":["Windows Server", "Unix", "Linux"]
})


 
print("测试用例:")
for i, pairs in enumerate(AllPairs(parameters, filter_func=is_valid_case)):
    print("用例编号{:2d}: {}".format(i+1, pairs))

在这里插入图片描述

学习链接:
Python好酷|allpairspy一款高效的正交实验法生成用例工具:https://blog.csdn.net/csd11311/article/details/116901192

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值