程序测试方法、装置及存储介质制造方法及图纸

技术编号:27458446 阅读:31 留言:0更新日期:2021-02-25 05:07
本申请提供一种程序测试方法、装置及存储介质,该方法包括:获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息,将输出点的理论数量和每个输出点的位置信息输入覆盖率预测模型进行处理,得到预测代码覆盖率。本实施例的覆盖率预测模型是根据在线序列的极限学习机OS

【技术实现步骤摘要】
程序测试方法、装置及存储介质


[0001]本申请实施例涉及计算机
,尤其涉及一种程序测试方法、装置及存储介质。

技术介绍

[0002]随着互联网技术的飞速发展,移动应用更是呈指数增长,移动终端应用程序APP、小程序的测试方面需求大涨。为了确保应用产品的软件质量,测试人员常常需要通过多种手段或工具对测试程序进行评估,其中,代码覆盖率就是其中比较重要的一个环节。
[0003]代码覆盖率,是一种通过计算测试过程中被执行的源代码占全部源代码的比例,进而间接度量软件质量的方法。它在保证测试质量的时候潜在保证实际产品的质量,可以基于此在程序中寻找没有被测试用例测试过的地方,进一步创建新的测试用例来增加覆盖率。
[0004]目前主要通过手动执行多个测试代码,统计多个测试代码的代码覆盖率。对于较为复杂的应用程序,其测试代码较长且数量较多,测试效率及精确度较低。

技术实现思路

