[发明专利]程序测试方法、装置及存储介质在审
| 申请号: | 202011370178.7 | 申请日: | 2020-11-30 |
| 公开(公告)号: | CN112395203A | 公开(公告)日: | 2021-02-23 |
| 发明(设计)人: | 陈丽萍 | 申请(专利权)人: | 京东数字科技控股股份有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N20/00 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 张娜;臧建明 |
| 地址: | 100176 北京市北京经济*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 测试 方法 装置 存储 介质 | ||
本申请提供一种程序测试方法、装置及存储介质,该方法包括:获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息,将输出点的理论数量和每个输出点的位置信息输入覆盖率预测模型进行处理,得到预测代码覆盖率。本实施例的覆盖率预测模型是根据在线序列的极限学习机OS‑ELM训练得到的用于预测代码覆盖率的模型,通过该模型可快速、准确地获取一段待测试程序的代码覆盖率,无需运行整个待测试程序,预测的实时性好,为测试人员提供可靠的理论指导。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种程序测试方法、装置及存储介质。
背景技术
随着互联网技术的飞速发展,移动应用更是呈指数增长,移动终端应用程序APP、小程序的测试方面需求大涨。为了确保应用产品的软件质量,测试人员常常需要通过多种手段或工具对测试程序进行评估,其中,代码覆盖率就是其中比较重要的一个环节。
代码覆盖率,是一种通过计算测试过程中被执行的源代码占全部源代码的比例,进而间接度量软件质量的方法。它在保证测试质量的时候潜在保证实际产品的质量,可以基于此在程序中寻找没有被测试用例测试过的地方,进一步创建新的测试用例来增加覆盖率。
目前主要通过手动执行多个测试代码,统计多个测试代码的代码覆盖率。对于较为复杂的应用程序,其测试代码较长且数量较多,测试效率及精确度较低。
发明内容
本申请实施例提供一种程序测试方法、装置及存储介质,提高对代码覆盖率预测的效率和精确度。
本申请实施例的第一方面,提供一种程序测试方法,包括:
获取待测试程序的源代码中的输出点的理论数量以及每个输出点的位置信息;
将所述输出点的理论数量和所述每个输出点的位置信息,输入覆盖率预测模型进行处理,得到预测代码覆盖率;其中,所述覆盖率预测模型是根据在线序列的极限学习机OS-ELM训练得到的用于预测代码覆盖率的模型。
在本申请的一个实施例中,所述方法还包括:
获取训练样本集,所述训练样本集中包括多组训练样本,每一组训练样本中包括程序输出点的理论数量、位置信息以及所述程序实际运行时的代码覆盖率;
获取OS-ELM的训练参数,所述训练参数包括隐含层节点数、激励函数、训练数据集大小以及预测数据大小;
根据随机生成的隐含层的权值矩阵和偏置向量,所述训练参数以及所述训练样本集,采用OS-ELM算法进行模型训练,得到所述覆盖率预测模型。
在本申请的一个实施例中,所述方法还包括:
在所述待测试程序运行后,获取所述待测试程序运行时输出的日志文件;
根据所述日志文件,获取所述待测试程序运行时的输出点的实际数量;
根据所述待测试程序的输出点的所述理论数量和所述实际数量,计算获取所述待测试程序的实际代码覆盖率;
根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆盖率预测模型。
在本申请的一个实施例中,所述根据所述实际代码覆盖率对所述覆盖率预测模型进行优化处理,得到优化后的覆盖率预测模型,包括:
根据所述待测试程序的输出点的理论数量,每个输出点的位置信息,以及所述实际代码覆盖率,得到一组新的训练样本;
对模型训练过程中的权值矩阵进行更新,得到更新后的权值矩阵;
根据所述新的训练样本以及所述更新后的权值矩阵,对所述覆盖率预测模型进行优化训练,得到所述优化后的覆盖率预测模型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于京东数字科技控股股份有限公司,未经京东数字科技控股股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011370178.7/2.html,转载请声明来源钻瓜专利网。





