[发明专利]一种代码覆盖率分析方法、装置、设备和介质在审
申请号: | 202111150979.7 | 申请日: | 2021-09-29 |
公开(公告)号: | CN113806231A | 公开(公告)日: | 2021-12-17 |
发明(设计)人: | 叶利福 | 申请(专利权)人: | 锐捷网络股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 覆盖率 分析 方法 装置 设备 介质 | ||
本发明公开了一种代码覆盖率分析方法、装置、设备和介质,由于该方法中对包含每个子代码集合中代码的目标子覆盖率文件,在不同的目标子覆盖率文件对应不同的标识信息时,不需要使用相互不兼容的编译器,而是根据不同的标识信息对应的目标子覆盖率文件内容的不同读取顺序,采用数据解析引擎基于每个目标子覆盖率文件的目标读取顺序,并行读取每个目标子覆盖率文件中的内容,并根据预先确定的每个子代码集合对应的目标子插装文件的内容、和读取的目标子覆盖率文件的内容,同步进行编译得到对应的子覆盖测试报告,组合得到源代码的目标覆盖测试报告,从而减少了得到覆盖测试报告所需的时间并提高了效率,并且不需要使用多个编译器,降低了资源消耗。
技术领域
本发明涉及代码测试技术领域,尤其涉及一种代码覆盖率分析方法、装置、设备和介质。
背景技术
覆盖测试是描述源代码被测试的比例和程度,所得比例称为代码覆盖率。覆盖测试技术方法有语句覆盖、分支覆盖、条件覆盖、判定覆盖和路径覆盖等。为了确定出代码覆盖率,现有技术中首先是基于源代码生成测试程序,然后采用测试程序在源代码的函数入口和程序分支等特征点处进行插装,编译执行源代码,在执行过程中,测试程序将代表覆盖率数据的执行数据记录下来,根据记录的执行数据生成源代码的覆盖测试报告。
图1为现有技术提供的一种进行代码覆盖率分析的系统的结构示意图,如图1所示,该系统中包括自动化管理系统设备、自动化测试设备、网络设备、网络设备版本服务器、覆盖率服务器和电子设备。其中电子设备中运行有开源工具(Gcov),Gcov是一款流行的代码覆盖率度量工具,可以统计哪些代码被执行以及每行代码的执行频率、用例覆盖的代码数等。
首先是根据网络设备的不同中央处理器(Central Processing Unit,CPU)的大小端,采用对应的编译器根据源代码以及在源代码的特征点处插装的测试程序,编译出能够产生出覆盖率数据的版本,即覆盖率版本,并将覆盖率版本发送到网络设备版本服务器。
自动化管理系统设备通过项目管理和用例管理模块向自动化测试设备下发执行测试用例表;自动化测试设备接收到测试用例表,根据测试用例表配置加载基础库和测试用例,然后从网络设备版本服务器基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)获取到覆盖率版本,并按加载顺序执行对应的测试用例。
网络设备通过用户接口(Command Line Interface,CLI)接收用户通过自动化测试设备发送的测试用例的升级、测试配置、发送数据报文、接收统计等操作,然后网络设备对接收到的操作进行响应反馈,在测试用例快结束时,将产生的覆盖率文件基于文件传输协议(File Transfer Protocol,Ftp)发送到覆盖率服务器。
电子设备从覆盖率服务器中获取到覆盖率文件,从网络设备版本服务器中获取覆盖率版本中的插装文件,并根据覆盖率文件和插装文件,采用Gcov生成源代码的覆盖测试报告。
综上,随着嵌入式网络设备的发展,嵌入式网络设备的规模和复杂度越来越大,为了实现对嵌入式网络设备的覆盖测试,电子设备采用Gcov生成目标覆盖测试报告时,具体是根据不同CPU的大小端,采用不同大小端对应的编译器与Gcov匹配,由于不同大小端对应的编译器之间相互不兼容,每次只能有一种编译器与Gcov匹配,因此需要单线程地针对每个Gcov数据文件,根据该Gcov数据文件中包含的代码、以及覆盖率文件和插装文件,从覆盖率文件中确定出每一行代码对应的子覆盖率文件,从插装文件中确定每一行代码对应的子插装文件,从而确定该Gcov数据文件中的代码对应的目标子覆盖率文件和目标子插装文件,并采用编译器读取目标子覆盖率文件和目标子插装文件的内容并生成该Gcov数据文件的子覆盖测试报告,确定出该Gcov数据文件的子覆盖测试报告后,再根据下一个Gcov数据文件生成对应的子覆盖测试报告,根据每个Gcov数据文件对应的子覆盖测试报告从而得到源代码的目标覆盖测试报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于锐捷网络股份有限公司,未经锐捷网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111150979.7/2.html,转载请声明来源钻瓜专利网。