【技术实现步骤摘要】
代码测试方法、装置、设备及存储介质
[0001]本专利技术涉及测试领域,尤其涉及一种代码测试方法、装置、设备及存储介质。
技术介绍
[0002]为了保证软件工程的稳定性,软件工程的开发通常都是在一个稳定的基线版本的基础上,开发新的分支来实现新的功能。当一个软件工程产生了新的分支时,需要对新分支进行测试,确认这些新分支能够实现预期的功能。为了衡量测试对新分支的测试是否充分,可以通过统计测试覆盖的代码行、类、分支等的数量,来量化此次测试的充分度。这个被量化的充分度就是测试覆盖率。为了便于测试人员根据新分支的测试覆盖率对测试用例进行调整,需要在根据测试生成的测试覆盖率报告中,注明新分支的测试覆盖率。
[0003]现有代码测试方法通常基于人工检查代码从而定位到未经测试的代码区域,进而对其进行测试从而提升代码覆盖率,然而这种基于人工定位和测试的方法效率特别低下。
技术实现思路
[0004]本专利技术的主要目的在于解决现有代码测试方法效率低下的问题。
[0005]本专利技术第一方面提供了一种代码测试方法, ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.一种代码测试方法,其特征在于,所述代码测试方法包括:接收多个应用项目的源代码,其中,每个应用项目的源代码中均包括用于标识代码片段已经测试的测试标记;根据每个应用项目的源代码和每个应用项目的测试标记,分别计算各应用项目的测试覆盖率;基于各应用项目的测试覆盖率,确定测试覆盖率小于预设阈值的目标应用项目;遍历所述目标应用项目的源代码以获取所述目标应用项目中不含有所述测试标记的目标代码片段;从预设的注释库中获取所述目标代码片段对应的目标代码注释文本;基于预设的第一脚本生成网络模型,处理所述目标代码注释文本,得到并执行所述目标代码片段对应的第一目标测试脚本,其中,所述第一脚本生成网络模型为基于注释信息生成测试脚本的网络模型。2.根据权利要求1所述的代码测试方法,其特征在于,所述根据每个应用项目的源代码和每个应用项目的测试标记,分别计算各应用项目的测试覆盖率包括:分别获取各所述应用项目的代码片段总数目以及含有所述测试标记的已测试代码片段数目;分别将各所述应用项目中含有所述测试标记的已测试代码片段数目与代码片段总数目做除法运算,得到各所述应用项目的测试覆盖率。3.根据权利要求1所述的代码测试方法,其特征在于,所述基于预设的第一脚本生成网络模型,处理所述目标代码注释文本,得到并执行所述目标代码片段对应的第一目标测试脚本之前,还包括:基于预设包含注释信息的公共脚本代码构建用于模型训练的初始代码训练数据集;对所述初始代码训练数据集进行数据预处理,得到目标代码训练数据集;初始化预设语言网络模型的网络参数;将所述目标代码训练数据集输入至所述预设语言网络模型中执行脚本生成训练,得到第一脚本生成网络模型。4.根据权利要求3所述的代码测试方法,其特征在于,所述将所述目标代码训练数据集输入至所述预设语言网络模型中执行脚本生成训练,得到第一脚本生成网络模型包括:从所述目标代码训练数据集中获取目标代码注释对,其中,所述目标代码注释对中包括一个代码片段及其对应的目标注释信息;基于所述预设语言网络模型,预测所述目标注释信息对应的目标生成代码;根据预设的损失函数,计算所述目标生成代码与所述目标代码注释对中的代码片段之间的损失值;根据所述损失值,调整所述预设语言网络模型的网络参数,得到第一脚本生成网络模型。5.根据权利要求4所述的代码测试方法,其特征在于,所述根据所述损失值,调整所述预设语言网络模型的网络参数,得到第一脚本生成网络模型包括:将所述损失值由所述预设语言网络模型的输出层向隐藏层反向传播;当所述损失值被传播至所述隐藏层时,根据所述损失值,并采用随机梯度下降算法对
所述预设语言网络模型的网络参数进行迭代更新;当所述预设语言网络模型的网络收敛时,确定当前所述预设语言网络模型的网络参数为目标参数,得到所述第一脚本生成网络模型。6.根据权利要求1
技术研发人员:李宇航,
申请(专利权)人:平安国际智慧城市科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。