[0005]本申请实施例提供一种程序测试方法、装置及存储介质,提高对代码覆盖率预测的效率和精确度。
[0006]本申请实施例的第一方面,提供一种程序测试方法,包括:
[0007]获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息;
[0008]将所述输出点的理论数量和所述每个输出点的位置信息,输入覆盖率预测模型进行处理,得到预测代码覆盖率;其中,所述覆盖率预测模型是根据在线序列的极限学习机OS-ELM训练得到的用于预测代码覆盖率的模型。
[0009]在本申请的一个实施例中,所述方法还包括:
[0010]获取训练样本集,所述训练样本集中包括多组训练样本,每一组训练样本中包括程序输出点的理论数量、位置信息以及所述程序实际运行时的代码覆盖率;
[0011]获取OS-ELM的训练参数,所述训练参数包括隐含层节点数、激励函数、训练数据集大小以及预测数据大小;
[0012]根据随机生成的隐含层的权值矩阵和偏置向量,所述训练参数以及所述训练样本集,采用OS-ELM算法进行模型训练,得到所述覆盖率预测模型。
[0013]在本申请的一个实施例中,所述方法还包括:
[0014]在所述待测试程序运行后,获取所述待测试程序运行时输出的日志文件;
[0015]根据所述日志文件,获取所述待测试程序运行时的输出点的实际数量;
[0016]根据所述待测试程序的输出点的所述理论数量和所述实际数量,计算获取所述待测试程序的实际代码覆盖率;
[0017]根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆
盖率预测模型。
[0018]在本申请的一个实施例中,所述根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆盖率预测模型,包括:
[0019]根据所述待测试程序的输出点的理论数量,每个输出点的位置信息,以及所述实际代码覆盖率,得到一组新的训练样本;
[0020]对模型训练过程中的权值矩阵进行更新,得到更新后的权值矩阵;
[0021]根据所述新的训练样本以及所述更新后的权值矩阵,对所述覆盖率预测模型进行优化训练,得到所述优化后的覆盖率预测模型。
[0022]本申请实施例的第二方面,提供一种程序测试装置,包括:
[0023]获取模块,用于获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息;
[0024]处理模块,用于将所述输出点的理论数量和所述每个输出点的位置信息,输入覆盖率预测模型进行处理,得到预测代码覆盖率;其中,所述覆盖率预测模型是根据在线序列的极限学习机OS-ELM训练得到的用于预测代码覆盖率的模型。
[0025]在本申请的一个实施例中,所述获取模块,还用于获取训练样本集,所述训练样本集中包括多组训练样本,每一组训练样本中包括程序输出点的理论数量、位置信息以及所述程序实际运行时的代码覆盖率;
[0026]获取OS-ELM的训练参数,所述训练参数包括隐含层节点数、激励函数、训练数据集大小以及预测数据大小;
[0027]所述处理模块,还用于根据随机生成的隐含层的权值矩阵和偏置向量,所述训练参数以及所述训练样本集,采用OS-ELM算法进行模型训练,得到所述覆盖率预测模型。
[0028]在本申请的一个实施例中,所述获取模块,还用于在所述待测试程序运行后,获取所述待测试程序运行时输出的日志文件;
[0029]根据所述日志文件,获取所述待测试程序运行时的输出点的实际数量;
[0030]所述处理模块,还用于根据所述待测试程序的输出点的所述理论数量和所述实际数量,计算获取所述待测试程序的实际代码覆盖率;
[0031]根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆盖率预测模型。
[0032]在本申请的一个实施例中,所述处理模块,具体用于:
[0033]根据所述待测试程序的输出点的理论数量,每个输出点的位置信息,以及所述实际代码覆盖率,得到一组新的训练样本;
[0034]对模型训练过程中的权值矩阵进行更新,得到更新后的权值矩阵;
[0035]根据所述新的训练样本以及所述更新后的权值矩阵,对所述覆盖率预测模型进行优化训练,得到所述优化后的覆盖率预测模型。
[0036]本申请实施例的第三方面,提供一种程序测试装置,包括:
[0037]至少一个处理器;以及
[0038]与所述至少一个处理器通信连接的存储器;其中,
[0039]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述程序测试装置能够执行上述第一方面中任一项所述的方法。
[0040]本申请实施例的第四方面,提供一种计算机可读存储介质,包括:用于存储计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行上述第一方面中任一项所述的方法。
[0041]本申请实施例提供一种程序测试方法、装置及存储介质,其中,程序测试方法包括:获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息,将输出点的理论数量和每个输出点的位置信息输入覆盖率预测模型进行处理,得到预测代码覆盖率。本实施例的覆盖率预测模型是根据在线序列的极限学习机OS-ELM训练得到的用于预测代码覆盖率的模型,通过该模型可快速、准确地获取一段待测试程序的代码覆盖率,测试人员无需运行整个待测试程序,预测的实时性好,为测试人员提供可靠的理论指导。
附图说明
[0042]图1为本申请实施例提供的程序测试方法的流程示意图;
[0043]图2为本申请实施例提供的极限学习机ELM的结构示意图;
[0044]图3为本申请实施例提供的覆盖率预测模型的训练方法示意图;
[0045]图4为本申请实施例提供的覆盖率预测模型的更新方法示意图;
[0046]图5为本申请实施例提供的程序测试装置的结构示意图;
[0047]图6为本申请实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序测试方法,其特征在于,包括:获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息;将所述输出点的理论数量和所述每个输出点的位置信息,输入覆盖率预测模型进行处理,得到预测代码覆盖率;其中,所述覆盖率预测模型是根据在线序列的极限学习机OS-ELM训练得到的用于预测代码覆盖率的模型。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取训练样本集,所述训练样本集中包括多组训练样本,每一组训练样本中包括程序输出点的理论数量、位置信息以及所述程序实际运行时的代码覆盖率;获取OS-ELM的训练参数,所述训练参数包括隐含层节点数、激励函数、训练数据集大小以及预测数据大小;根据随机生成的隐含层的权值矩阵和偏置向量,所述训练参数以及所述训练样本集,采用OS-ELM算法进行模型训练,得到所述覆盖率预测模型。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述待测试程序运行后,获取所述待测试程序运行时输出的日志文件;根据所述日志文件,获取所述待测试程序运行时的输出点的实际数量;根据所述待测试程序的输出点的所述理论数量和所述实际数量,计算获取所述待测试程序的实际代码覆盖率;根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆盖率预测模型。4.根据权利要求3所述的方法,其特征在于,所述根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆盖率预测模型,包括:根据所述待测试程序的输出点的理论数量,每个输出点的位置信息,以及所述实际代码覆盖率,得到一组新的训练样本;对模型训练过程中的权值矩阵进行更新,得到更新后的权值矩阵;根据所述新的训练样本以及所述更新后的权值矩阵,对所述覆盖率预测模型进行优化训练,得到所述优化后的覆盖率预测模型。5.一种程序测试装置,其特征在于,包括:获取模块,用于获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息;处理模块,用于将所述输出点的理论数量和所述每个输出点的位置信息,输入覆盖率预测模型进行处理,得到预测代码覆盖率;其中,所述覆盖率预测模型是根据在线序列的极...

【专利技术属性】
技术研发人员:陈丽萍
申请(专利权)人:京东数字科技控股股份有限公司
类型:发明
国别省市:

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

1