一种代码覆盖率分析方法、装置、设备和介质制造方法及图纸

技术编号:31495921 阅读:28 留言:0更新日期:2021-12-18 12:37
本发明专利技术公开了一种代码覆盖率分析方法、装置、设备和介质,由于该方法中对包含每个子代码集合中代码的目标子覆盖率文件,在不同的目标子覆盖率文件对应不同的标识信息时,不需要使用相互不兼容的编译器,而是根据不同的标识信息对应的目标子覆盖率文件内容的不同读取顺序,采用数据解析引擎基于每个目标子覆盖率文件的目标读取顺序,并行读取每个目标子覆盖率文件中的内容,并根据预先确定的每个子代码集合对应的目标子插装文件的内容、和读取的目标子覆盖率文件的内容,同步进行编译得到对应的子覆盖测试报告,组合得到源代码的目标覆盖测试报告,从而减少了得到覆盖测试报告所需的时间并提高了效率,并且不需要使用多个编译器,降低了资源消耗。降低了资源消耗。降低了资源消耗。

【技术实现步骤摘要】
一种代码覆盖率分析方法、装置、设备和介质


[0001]本专利技术涉及代码测试
,尤其涉及一种代码覆盖率分析方法、装置、设备和介质。

技术介绍

[0002]覆盖测试是描述源代码被测试的比例和程度,所得比例称为代码覆盖率。覆盖测试技术方法有语句覆盖、分支覆盖、条件覆盖、判定覆盖和路径覆盖等。为了确定出代码覆盖率,现有技术中首先是基于源代码生成测试程序,然后采用测试程序在源代码的函数入口和程序分支等特征点处进行插装,编译执行源代码,在执行过程中,测试程序将代表覆盖率数据的执行数据记录下来,根据记录的执行数据生成源代码的覆盖测试报告。
[0003]图1为现有技术提供的一种进行代码覆盖率分析的系统的结构示意图,如图1所示,该系统中包括自动化管理系统设备、自动化测试设备、网络设备、网络设备版本服务器、覆盖率服务器和电子设备。其中电子设备中运行有开源工具(Gcov),Gcov是一款流行的代码覆盖率度量工具,可以统计哪些代码被执行以及每行代码的执行频率、用例覆盖的代码数等。
[0004]首先是根据网络设备的不同中央处理器(Central 本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种代码覆盖率分析方法,其特征在于,所述方法包括:获取网络设备版本服务器采集的插装文件以及覆盖率服务器采集的覆盖率文件,其中所述覆盖率文件的内容对应标识信息;根据预先保存的源代码的每个子代码集合,从所述插装文件中确定对应包含每个子代码集合中代码的每个目标子插装文件,从所述覆盖率文件中确定对应包含每个子代码集合中代码的每个目标子覆盖率文件;根据所述每个目标子覆盖率文件的内容对应的目标标识信息、以及预先保存的标识信息与读取顺序的对应关系,确定所述每个目标子覆盖率文件中内容的目标读取顺序,采用数据解析引擎基于所述目标读取顺序,并行读取所述每个目标子覆盖率文件中的内容,根据所述每个目标子插装文件的内容、读取出的所述每个目标子覆盖率文件的内容,同步进行编译得到每个子覆盖测试报告,组合得到所述源代码的目标覆盖测试报告,其中所述目标读取顺序包括从存储目标子覆盖率文件内容的内存的低地址到高地址的读取顺序、和/或从高地址到低地址的读取顺序。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据确定的测试用例与目标程序的覆盖率的对应关系,针对每个目标程序,确定该目标程序的每个测试用例的覆盖率,若每个测试用例的覆盖率均小于预设覆盖率阈值,则确定该目标程序未覆盖完成,通过用户接口对该目标程序进行补充覆盖。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据确定的测试用例与目标程序的覆盖率的对应关系,确定每个测试用例覆盖的所述目标程序的目标代码;根据每个测试用例覆盖的所述目标代码,确定所述目标代码被其余的任一测试用例全部覆盖的目标测试用例,将所述目标测试用例确定为冗余测试用例。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据确定的测试用例与目标程序的覆盖率的对应关系,确定所述测试用例测试的所述目标程序的目标覆盖率;根据所述目标覆盖率、以及覆盖率范围与用例质量指标的对应关系,确定所述测试用例的目标用例质量指标。5.根据权利要求2

4中任一所述的方法,其特征在于,所述测试用例与目标程序的覆盖率的对应关系的确定过程包括:获取日志服务器采集的测试用例日志数据、所述网络设备版本服务器采集的程序的可执行链路格式ELF的符号表数据,其中所述符号表数据包括库和所述插装文件中的代码文件;根据所述测试用例日志数据中的测试用例和进行测试的程序,进行数据关联分析得到第一分析结果,所述第一分析结果包括所述测试用例与目标程序的对应关系;根据所述代码文件和所述库,进行数据关联分析得到第二分析结果,所述第二分析结果包括所述目标程序分别与目标库、所述目标库中目标第一库函数和所述代码文件的对应关系、以及所述目标库与所述代码文件的对应关系;根据所述目标覆盖测试报告、所述插装文件的函数和所述代码文件,进行数据关联分析得到第三分析结果,所述第三分析结果包括所述代码文件与所述函数的包含关系、所述
函数的覆盖率和代码迭代后变更的函数;根据所述代码文件包含的所述函数和所述函数的覆盖率,确定所述代码文件的覆盖率,根据所述代码文件的覆盖率、所述目标程序与所述代码文件的对应关系,确定所述目标程序的覆盖率;根据所述测试用例与所述目标程序的对应关系、所述目标程序的覆盖率,确定所述测试用例与所述目标程序的覆盖率的对应关系。6.根据权利要求5所述的方法,其特征在于,所述根据所述测试用例日志数据中的测试用例和进行测试的程序,进行数据关联分析确得到第一分析结果包括:根据所述测试用例日志数据中测试用例调用的第一用户接口,确定所述程序中包含所述第一用户接口的目标程序,确定所述测试用例与所述目标程序存在对应关系。7.根据权利要求5所述的方法,其特征在于,所述根据所述代码文件和所述库,进行数据关联分析得到第二分析结果包括:根据所述符号表数据中所述目标程序调用的第一库函数、以及所述库中包含的第二库函数,确定所述目标程序调用的与所述第一库函数相同的目标第一库函数以及所述目标第一库函数所在的目标库,并确定所述目标程序与所述目标库中目标第一库函数存在对应关系、所述目标程序与所述目标库存在对应关系;根据所述目标程序和所述符号表数据中的所述代码文件,确定所述目标程序与所述代码文件存在对应关系;根据所述目标程序与所述目标库的对应关系、所述目标程序与所述代码文件的对应关系,确定所述目标库与所述...

【专利技术属性】
技术研发人员:叶利福
申请(专利权)人:锐捷网络股份有限公司
类型:发明
国别省市:

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

1