代码覆盖率收集方法和装置制造方法及图纸

技术编号:15690780 阅读:70 留言:0更新日期:2017-06-24 03:27
一种代码覆盖率收集方法及装置,一个实施例的方法包括:接收终端发送的业务请求,业务请求包括应用标识;根据业务请求获取与应用标识对应的源文件、源文件标识以及源文件的语法树信息;将源文件的源代码加载到内存;执行加载到内存的源代码,并在源代码的执行过程中,基于语法树信息记录执行源代码的代码行的覆盖率数据;向覆盖率收集中心服务器发送覆盖率上报信息,覆盖率上报信息包括所述源文件标识、所述覆盖率数据,由覆盖率收集中心服务器根据各覆盖率收集终端服务器上传的覆盖率上报信息确定所述源文件的代码覆盖率。本实施例的方案不仅实现了对服务器的代码覆盖率的收集,而且无需对源代码进行修改,不影响开发人员对源代码的再次编辑。

Code coverage collecting method and device

A method and device for collecting code coverage, including an embodiment of the method: the receiving terminal sends service request, service request including the application identifier; according to service request acquisition and application identifier corresponding to the source file, the source file identification and source file syntax tree information; the source files of the source code is loaded into memory; the execution is loaded into the memory of the source code, and the implementation process in the source code, code coverage data for the implementation of the source code of the syntax tree based on information recording; coverage collection center server to send coverage information reporting coverage rate reporting information including the source file identification, the coverage data covered by the the rate of collection center server according to the coverage collection terminal server upload coverage report information to determine the source files of the code coverage. The scheme of the embodiment not only realizes the collection of the code coverage of the server, but also does not need to modify the source code, and does not affect the developer's re editing of the source code.

【技术实现步骤摘要】
代码覆盖率收集方法和装置
本专利技术涉及测试
,特别是涉及一种代码覆盖率收集方法以及一种代码覆盖率收集装置。
技术介绍
代码覆盖率(codecoverage)是软件测试中的一种重要的度量参数,用以描述描述程序中源代码被测试的比例和程度。而随着JavaScript等解释性语言的逐渐普及,基于JavaScript等解释性语言实现的平台的应用的日益广泛,对基于就采用JavaScript等解释性语言实现的平台的相关应用的代码覆盖率进行测试也成为测试领域中的一项重要内容。以JavaScript平台为例,目前对于浏览器端运行的JavaScript应用,已经有jscoverage等工具来实现浏览器端的代码覆盖率的收集。然而,类似于jscoverage这样的工具,主要应用场景为浏览器端运行。其对Javascript代码进行适合浏览器端运行的代码插桩,插桩后的代码,其代码覆盖率收集过程是基于浏览器的代码执行,无法直接应用于服务器端执行的平台的应用。
技术实现思路
基于此,本专利技术实施例的目的在于提供一种代码覆盖率收集方法以及一种代码覆盖率收集装置。为达到上述目的,本专利技术实施例采用以下技术方案:本文档来自技高网...
代码覆盖率收集方法和装置

【技术保护点】
一种代码覆盖率收集方法,应用在覆盖率收集终端服务器,其特征在于,包括步骤:接收终端发送的业务请求,所述业务请求包括应用标识;根据所述业务请求获取与所述应用标识对应的源文件、源文件标识以及所述源文件的语法树信息;将所述源文件的源代码加载到内存;执行加载到内存的所述源代码,并在所述源代码的执行过程中,基于所述语法树信息记录执行所述源代码的代码行的覆盖率数据;向覆盖率收集中心服务器发送覆盖率上报信息,所述覆盖率上报信息包括所述源文件标识、所述覆盖率数据,由所述覆盖率收集中心服务器根据各覆盖率收集终端服务器上传的覆盖率上报信息确定所述源文件的代码覆盖率。

【技术特征摘要】
1.一种代码覆盖率收集方法,应用在覆盖率收集终端服务器,其特征在于,包括步骤:接收终端发送的业务请求,所述业务请求包括应用标识;根据所述业务请求获取与所述应用标识对应的源文件、源文件标识以及所述源文件的语法树信息;将所述源文件的源代码加载到内存;执行加载到内存的所述源代码,并在所述源代码的执行过程中,基于所述语法树信息记录执行所述源代码的代码行的覆盖率数据;向覆盖率收集中心服务器发送覆盖率上报信息,所述覆盖率上报信息包括所述源文件标识、所述覆盖率数据,由所述覆盖率收集中心服务器根据各覆盖率收集终端服务器上传的覆盖率上报信息确定所述源文件的代码覆盖率。2.根据权利要求1所述的代码覆盖率收集方法,其特征在于,还包括步骤:在将所述源文件的源代码加载到内存时,基于所述语法树信息对加载到内存的源代码进行插桩。3.根据权利要求1或2所述的代码覆盖率收集方法,其特征在于,所述语法树信息包括函数定义语句、分支语句以及代码行中的至少一种,所述代码覆盖率包括函数覆盖率、分支语句覆盖率以及代码行覆盖率中的至少一种。4.一种代码覆盖率收集方法,应用在覆盖率收集中心服务器,其特征在于,包括步骤:接收各覆盖率收集终端服务器发送的覆盖率上报信息,所述覆盖率上报信息包括源文件标识以及对应的覆盖率数据,所述覆盖率数据为所述覆盖率收集终端服务器在接收到终端发送的包含应用标识的业务请求时,获取与所述应用标识对应的源文件、所述源文件标识以及所述源文件的语法树信息,并将所述源文件的源代码加载到内存后,在加载到内存的所述源代码的执行过程中基于所述语法树信息记录执行所述源代码的代码行的覆盖率数据,根据各覆盖率收集终端服务器发送的所述覆盖率上报信息,确定所述源文件标识对应的源文件的代码覆盖率。5.根据权利要求4所述的代码覆盖率收集方法,其特征在于,包括下述三项中的至少一项:通过将各所述覆盖率收集终端服务器上传的所述源文件标识对应的覆盖率数据与所述源文件标识对应的源代码进行比较,根据比较结果确定所述源文件标识对应的源文件的代码覆盖率;还包括步骤:根据各所述覆盖率收集终端服务器发送的所述覆盖率上报信息,对所述源文件标识对应的源代码中、各所述覆盖率收集终端服务器均未执行的代码行进行标记;根据标记的代码行、所述代码覆盖率生成可视化代码覆盖率报告;所述语法树信息包括函数定义语句、分支语句以及代码行中的至少一种,所述代码覆盖率包括函数覆盖率、分支语句覆盖率以及代码行覆盖率中的至少一种。6.一种代码覆盖率收集装置,设置在覆盖率收集终端服务器,其特征在于,包括:请求接收模块,用于接收终端发送的业务请...

【专利技术属性】
技术研发人员:符阳辉任洪平
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1