沙盒测试方法、装置、设备、介质和程序产品与流程
本申请涉及金融科技领域或其他领域,具体地涉及一种沙盒测试方法、装置、设备、介质和程序产品。
背景技术:
1、随着软件系统规模以及业务复杂度的不断提高,软件测试已成为保障交付质量的关键。
2、在主流的软件测试工程实践中,通常采用独立测试环境、生产环境直接验证以及数据虚拟化技术三种方案。其中,独立测试环境通过数据抽样或脱敏复制部分生产数据,但是因为数据完整性不足、同步延迟以及软硬件配置差异等问题,难以精准复现真实的业务场景,导致测试结果可靠性不高,并且其环境构建与维护成本较高;生产环境直连验证方式虽然能够保证数据完整性和真实性,但是存在数据污染风险,测试代码的误操作可能意外修改或删除生产数据,影响业务连续性;数据虚拟化技术采用数据虚拟化工具,在不移动数据的前提下提供对生产数据的只读访问,但对写操作的支持有限,无法覆盖完整的测试流程。
3、因此,亟需提供一种测试方法,以克服上述测试方式中存在的缺陷与不足。
技术实现思路
1、鉴于上述问题,本申请的实施例提供了一种沙盒测试方法、装置、设备、介质和程序产品。
2、根据本申请的第一方面,提供了一种沙盒测试方法,包括:响应于接收到测试请求,基于测试请求初始化沙盒环境,其中,测试请求至少包括待验证代码,沙盒环境为部署于目标运行环境内部的逻辑隔离区域,沙盒环境包含与目标运行环境中各数据库对象对应的镜像数据库对象;对待验证代码进行解析,获得操作指令类型以及操作指令类型对应的目标数据库对象;响应于目标数据库对象属于目标运行环境且操作指令类型为数据定义语言指令或非查询类数据操纵语言指令,将待验证代码中针对目标数据库对象的操作重定向至沙盒环境内的对应镜像数据库对象;在沙盒环境内执行重定向后的待验证代码,以返回测试结果。
3、根据本申请的实施例,对测试请求中的待验证代码进行解析,获得操作指令类型以及操作指令类型对应的目标数据库对象包括:对待验证代码进行词法分析和语法分析,获得抽象语法树;遍历抽象语法树中的各个节点,根据节点类型确定节点对应的操作指令类型;基于操作指令类型对应的语法规则,从抽象语法树中定位操作指令类型对应的目标数据库对象。
4、根据本申请的实施例,基于测试请求初始化沙盒环境包括:响应于待验证代码中包含对未发布数据库对象的引用,在沙盒环境内根据未发布数据库对象的结构定义信息创建对应的数据库结构;基于数据库结构,生成未发布数据库对象的虚拟视图;将待验证代码中对未发布数据库对象的引用标识符,重定向为虚拟视图的标识符。
5、根据本申请的实施例,该方法还包括:基于测试请求,生成与当前测试会话对应的临时角色,其中,临时角色具有目标运行环境内数据库对象的只读权限、以及沙盒环境内的镜像数据库对象的读写权限;获取测试请求的会话特征,将会话特征输入至预先训练的时序预测模型,获得预测运行时长,其中,会话特征至少包括请求类型特征以及待验证代码的复杂度特征,时序预测模型基于长短期记忆网络构建;将预测运行时长设置为临时角色的生存时间;响应于生存时间届满,将临时角色的权限进行撤销。
6、根据本申请的实施例,基于测试请求初始化沙盒环境包括:响应于当前测试会话结束,生成当前测试会话对应的变更集快照并存入快照存储库,其中,变更集快照至少包括重定向至沙盒环境的临时数据记录以及在沙盒环境内创建的未发布数据库对象的数据库结构;响应于接收到新测试请求,计算新测试请求与快照存储库中各变更集快照之间的相似度;基于相似度,从快照存储库中筛选出相似度满足预设阈值的多个变更集快照;将多个变更集快照按照时间顺序进行合并处理,生成复合快照;基于复合快照初始化新测试请求对应的沙盒环境。
7、根据本申请的实施例,该方法还包括:响应于当前测试会话结束,采集沙盒环境内由待验证代码触发的操作日志;对操作日志进行词法分析和语法分析,获得数据库对象访问序列;基于数据库对象访问序列,构建数据血缘图谱,其中,数据血缘图谱为有向图结构,节点用于表征数据库对象,边用于表征数据库对象之间的数据流转关系,边权重用于表征数据流转频次;基于数据血缘图谱和预设审计模板,生成结构化审计报告。
8、根据本申请的实施例,数据血缘图谱利用以下方式得到:从操作日志中提取数据访问记录,数据访问记录至少包含源数据库对象、目标数据库对象及操作转换规则,其中,操作转换规则为待验证代码对源数据库对象执行的数据操作类型;以源数据库对象为起点节点、以目标数据库对象为终点节点,构建有向边,其中,有向边的边属性包含操作转换规则;将多个有向边以及对应节点组合为数据血缘图谱。
9、根据本申请的第二方面,提供了一种沙盒测试装置,包括:沙盒环境初始化模块,用于响应于接收到测试请求,基于测试请求初始化沙盒环境,其中,测试请求至少包括待验证代码,沙盒环境为部署于目标运行环境内部的逻辑隔离区域,沙盒环境包含与目标运行环境中各数据库对象对应的镜像数据库对象;代码解析模块,用于对待验证代码进行解析,获得操作指令类型以及操作指令类型对应的目标数据库对象;重定向模块,用于响应于目标数据库对象属于目标运行环境且操作指令类型为数据定义语言指令或非查询类数据操纵语言指令,将待验证代码中针对目标数据库对象的操作重定向至沙盒环境内的对应镜像数据库对象;以及测试执行模块,用于在沙盒环境内执行重定向后的待验证代码,以返回测试结果。
10、根据本申请的第三方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,上述一个或多个处理器执行上述一个或多个计算机程序以实现上述方法的步骤。
11、根据本申请的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述方法的步骤。
12、根据本申请的第五方面,还提供了一种计算机程序产品,包括计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述方法的步骤。
1.一种沙盒测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对所述测试请求中的待验证代码进行解析,获得操作指令类型以及所述操作指令类型对应的目标数据库对象包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述测试请求初始化沙盒环境包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述基于所述测试请求初始化沙盒环境包括:
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述数据血缘图谱利用以下方式得到:
8.一种沙盒测试装置,其特征在于,所述装置包括:
9.一种电子设备,包括:
10.一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现根据权利要求1~7中任一项所述方法的步骤。
11.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现根据权利要求1~7中任一项所述方法的步骤。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com