logo好方法网

一种基于历史测试用例挖掘的精准测试方法


技术摘要:
本发明一种基于历史测试用例挖掘的精准测试方法,包括:A.获取实体元素、测试用例和缺陷记录;B.建立测试用例和缺陷预测模型;C.对测试用例和缺陷预测模型进行训练,得到模型的最优参数;D使用维特比算法计算和输出试用例和缺陷预测结果;E.根据预测结果执行预测用例,  全部
背景技术:
软件应用已经深入到社会生活的各个角落,软件测试的方法也随着对产品的质量 要求及更高的工作效率一直在演化,从最开始的手工测试到自动化测试,从黑盒测试到白 盒测试,从功能测试到借口测试甚至到单元测试,测试理念和技术都发生了日新月异的变 化。 精准测试是一套计算机测试辅助分析系统。精准测试的核心组件包含软件测试示 波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚 类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。通过测试示波 器技术,记录黑盒测试用例对应的代码逻辑,实现测试用例到代码逻辑的精准记录和双向 追溯;代码级的缺陷定位和崩溃分析;精准的测试充分度分析。 目前业界内普遍通行的精准测试技术,是将软件系统的每一个软件模块、软件代 码与每个测试用例建立关联关系,当软件系统的软件模块、软件代码发生变更时,运行与之 相关联的测试用例。这样的精准测试可以减少测试用例的运行范围,减少测试耗时,提高测 试精确度,但也存在三个问题:只能在回归测试阶段运行已有的测试用例来做精准测试,无 法评估精准测试的效果,无法指导未来的测试用例精确设计和精确运行。
技术实现要素:
本发明提供一种基于历史测试用例挖掘的精准测试方法。使用客观数据和机器学 习技术来自动化计算和预测应当执行哪些测试用例就可以精确的测试软件、软件有可能存 在哪些缺陷,从而能够指导测试人员进行精准测试。 本发明一种基于历史测试用例挖掘的精准测试方法,包括: A.根据软件模块中包含的实体元素,在数据库的实体元素表中查询出对应的实体元素 数据,根据实体元素数据的id,在测试用例表中查询出对应的实体元素关联的所有测试用 例数据;根据实体元素数据和测试用例数据,在数据库的缺陷表中查询出实体元素和其测 试用例数据一起关联的所有缺陷数据记录; B.初始化隐马可夫模型参数,建立测试用例和缺陷预测模型; C.将得到的实体元素数据、测试用例数据和缺陷数据一起作为训练样本集,对测试用 例和缺陷预测模型进行训练,当训练误差值低于阈值时,终止训练,得到满足要求的测试用 例和缺陷预测模型的最优参数; D.根据软件模块的当前变更内容,分析变更内容中所包含的实体元素,在数据库中查 询出这些实体元素相对应的id,形成待预测的实体元素id序列; E.建立后台管理系统,在后台管理系统中建立精准测试执行页面,在该页面输入待预 4 CN 111597121 A 说 明 书 2/7 页 测的实体元素id序列,后台程序将待预测的实体元素id序列和最优参数的测试用例和缺陷 预测模型一起输入维特比算法,运算后得到最优的测试用例id序列和缺陷id序列; 根据得到的测试用例id序列和缺陷id序列,在测试用例表中查询出对应的测试用例, 从而得到测试用例预测结果,后台程序将测试用例预测结果展示在该页面上,测试人员在 该页面上直接执行测试用例; F.在后台管理系统中建立精准测试效果分析页面,在该页面输入待预测的实体元素id 序列,后台程序将待预测的实体元素id序列和最优参数的测试用例和缺陷预测模型一起输 入维特比算法,运算后得到最优的测试用例id序列和缺陷id序列; 根据得到的测试用例id序列和缺陷id序列,在测试用例表中查询出对应的测试用例, 从而得到测试用例预测结果,测试人员标记测试用例预测结果是否有效,后台程序根据测 试用例是否有效标记,计算有效测试用例在测试用例集中的所占百分比,并将计算结果返 回给该页面做展示; G.在后台管理系统中建立缺陷预测效果分析页面,  在该页面输入待预测的实体元素 id序列,后台程序将待预测的实体元素id序列和最优参数的测试用例和缺陷预测模型一起 输入维特比算法,运算后得到最优的测试用例id序列和缺陷id序列; 根据得到的测试用例id序列和缺陷id序列,在测试用例表和缺陷表中查询出对应的测 试用例和缺陷,从而得到测试用例预测结果和缺陷预测结果;根据得到的测试用例预测结 果和缺陷预测结果,测试人员评判当前的测试用例集是否包括预测测试用例,是否可以充 分覆盖预测的缺陷,如果不足则补充设计测试用例,进一步扩大测试范围。 本发明根据软件功能、软件模块和软件代码等实体元素与测试用例之间的关系、 测试用例与缺陷之间的关系,构建训练数据集,设计机器学习预测模型进行训练。模型训练 结束后,将待预测的实体元素集,输入预测模型进行预测,可以得到每个元素当前需要执行 的测试用例以及可能会产生的缺陷的预测值。一方面,可以根据预测结果执行这些测试用 例,直接进行精准测试;另一方面,可以根据预测值度量当前运行的测试用例的精准测试的 效果,也可以指导测试人员针对可能的缺陷补充设计新的测试用例进行测试。这种方法以 客观数据的挖掘和分析来驱动精准测试,具有较高的可信度和准确度。 进一步的,步骤  B包括:以实体元素的id序列为观测序列,测试用例的id序列和缺 陷的id序列为隐藏状态序列,建立隐马可夫模型λ=(A,B,π),其中A为隐藏状态序列的状态 转移概率的矩阵,B为隐藏状态序列生成观测序列的概率矩阵,π为初始的隐藏状态序列的 概率分布矩阵; 初始化隐马可夫模型参数:根据实体元素的id序列到测试用例id序列和缺陷的id序列 的转换,将模型参数变量设置为1,表示实体元素到测试用例用例和缺陷的转换是必然发生 的,每一个实体元素均有相对应的测试用例,以及与测试用例相关联的缺陷。 进一步的,步骤C包括:基于步骤A得到的训练样本集,从训练样本集中任意挑选一 组数据,输入初始化参数后的隐马可夫模型,进行隐马可夫模型参数的估计,具体采用极大 似然估计法来估计模型参数; 根据得到的隐马可夫模型参数的估计结果后,通过损失函数进行训练效果度量,若度 量结果超过给定阈值,则使用训练样本集中余下的其他训练数据,重复前一估计步骤,进行 参数的调校,最后得到一组能够最优拟合训练样本集的模型参数,即得到参数最优的测试 5 CN 111597121 A 说 明 书 3/7 页 用例和缺陷预测模型。 本发明使用客观数据和机器学习技术来自动化计算和预测应当执行哪些测试用 例就可以精确的测试软件、软件有可能存在哪些缺陷,从而能够指导测试人员进行精准测 试,大大节约了测试时间、降低了测试成本。同时,由于基于统计分析和机器学习技术,结果 的精确度和可信度大大提高。 以下结合实施例的
分享到:
收藏