检测方法、装置、设备和存储介质制造方法及图纸

技术编号:24035009 阅读:17 留言:0更新日期:2020-05-07 01:39
本申请涉及检测方法、装置、设备和存储介质。该方法包括:确定出待检测指令;获取待检测指令所对应的至少一条目标执行路径;确定出待检测指令所对应的目标执行路径中所包含的针对目标对象的操作指令集,其中,操作指令集包含有针对目标对象的至少一个控制操作;判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作;基于判断结果确定待检测指令的处理流程是否合规。如此,提高检测效,以及检测结果的准确率。

Test method, device, equipment and storage medium

【技术实现步骤摘要】
检测方法、装置、设备和存储介质
本申请涉及计算机领域,特别是涉及一种检测方法、装置、设备和存储介质。
技术介绍
项目中存在大量的操作资源、文件、流数据等对象,在项目开发过程中会打开这些对象,在操作结束后关闭相应对象,在java中,这些对象往往是Closeable接口的实现类,称之为Closeable对象。但实际开发过程中,可能存在开发人员忘记关闭操作,或者未考虑到极端情况,而导致即便退出使用之后,仍未执行Closeable对象的关闭操作代码,因此,导致资源未释放(比如文件流),引起资源泄露或者使程序进入到其他非正常状态。当前,为解决上述问题,通常会在程序运行期间对运行时环境进行hook,并检测到执行开启操作后,定时检查是否存在关闭操作,若未检测到关闭操作,则进行问题上报。现有检测过程需要人工测试,测试用例难以覆盖全部场景;而且,该检测过程在运行期间进行,检查是否进行关闭操作的时机不好控制,检查过程滞后。
技术实现思路
为解决上述问题,本专利技术提出了一种检测方法、装置、设备和存储介质,能够从指令角度对针对目标对象的控制操作进行判断,以判断是否存在针对目标对象的且满足预设规则的关闭操作,该检测过程无需人工测试,也无需考虑检测时机,在程序编译期间进行,因此,在无需设置测试用例的前提下,能够提高检测效,以及检测结果的准确率。第一方面,本申请实施例提供一种检测方法,包括:确定出待检测指令;获取待检测指令所对应的至少一条目标执行路径;确定出待检测指令所对应的目标执行路径中所包含的针对目标对象的操作指令集,其中,操作指令集包含有针对目标对象的至少一个控制操作;判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作;基于判断结果确定待检测指令的处理流程是否合规。这里,由于本申请方案是针对待检测指令,以及待检测指令所需运行的目标执行路径进行检测的,所以能够确保检测流程最大化涵盖所有场景,而且,该检测流程无需设置测试用例,因此,与现有通过测试用例来检测的方式相比,本申请实施例无需人工测试,提高了检测效率,同时,为提高检测结果的准确性奠定了基础。而且,又由于本申请方案是针对待检测指令的目标执行路径进行的,所以,检测过程可以在程序编译期间进行,无需在运行环境下进行,因此,解决了现有检测方式检测滞后的问题,同时,由于检测过程可以在编译期间进行,所以为快速解决问题,提升程序稳定性奠定了基础,进而为避免由于检测滞后未及时解决问题而导致代码资源泄露奠定了基础。在一具体实施例中,所述判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作,包括:判断目标执行路径所包含的操作指令集中存在针对目标对象的开启操作后是否存在与开启操作相对应的满足预设规则的关闭操作。这里,为最大化提升检测效率,在目标执行路径的检测过程中,检测针对目标对象的开启操作之后的操作步骤,进而为最大化提高检测效率奠定了基础,同时,为快速解决问题,提升程序稳定性奠定了基础,也为避免由于检测滞后未及时解决问题而导致代码资源泄露奠定了基础。在一具体实施例中,所述方法还包括:确定待检测程序中的至少一个函数;获取至少一个函数所对应的指令;将至少一个函数所对应的至少部分指令作为待检测指令。这里,为满足实际需求,扩大应用范围,丰富应用场景,本申请方案可以扩展为检测程序中函数对应的指令,进而使得本申请方案能够应用到开发场景中,如应用到程序开发中,如此,丰富了应用程序,为提升开发效率奠定了基础,同时,也为工程化应用奠定了基础。在一具体实施例中,所述将至少一个函数所对应的至少部分指令作为待检测指令,包括:判断函数所对应的指令中是否包含有针对目标对象的控制操作,若是,将包含有针对目标对象的控制操作的指令作为待检测指令。在一具体实施例中,所述方法还包括:设置预设操作指令类型;将函数所对应的指令中与预设操作指令类型相匹配的指令作为待检测指令,使得所述待检测指令包含有针对目标对象的控制操作。本申请方案中,为贴合实际场景,进一步提升具体场景下检测效率问题,可以预先设置操作指令类型,即预设操作指令类型,进而针对与预设操作指令类型相匹配的指令进行检测,如此,提高了具体场景下的检测效率,为工程化应用奠定了基础。在一具体实施例中,所述获取待检测指令所对应的至少一条目标执行路径,包括:将待检测指令所需运行的执行路径作为所述待检测指令对应的目标执行路径;以及,将待检测指令在运行过程中基于跳转指令而跳转到的执行路径作为所述待检测指令所对应的目标执行路径。这里,为最大化解决具体场景下的检测效率问题,以及最大化涵盖所有实际场景,本申请方案不仅将待检测指令所需运行的执行路径作为目标执行路径,还将待检测指令在运行过程中基于跳转指令而跳转到的执行路径也作为目标执行路径,进而对所有目标执行路径进行检测,如此,来最大化涵盖所有实际场景,为最大化提高检测效率奠定了基础,为快速解决问题,提升程序稳定性奠定了基础,也为避免由于检测滞后未及时解决问题而导致代码资源泄露奠定了基础。第二方面,本申请实施例提供一种检测装置,包括:第一处理单元,用于确定出待检测指令;获取待检测指令所对应的至少一条目标执行路径;确定出待检测指令所对应的目标执行路径中所包含的针对目标对象的操作指令集,其中,操作指令集包含有针对目标对象的至少一个控制操作;第二处理单元,用于判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作;基于判断结果确定待检测指令的处理流程是否合规。在一具体实施例中,所述第二处理单元,还用于判断目标执行路径所包含的操作指令集中存在针对目标对象的开启操作后是否存在与开启操作相对应的满足预设规则的关闭操作。在一具体实施例中,第一处理单元,还用于:确定待检测程序中的至少一个函数;获取至少一个函数所对应的指令;将至少一个函数所对应的至少部分指令作为待检测指令。在一具体实施例中,第一处理单元,还用于:判断函数所对应的指令中是否包含有针对目标对象的控制操作,若是,将包含有针对目标对象的控制操作的指令作为待检测指令。在一具体实施例中,第一处理单元,还用于:设置预设操作指令类型;将函数所对应的指令中与预设操作指令类型相匹配的指令作为待检测指令,使得所述待检测指令包含有针对目标对象的控制操作。在一具体实施例中,第一处理单元,还用于:将待检测指令所需运行的执行路径作为所述待检测指令对应的目标执行路径;以及,将待检测指令在运行过程中基于跳转指令而跳转到的执行路径作为所述待检测指令所对应的目标执行路径。第三方面,本申请实施例提供一种检测设备,包括:一个或多个处理器;与所述一个或多个处理器通信连接的存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储本文档来自技高网...

