当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于采集回放的软件测试方法和系统技术方案

技术编号:26790651 阅读:46 留言:0更新日期:2020-12-22 17:05
本发明专利技术公开了一种基于采集回放的软件测试方法和系统,该测试方法包括:采集客户端对用户请求进行数据采集、脱敏和上传;数据处理器对采集的数据进行接收、解析、建模和存储;推荐引擎将采集的海量数据,根据业务模型和数据特征转化为精简的测试用例;回放触发器向测试系统发送批量测试任务,并回收用例运行结果。采集客户端采集的数据包,包含入口请求的入参、返回值和全部对外依赖的出入参;回放客户端可以直接使用采集的数据包,不需要人工干预和外部依赖即可自动执行测试。通过使用这种软件测试方法,大幅降低了测试用例的构造成本,提高了测试有效性和确定性,提升了软件的质量和稳定性,加速了软件开发周期。

【技术实现步骤摘要】
一种基于采集回放的软件测试方法和系统
本专利技术属于软件测试领域,尤其涉及一种基于采集回放的软件测试方法和系统。
技术介绍
随着互联网的快速发展,用户对软件系统的质量要求越来越高,系统需要时刻提供稳定的服务。软件正式发布之前,软件开发商必须通过完整的回归测试,保证新发布的软件版本,不对提供的现有服务造成不良影响。但是随着软件系统规模越来越大,需要回归的业务场景范围也越来越大,回归的场景达到了几万甚至更多。手工测试不能满足执行效率的要求;常规的自动化手段在用例构造成本较高,其执行的稳定性也不能满足高频回归高频发布的需要,从而影响软件的开发效率和发布质量。在现有的软件测试过程中,具体存在以下缺陷:(1)测试人员必须通过编写测试用例从而进行自动化验证。虽然当测试用例编写完成后,即可进行自动化执行,但是为每种测试场景单独编写用例,其测试设计成本和编码成本,都需要专业测试人员耗费大量人工时间和精力。现有代码织入方案需要在业务代码内增加代码或配置,对业务系统代码有侵入。(2)由于测试用例的编写成本和编写门槛比较高,因此测试用例常出现的问题是覆盖场景不够丰富,容易出现测试遗漏。(3)测试用例的执行是单任务单线程的,执行效率较低,测试人员需要等待较长时间才能获取到用例的执行结果。另外由于测试环境比较复杂,测试用例不一定能准确地在部署了测试代码的机器上运行,测试人员需要反复检查,同样也耗费大量的时间成本。(4)自动化测试用例执行,会发生中间件调用,这样就会对外部数据和外部系统造成依赖,使测试用例的执行不够稳定,经常会因为外部数据的状态变化或外部系统的变化,导致用例运行不符合预期或不能及时发现问题。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于采集回放的软件测试方法和系统。本专利技术的目的是通过以下技术方案来实现的:一种基于采集回放的软件测试系统,所述系统包括:采集客户端:对用户请求进行数据采集、脱敏和上传;数据处理器:对采集的数据进行接收、解析、建模和存储;推荐引擎:将采集的海量数据,根据业务模型和数据特征转化为精简的测试用例;回放执行引擎:向测试系统发送批量测试任务,并回收用例运行结果,生成测试报告。进一步地,采集客户端随应用生产阶段部署,通过接口读取应用采集配置信息,在入口、指定方法和中间件方法接口处,使用字节码增强技术进行动态代码插桩,在用户请求中,同步记录请求的出入参、外部系统调用的入参和返回值,组装成数据包;异步地对数据包的数据进行脱敏和加密处理,脱敏处理去除业务敏感或用户隐私信息,加密处理对采集的数据包进行数据保护;对脱敏和加密后的数据,异步通过websocket或消息中间件,将数据包上传至系统服务端。进一步地,数据接收器接收来自采集客户端上传的数据,包括消息接收和通过websocket上传的数据;数据解析引擎包含对加密数据进行解密,并解析为业务规则和标签规则可识别的模型对象;建模引擎对模型对象进行规则识别和标签解析,为数据构建业务索引;存储器包含索引存储和数据存储两部分,分别保存数据的业务索引和原始数据包数据。进一步地,推荐引擎精简数据,包含多种精简粒度:代码行、执行方法、业务特征、数据特征,这些粒度可以独立存在或者相互叠加。进一步地,回放执行引擎随应用测试阶段部署,通过接口读取应用回放配置信息,在入口、指定方法和中间件方法接口处,使用字节码增强技术进行动态代码插桩,用于使用采集数据包进行回放;回放执行引擎能够批量触发用例或者数据的回放,能够回收回放执行产生的差异报告,并在web页面上进行聚合展示。一种基于上述基于采集回放的软件测试系统的软件测试方法,在应用启动中或启动完成后,使用字节码增强技术进行代码插桩,用于请求数据采集或数据回放;通过人工或自动生成的业务规则,识别数据包中的业务含义;根据业务模型和数据特征,将线上采集的海量数据,人工或自动转换为精简的测试用例集合;代码或者配置发生变更时,可以使用存量的测试用例集合对已有业务进行快速完整的自动化测试回归。进一步地,请求数据采集具体为:当线上流量请求进入入口方法插桩的切面,克隆入口方法调用的入参;当请求执行到指定方法或中间件方法插桩的切面,克隆方法调用的入参和返回值;当线上流量请求完毕,克隆入口方法调用的返回值;将以上克隆得到的数据打包成数据包,压缩后传输至服务端;回放的过程具体为:回放请求使用采集数据包的入口方法入参作为调用参数,调用入口方法;回放请求执行到指定方法或中间件方法插桩的切面,使用采集数据包中的返回值作为返回值;回放请求执行完毕,克隆本次方法调用的返回值;将本次方法的返回值,与采集数据包中的返回值进行对比,比较其中的差异字段,生成差异报告。进一步地,通过人工或自动生成的业务规则,识别数据包中的业务含义,具体为:通过暴露的webSocket接口或者消息中间件,接收采集客户端上传的数据包;对采集的数据包依次进行解压、解密、反序列化,解析为业务规则和标签规则可识别的模型对象;对这些对象进行规则识别和打标,放入模型库。进一步地,根据线上采集的模型特征库,对采集流量进行去重,测试用例集为采集数据的精简集;模型特征可以包含:数据包的结构特征和业务规则特征等维度,可以选择一种或多种维度。进一步地,当代码或者配置发生变更时,测试用例能够执行回放,测试用例在回放后,自动对比采集数据运行结果和回放运行结果的差异,并自动产生差异报告。本专利技术的有益效果是:本专利技术由采集客户端在业务系统内进行动态注入,采集生产环境用户请求的数据包,通过数据处理器对采集的数据进行接收、解析、建模和存储,由推荐引擎将线上采集的海量数据转换为精简的测试用例,在测试环境,利用回放执行引擎向被测试系统批量发送测试任务,由回放客户端进行测试执行,并回收运行结果来实现的。本专利技术通过数据采集的方式,免除了测试用例的构造和编写成本;使用推荐引擎,降低了业务建模和测试用例去重的成本;回放执行引擎,通过并发、定向执行的方式,大幅降低了用例的执行和校验成本。在采用该基于采集回放的软件测试方法的整个过程中,大大减少了人工的参与,节约了测试的时间。本专利技术大幅降低测试用例的构造成本,提升了执行效率和用例的稳定性。附图说明为了更清楚的说明本专利技术的实施例中的技术方案,下面将对本专利技术实施例描述中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的基于采集回放的软件测试方法的流程示意图;图2为本专利技术实施例提供的基于采集回放的软件测试方法的采集过程流程图;图3为本专利技术实施例提供的基于采集回放的软件测试方法的回放过程流程图;图4为本专利技术实施例提供的基于采集回放的软件测试方法的用例精简过程图;图5为本专利技术实施例提供的基于采集回放的软件测试系统的结构方框图。具体实本文档来自技高网
...

