【技术实现步骤摘要】
差异行代码覆盖率增强标记方法、系统、设备及存储介质
本专利技术涉及计算机
,尤其涉及一种差异行代码覆盖率增强标记方法、系统、设备及存储介质。
技术介绍
在软件开发过程中,开发人员需要对开发好的代码进行测试,而在测试的过程中,通常需要对软件测试过程的代码覆盖率进行统计。代码覆盖是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得到的比例称为代码覆盖率。代码覆盖率是反映测试用例对被测软件覆盖程度的一个重要指标,是用来衡量测试完整性的一个参考值。通过代码覆盖率数据,我们可以评估测试是否充分,从而决定是否需要重复执行软件测试。目前,从业界的代码覆盖率技术来看,虽然Objective-C代码覆盖率支持全量代码行/差异代码行的代码覆盖率统计,但对于差异代码行的统计,未能深入代码逻辑,对于一些业务优先级不高的代码行,如异常捕获,日志打印,判空处理等未能降低标记的优先级,导致了代码行差异率的检验较为困难。以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现
【技术保护点】
1.一种差异行代码覆盖率增强标记方法,其特征在于,所述方法包括:/n将测试时产生的数据文件gcda和代码编译生成的符号文件gcno合并,得到全量代码行覆盖率数据;/n获取与所述全量行代码覆盖率数据对应的版本号commit_id以及差异比较基准commit_baseline;/n将所述版本号commit_id与所述差异比较基准commit_baseline进行比较,得到代码差异日志;/n将所述代码差异日志中业务优先级高的代码行进行增强标记并生成差异行代码覆盖率文件;/n获取并扫描所述差异行代码覆盖率文件对应的源码文件,得到所述源码文件的语法树AST;/n将所述语法树AST中业 ...
【技术特征摘要】
1.一种差异行代码覆盖率增强标记方法,其特征在于,所述方法包括:
将测试时产生的数据文件gcda和代码编译生成的符号文件gcno合并,得到全量代码行覆盖率数据;
获取与所述全量行代码覆盖率数据对应的版本号commit_id以及差异比较基准commit_baseline;
将所述版本号commit_id与所述差异比较基准commit_baseline进行比较,得到代码差异日志;
将所述代码差异日志中业务优先级高的代码行进行增强标记并生成差异行代码覆盖率文件;
获取并扫描所述差异行代码覆盖率文件对应的源码文件,得到所述源码文件的语法树AST;
将所述语法树AST中业务优先级低的代码块过滤,生成差异行代码覆盖率报告。
2.根据权利要求1所述的差异行代码覆盖率增强标记方法,其特征在于,在所述将所述语法树AST中业务优先级低的代码块过滤,生成差异行代码覆盖率报告的步骤之后,所述方法还包括:
提取所述差异行代码覆盖率报告中的文件路径,并分析各文件路径的差异行代码覆盖率;
根据预设的路径业务映射关系表,将属于同一个业务线的文件路径的差异行代码覆盖率进行汇总,得到各业务线的差异行代码覆盖率统计。
3.根据权利要求1所述的差异行代码覆盖率增强标记方法,其特征在于,所述将测试时产生的数据文件gcda和代码编译生成的符号文件gcno合并,得到全量代码行覆盖率数据的步骤包括:
通过lcov工具将测试时产生的数据文件gcda和代码编译生成的符号文件gcno合并,得到全量代码行覆盖率数据。
4.根据权利要求1所述的差异行代码覆盖率增强标记方法,其特征在于,所述将所述版本号commit_id与所述差异比较基准commit_baseline进行比较,得到代码差异日志的步骤包括:
通过gitdiff工具将所述版本号commit_id与所述差异比较基准commit_baseline进行比较,得到代码差异日志。
5.一种差异行代码覆盖率增强标记系统,其特征在于,所述系统包括:
合并模块,用于将测试时产生的数据文件gcda和代码编译生成...
【专利技术属性】
技术研发人员:陈超咏,
申请(专利权)人:上海品顺信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。