[发明专利]一种促进测试代码与产品代码协同演化的方法及终端设备有效
| 申请号: | 202110245711.5 | 申请日: | 2021-03-05 | 
| 公开(公告)号: | CN113010420B | 公开(公告)日: | 2023-05-30 | 
| 发明(设计)人: | 王斯南;刘蕾;刘烨庞 | 申请(专利权)人: | 南方科技大学 | 
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N20/00 | 
| 代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 徐凯凯 | 
| 地址: | 518055 广东*** | 国省代码: | 广东;44 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 促进 测试 代码 产品 协同 演化 方法 终端设备 | ||
本发明公开了一种促进测试代码与产品代码协同演化的方法及终端设备,方法包括步骤:从项目代码仓库中获取历史实例代码数据,并构建第一训练数据集;基于第一训练数据集对分类器进行训练,得到训练后分类器;基于训练后分类器自动识别过时的单元测试用例;对所述代码数据进行预处理,得到序列数据,根据序列数据构建第二训练数据集;基于第二训练数据集对seq2seq模型进行训练,得到训练后seq2seq模型;将导致单元测试用例过时的产品代码更改和原始测试代码输入所述训练后seq2seq模型中,输出完整的补丁,通过补丁对所述过时的单元测试用例进行修复,促进单元测试代码与产品代码协同演化。本发明实现了高效准确地促进单元测试代码与产品代码协同演化。
技术领域
本发明涉及软件测试技术领域,尤其涉及一种促进测试代码与产品代码协同演化的方法及终端设备。
背景技术
软件测试技术被广泛应用于软件质量保证中,在工程实践中,软件开发人员经常编写测试代码,用以验证产品代码是否符合预期的软件需求。由于软件产品经常需要演化、更新,所以当产品代码经历诸如添加功能、删除功能等重大更改时,测试代码应该与相应的产品代码协同演化。这种协同演化使得测试代码持续具备软件质量保证的能力。若测试代码没有及时更新,可能导致产品代码中的缺陷难以被发现,也可能导致错误的告警,造成测试资源的浪费。然而,对于开发人员来说,保持测试代码的实时更新并不容易。有研究表明,在实际软件项目中,测试代码通常无法与产品代码协同演化,主要原因有以下几点:
1、缺乏维护测试用例或保障软件质量的资源;
2、缺少工具定位特定功能与其对应的测试用例;
3、运行所有测试用例较为耗时。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种促进测试代码与产品代码协同演化的方法及终端设备,旨在解决现有测试代码通常无法与产品代码协同演化的问题。
本发明的技术方案如下:
一种促进测试代码与产品代码协同演化的方法,其中,包括步骤:
从项目代码仓库中获取历史实例代码数据,并构建第一训练数据集;
基于所述第一训练数据集对分类器进行训练,得到训练后分类器;
基于所述训练后分类器自动识别过时的单元测试用例;
对所述代码数据进行预处理,得到序列数据,根据所述序列数据构建第二训练数据集;
基于所述第二训练数据集对seq2seq模型进行训练,得到训练后seq2seq模型;
将导致单元测试用例过时的产品代码更改和原始测试代码输入所述训练后seq2seq模型中,输出完整的补丁,通过所述补丁对所述过时的单元测试用例进行修复,促进单元测试代码与产品代码协同演化。
所述促进测试代码与产品代码协同演化的方法,其中,所述从项目代码仓库中获取历史实例代码数据,并构建第一训练数据集的步骤包括:
将从项目代码仓库中获取的历史实例代码数据划分为正样本和负样本,其中,正样本中测试代码与产品代码协同演化,负样本中测试代码不与产品代码协同演化;
根据测试文件级别对所述正样本进行标记,构建第一训练数据集。
所述促进测试代码与产品代码协同演化的方法,其中,根据测试文件级别对所述正样本进行标记的步骤包括:
若测试文件级别为二分类预测时,则将正样本标记为应该更改和不更改两类;
若测试文件级别为多分类预测时,则将正样本标记为应该创建、应该编辑和应该删除三类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南方科技大学,未经南方科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110245711.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种偏心式磨辊装置
 - 下一篇:一种基于双目相机与惯导传感器信息融合的定位方法
 





