一种冗余代码检测方法及装置制造方法及图纸

技术编号:14895008 阅读:54 留言:0更新日期:2017-03-29 10:17
本申请公开了冗余代码检测方法及装置。一种冗余代码检测方法包括:服务器端接收客户端发送的针对目标文件的下载请求;将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;接收客户端上传的所述目标文件的代码执行统计结果,所述代码执行统计结果通过执行所述布点版本文件得到;对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。本申请方案利用互联网用户数量庞大的特点,有效地实现了冗余代码检测场景的全面覆盖。

【技术实现步骤摘要】

本申请涉及互联网
,尤其涉及一种冗余代码检测方法及装置
技术介绍
冗余代码,是指在正式发布的应用程序代码中,对于实现应用功能而言不必要的部分。出于多种客观原因,在开发阶段中引入冗余代码总是难以避免的,而且由于其本身并不影响应用功能的实现,因此也不会在测试阶段被检测到,使得其最终被保留在正式的程序代码中。尽管冗余代码不会影响正常的应用功能,但是仍然会产生降低程序执行效率、增加程序文件体积等负面影响,因此对冗余代码进行检测并清理仍然具有重要意义。代码冗余的一种类型是的代码数量的冗余,即在程序代码中存在不会被执行到的语句和分支,这些冗余代码会增加程序文件的大小,而且会增加程序的维护难度。针对这种情况,现有技术的一种解决方案是:对程序源代码进行布点转换,布点的作用是为程序增加对各个语句和分支执行情况的统计功能,通过运行转换后的程序代码,就可以统计出那些语句和分支没有被执行过,从而确定冗余代码。布点转换的实现方案已经比较成熟,然而在实际应用中,一个程序文件中的多种逻辑往往会在不同的场景被触发,如果无法保证布点程序的执行场景覆盖全面,则会导致对冗余代码的错误识别。
技术实现思路
针对上述技术问题,本申请提供一种冗余代码检测方法及装置,技术方案如下:根据本申请的第一方面,提供一种冗余代码检测方法,应用于服务器端,该方法包括:接收客户端发送的针对目标文件的下载请求;将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;接收客户端上传的所述目标文件的代码执行统计结果,所述代码执行统计结果通过执行所述布点版本文件得到;对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。根据本申请的第二方面,提供一种冗余代码检测方法,该方法包括:客户端向服务器端发送针对目标文件的下载请求;服务器端接收所述下载请求,将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;客户端将执行所述布点版本文件后得到的代码执行统计结果上传至所述服务器端;服务器端接收客户端上传的所述目标文件的代码执行统计结果;对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。根据本申请的第三方面,提供一种冗余代码检测装置,应用于服务器端,该装置包括:下载请求接收模块,用于接收客户端发送的针对目标文件的下载请求;下载请求响应模块,用于将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;统计结果接收模块,用于接收客户端上传的所述目标文件的代码执行统计结果,所述代码执行统计结果通过执行所述布点版本文件得到;冗余代码分析模块,用于对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。根据本申请的第四方面,提供一种冗余代码检测系统,该系统包括客户端装置及服务器端装置:客户端装置向服务器端装置发送针对目标文件的下载请求;服务器端装置接收所述下载请求,将所述目标文件的布点版本文件提供给所述客户端装置,以响应所述下载请求;客户端装置将执行所述布点版本文件后得到的代码执行统计结果上传至所述服务器端装置;服务器端装置接收客户端装置上传的所述目标文件的代码执行统计结果;对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。本申请实施例所提供的技术方案,首先将冗余代码的检测任务通过网络分发到多个客户端执行,然后通过收集各个客户端的代码执行统计结果,做交集分析后确定冗余代码,与仅在开发端本地做冗余代码检测的方案相比,本申请方案利用互联网用户数量庞大的特点,有效地实现了冗余代码检测场景的全面覆盖。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本申请的冗余代码检测系统的结构示意图;图2是本申请的冗余代码检测方法的第一种流程示意图;图3是本申请的冗余代码检测方法的第二种流程示意图;图4是本申请的冗余代码检测方法的第三种流程示意图;图5是本申请的冗余代码检测装置的结构示意图。具体实施方式利用布点转换检测冗余代码的方案,可以较好地检测出一段独立逻辑程序代码的冗余内容,然而在一段代码中包含多种逻辑的情况下,则需要保证这些被充分触发执行。然而在实际应用中,各种触发条件是难以事先预知并穷举的,以网络应用环境为例:同一个页面所引用的程序代码文件,针对不同用户可能需要展示不同的界面、执行不同的处理逻辑;而一个程序代码文件也可能会被多个页面引用并且分别执行不同的功能。对于检测方而言,这些动态因素往往是无法预先确定的,如果不能确保场景覆盖全面,则会导致将有用代码识别为冗余代码。针对上述问题,本申请提出的方案是,针对一段待检测的目标代码,将用于冗余代码检测的代码执行统计任务通过网络分发给多个客户端,然后通过收集各个客户端的代码执行统计结果,做交集分析后确定冗余代码。由于开发网络应用原本就是给用户使用的,因此在用户使用过程中自然会触发各种场景,结合互联网内庞大的用户数量,可以有效地保证各种场景均被覆盖。为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。下面首先对本申请方案的运行系统架构进行说明。参见图1所示,本申请方案的冗余代码检测系统包括通过网络连接的服务器端100和多个客户端200,待检测的程序代码以文件的形式存储在服务器端100中,在本申请中称为目标文件。除原版的目标文件之外,在服务器端100中还存储有目标文件的布点版本文件,布点版本文件通过对原版目标文件进行处理得到,以一段JavaScript代码为例:以下代码if(a){alert(1);本文档来自技高网...

【技术保护点】
一种冗余代码检测方法,应用于服务器端,其特征在于,该方法包括:接收客户端发送的针对目标文件的下载请求;将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;接收客户端上传的所述目标文件的代码执行统计结果,所述代码执行统计结果通过执行所述布点版本文件得到;对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。

【技术特征摘要】
1.一种冗余代码检测方法,应用于服务器端,其特征在于,该方法包括:接收客户端发送的针对目标文件的下载请求;将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;接收客户端上传的所述目标文件的代码执行统计结果,所述代码执行统计结果通过执行所述布点版本文件得到;对所述目标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。2.根据权利要求1所述的方法,其特征在于,所述将目标文件的布点版本文件提供给所述客户端,包括:以预设的概率,将所述目标文件的布点版本文件提供给所述客户端。3.根据权利要求1所述的方法,其特征在于,所述将目标文件的布点版本文件提供给所述客户端,包括:根据所述客户端的属性信息,将目标文件的布点版本文件提供给所述客户端,所述客户端的属性信息用于表示该客户端是否接收布点版本文件。4.根据权利要求1所述的方法,其特征在于,所述对目标文件的至少两份代码执行统计结果进行交集分析,包括:在代码执行统计结果数量达到预设要求的情况下,对所述目标文件的代码执行统计结果进行交集分析。5.一种冗余代码检测方法,其特征在于,该方法包括:客户端向服务器端发送针对目标文件的下载请求;服务器端接收所述下载请求,将所述目标文件的布点版本文件提供给所述客户端,以响应所述下载请求;客户端将执行所述布点版本文件后得到的代码执行统计结果上传至所述服务器端;服务器端接收客户端上传的所述目标文件的代码执行统计结果;对所述目
\t标文件的至少两份代码执行统计结果进行交集分析,根据分析结果,将未被执行过的代码标记为所述目标文件的冗余代码。6.一种冗余代码检测装置,应用于...

【专利技术属性】
技术研发人员:陈成
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1