结对测试算法性能优化(用例设计层面)

在《结对测试算法性能优化(代码层面)》一文中,

对原来算法代码进行了一些优化,

对于笛卡尔积后千条数据,是能满足使用需要的。

但在实际业务中,会碰到百万数据。

比如某接口共18个参数,每个参数均可为空,其中8个只需要单个值,10个为多选项,需要多个值。

对于多选项,我的设计是,全选+随机n个多选(1<=n<=len-1)+空。

按照这个策略,笛卡尔积的结果就是3^8*2^10=6718464。

671万数据!

parewise根本处理不动。

该怎么处理?

调整用例设计。

1、为空的情况,单独一条用例,即可以为空的,全部设置为空。parewise就不考虑为空的情况了。

3^82^10就变成了2^81^10=256,一下量级骤减。

2、视需要添加特殊的参数组合。

即使这样优化了,也会产生几十种组合。

假如接口本身响应慢,那么脚本执行的耗时就比较长。

遇到上线前回归,等待,是一件很痛苦的事。

该怎么处理?

还是回到用例设计。

在开发阶段,跑几十种组合的脚本,从时间成本来看是完全可以接受的。

在上线阶段,时间紧迫,就会显得效率有些低。

而实际上,上线前回归阶段更像是一种冒烟。

是可以适当降低覆盖度,提供效率的。

于是解决方案就是,把parewise扩展为两种模式

def parewise(dx, mode=2):
    """
    :param dx:
    :param mode: 1开发 2上线
    :return:
    """

开发模式:就完完整整返回结果

上线模式:从结果当中,随机返回1条用于快速冒烟

当然,如果是回归要测修改引入,建议还是多花点时间,老老实实跑开发模式比较好。

原文地址:https://www.cnblogs.com/df888/p/10912200.html

时间: 2024-10-29 04:23:14

结对测试算法性能优化(用例设计层面)的相关文章

结对测试算法性能优化(代码层面)

在<接口自动化测试框架-AIM>这篇博客中,提到了parewise算法. 这次对其进行性能优化,共3点. 一. 因为笛卡尔积和两两拆分,是有序的. 就保证了两两拆分后的每列都是相同位置的元素. 所以在比较时,不用跨列去比较. 只需要比较同一列的值就可以了. flag = False for j2 in range(len(s2[i2])): if s[i][j] == s2[i2][j2] and j == j2: t = t + 1 flag = True break if flag: br

App的网络环境测试和性能优化

1. 网络环境测试一般是先用网络损伤模拟仪或mock工具模拟常见的七种损伤和5种网络环境,然后再国内外城市采样的方式(带宽和延时)组合测试生成报告, 下面是一些统计图 2. 采样点的选择一般都是根据自己server收集的用户信息.如果新app就要参考近品/竞品或第三方的统计数据拍脑袋 3. 从测试的角度,应该建立实时监控的web portal.其实测试的目的除了保证产品发布的质量.更重要的是为优化提供依据,所以report最后一部分都是issue list 和optmize advice,当然测

java架构师大型分布式综合项目实战,高并发,集群,高可用,程序设计,性能优化,架构设计,负载均衡,大数据量

* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat

Android性能优化典例(一)

在Android开发过程中,很多时候往往因为代码的不规范.api使用不恰当.控件的使用场景考虑不全面和用户不恰当的操作等都能引发一系列性能问题的,下面就是我目前整理的一些Android开发过程中需要注意的细节,正所谓一颗老鼠屎可以坏了一锅粥,细节决定成败 下面就是一些性能优化的方案: 1.Android中别使用enum,使用static final 代替枚举enum,因为使用enum比使用static需要消耗更多的内存空间 2.Toast中使用getApplicationContext()来代替

安全测试:概述和用例设计

参考内容:<质量全面监控:从项目管理到容灾测试> 一.安全测试概述 定义:安全测试是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程. 概念:安全测试是检查系统对非法侵入渗透的防范能力. 准则:理论上来讲,只要有足够的时间和资源,没有无法进入的系统.因此,系统安全设计的准则是使非法侵入的代价超过被保护信息的价值. 目标:通过对系统进行精心.全面的脆弱性安全测试,发现系统未知的安全隐患并提出相关建议,确保系统的安全性.安全性一般分为应用程序级别和系统级别,区别如下: 应

Oracle AWR性能优化一例

有一个批处理程序运行超过24小时仍然不能完成,采集了程序运行期间的AWR报告如下. 由上可以看到,该系统为AIX的单实例数据库,采样时长1319.96 分钟,DB time 1532.15分钟. 看一下TOP等待事件: 可以看到有非常高的DB file scattered read等待事件,该等待事件表示将大量的数据块读入到不连续的内存区域,往往预示着大的全表扫描.在程序运行期间,查看ASH动态视图v$active_session_history,同样可以发现发生着大量的DB file scat

RFC2889转发性能測试用例设计和自己主动化脚本实现

一.203_TC_FrameRate-1.tcl set chassisAddr 10.132.238.190 set islot 1 set portList {9 10} ;#端口的排列顺序是port1, port2 set ipList {10.0.0.3 20.0.0.3} ;#ip列表与port的排列顺序相相应 set macList {00-00-00-00-00-01 00-00-00-00-00-02} set gwList {10.0.0.1 20.0.0.1} set iFr

Android性能优化典例(二)

1.使用 Maven 依赖方案取代使用导入jar包方案 假设项目中须要用到第三方jar包.经常使用的做法是去网上下载后然后放入libs目录,再加入到项目依赖,只是,在Android Studio已经不推荐使用这套做法了,由于假设jar有更新.那么每次都要去下载最新版本号然后删除历史依赖再加入新版本号的依赖,这样做非常繁琐.而在Android Studio中,这个问题使用Maven已经非常好的攻克了,由于AS中默认的是jcenter中央库,而jcenter默认会同步Maven中央库,所以我们能够使

Java程序性能优化——设计优化

原文出自:http://blog.csdn.net/anxpp/article/details/51914119,转载请注明出处,谢谢! 1.前言 OK,之前写了一篇文章:"23种设计模式介绍以及在Java中的应用"详细介绍了如何将设计模式应用到Java编程中,而本文旨在介绍如何利用他们优化我们的程序,使其性能更佳. 设计模式的详细介绍请参照上面链接中的文章,不是本文的重点. 而Java程序的性能优化,不一定就仅仅是以提高系统性能为目的的,还可能是以用户体验.系统可维护性等为目的. 2