【技术保护点】
1.一种基于采集回放的软件测试系统,其特征在于,所述系统包括:/n采集客户端:对用户请求进行数据采集、脱敏和上传;/n数据处理器:对采集的数据进行接收、解析、建模和存储;/n推荐引擎:将采集的海量数据,根据业务模型和数据特征转化为精简的测试用例;/n回放执行引擎:向测试系统发送批量测试任务,并回收用例运行结果,生成测试报告。/n

【技术特征摘要】
1.一种基于采集回放的软件测试系统,其特征在于,所述系统包括:
采集客户端:对用户请求进行数据采集、脱敏和上传;
数据处理器:对采集的数据进行接收、解析、建模和存储;
推荐引擎:将采集的海量数据,根据业务模型和数据特征转化为精简的测试用例;
回放执行引擎:向测试系统发送批量测试任务,并回收用例运行结果,生成测试报告。


2.根据权利要求1所述基于采集回放的软件测试系统,其特征在于,采集客户端随应用生产阶段部署,通过接口读取应用采集配置信息,在入口、指定方法和中间件方法接口处,使用字节码增强技术进行动态代码插桩,在用户请求中,同步记录请求的出入参、外部系统调用的入参和返回值,组装成数据包;异步地对数据包的数据进行脱敏和加密处理,脱敏处理去除业务敏感或用户隐私信息,加密处理对采集的数据包进行数据保护;对脱敏和加密后的数据,异步通过websocket或消息中间件,将数据包上传至系统服务端。


3.根据权利要求1所述基于采集回放的软件测试系统,其特征在于,数据接收器接收来自采集客户端上传的数据,包括消息接收和通过websocket上传的数据;数据解析引擎包含对加密数据进行解密,并解析为业务规则和标签规则可识别的模型对象;建模引擎对模型对象进行规则识别和标签解析,为数据构建业务索引;存储器包含索引存储和数据存储两部分,分别保存数据的业务索引和原始数据包数据。


4.根据权利要求1所述基于采集回放的软件测试系统,其特征在于,推荐引擎精简数据,包含多种精简粒度:代码行、执行方法、业务特征、数据特征,这些粒度可以独立存在或者相互叠加。


5.根据权利要求1所述基于采集回放的软件测试系统,其特征在于,回放执行引擎随应用测试阶段部署,通过接口读取应用回放配置信息,在入口、指定方法和中间件方法接口处,使用字节码增强技术进行动态代码插桩,用于使用采集数据包进行回放;回放执行引擎能够批量触发用例或者数据的回放,能够回收回放执行产生的差异报告,并在web页面上进行聚合展示。

<...

【专利技术属性】
技术研发人员:陈琴赵红艳邓水光
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1