【技术保护点】
1.一种检测方法,其特征在于,所述方法包括:/n确定出待检测指令;/n获取待检测指令所对应的至少一条目标执行路径;/n确定出待检测指令所对应的目标执行路径中所包含的针对目标对象的操作指令集,其中,操作指令集包含有针对目标对象的至少一个控制操作;/n判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作;/n基于判断结果确定待检测指令的处理流程是否合规。/n

【技术特征摘要】
1.一种检测方法,其特征在于,所述方法包括:
确定出待检测指令;
获取待检测指令所对应的至少一条目标执行路径;
确定出待检测指令所对应的目标执行路径中所包含的针对目标对象的操作指令集,其中,操作指令集包含有针对目标对象的至少一个控制操作;
判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作;
基于判断结果确定待检测指令的处理流程是否合规。


2.根据权利要求1所述的方法,其特征在于,所述判断目标执行路径所包括的操作指令集中是否存在针对目标对象的满足预设规则的关闭操作,包括:
判断目标执行路径所包含的操作指令集中存在针对目标对象的开启操作后是否存在与开启操作相对应的满足预设规则的关闭操作。


3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定待检测程序中的至少一个函数;
获取至少一个函数所对应的指令;
将至少一个函数所对应的至少部分指令作为待检测指令。


4.根据权利要求3所述的方法,其特征在于,所述将至少一个函数所对应的至少部分指令作为待检测指令,包括:
判断函数所对应的指令中是否包含有针对目标对象的控制操作,若是,将包含有针对目标对象的控制操作的指令作为待检测指令。


5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
设置预设操作指令类型;
将函数所对应的指令中与预设操作指令类型相匹配的指令作为待检测指令,使得所述待检测指令包含有针对目标对象的控制操作。

【专利技术属性】
技术研发人员:杨志谦
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

1