一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动验证Bug的方法和装置与流程

2022-12-02 22:56:41 来源:中国专利 TAG:

一种自动验证bug的方法和装置
技术领域
1.本发明涉及软件开发流程控制领域,具体而言,涉及一种自动验证bug的方法和装置。


背景技术:

2.在软件开发流程控制中,特别是涉及缺陷验证流程中,开发人员提交代码后,需要通知测试人员并由测试人员排期对缺陷进行验证。在缺陷修复与验证的过程中会产生一定的沟通成本,并可能发生通知不及时、效率低等一系列问题。同时,随着流程管理的发展,代码部署系统、自动化测试系统、分布式版本控制系统也广泛地应用,每个系统在不同的服务器上部署,各有各自的账号,因此需要一种方案,可以将缺陷提交和验证嵌入代码提交、版本管理、测试、发布的流程中,以提高代码开发管理的效率。


技术实现要素:

3.为实现上述目的,本技术提供了一种自动验证bug的方法,应用于bug验证调度系统,包括以下步骤:
4.从版本控制系统获取代码更新信息;
5.从代码更新信息获取bug任务;
6.根据bug任务,提交bug测试验证申请;
7.获取bug测试验证结果。
8.其中,从代码更新信息获取bug任务包括:
9.从代码更新信息解析注释信息;
10.从注释信息中提取bug任务,包括判断注释信息中是否包括bug标识,如果存在bug标识,即注释信息中存在bug任务。
11.其中提交bug测试验证申请包括调度部署申请和测试申请;
12.调度部署申请指:向集成部署系统发起部署请求后,获取部署结果;
13.测试申请指:获取部署结果为成功后,向自动测试系统发起测试请求。
14.进一步的,获取bug测试验证结果支持同步和异步方式,bug标识与自动测试系统的测试用例对应的任务id一致。
15.另一方面,本技术提供了一种自动验证bug的装置,应用于bug验证调度系统,包括:
16.信息获取模块:用于从版本控制系统获取代码更新信息;
17.任务获取模块:用于从代码更新信息获取bug任务;
18.任务提交模块:用于根据bug任务,提交bug测试验证申请;
19.任务结果获取模块:获取bug测试验证结果。
20.其中,任务获取模块包括:
21.解析单元:用于从代码更新信息中解析注释信息;
22.任务提取单元:用于从注释信息中提取bug任务,包括判断注释信息中是否包括bug标识,如果存在bug标识,即注释信息中存在bug任务。
23.其中,任务提交模块提交的bug测试验证申请包括调度部署申请和测试申请;
24.调度部署申请指向集成部署系统提出申请,并获取部署结果;
25.测试申请指向自动化测试系统提出指定测试用例的测试申请。
26.进一步的,任务结果获取模块支持以同步和异步的方式获取bug测试验证结果,bug标识与自动测试系统的测试用例对应的任务id一致。
27.根据本发明,可以将研发过程中涉及到的相关系统,在bug处理的环节自动关联、调度,使测试流程更加规范,有效提高开发人员的工作效率。
附图说明
28.图1是根据本发明实施例提供的自动验证bug的方法步骤图;
29.图2是根据本发明实施例提供的自动验证bug的方法时序图;
30.图3是根据本发明实施例提供的自动验证bug的装置结构图。
具体实施方式
31.研发人员的日常开发过程中,通过分布式版本控制系统进行代码版本管理,集成部署系统进行代码部署、自动化测试系统进行测试用例的执行验证、bug系统对运行中产生的缺陷进行提交、分配和处理进度监控,以上系统在各自相关的服务器部署,有各自的账号权限体系。本技术提出的自动验证bug的方法,基于以上日常开发环境,在此基础上增加一套独立的调度方案作为bug验证调度系统,该系统可以抓取代码,抓取代码的来源支持提取分布式版本控制系统,例如git中更新的代码信息,解析其中的bug任务,与自动化测试系统交互,判断对应的bug任务是否修复,最终与bug系统中建立的bug任务进行状态维护。其涉及的系统、数据流的走向如图2所示。bug验证调度系统在运转过程中,不需要管理人员单独维护各系统的权限体系,就可以在bug处理的环节,将现有的系统自动关联、调度,使测试流程更加规范,有效提高开发人员的工作效率。
32.下面结合说明书附图对本发明的具体实现方式做一详细描述。
33.本技术的应用环境为软件开发的日常环境:开发人员获取需求,代码加工后提交到分布式版本控制系统(如git、svn)进行代码的版本管理,本技术实施例中以git进行说明。软件的日常维护中,捕捉到缺陷问题后,在bug系统中创建bug任务,详细描述bug的情况,保存后bug系统生成对应的bugid,bug系统也可以是需求管理的一部分,bug任务也可以作为需求任务的一种。根据开发规范,提交管理的代码中包含需求相关的任务标识,因此,约定提交修复缺陷代码时,git提交信息按bug系统中bugid格式输入,比如:bug:id1005833。
34.如图2所示,在布局了日常开发各种系统的基础上,单独部署出bug验证调度系统,本技术中自动验证bug的方法在bug验证调度系统上执行,如图1所示,包括以下步骤:
35.步骤s100:从版本控制系统获取代码更新信息;
36.本步骤中bug验证调度系统提供api接口与版本控制系统(例如git、svn)进行交互,提供代码抓取程序,根据权限从版本控制系统中抓取符合条件的代码,例如:
37.****/api/v4/projects/项目id/repository/commits?since=
38."2022-08-25t00:00:00.000z",即向git该项目提出抓取“2022-08-2500:00:00.000”以后的代码的请求。
39.在本例中,抓取的结果为:
[0040][0041]
步骤s110:从代码更新信息获取bug任务;
[0042]
本步骤中对从步骤s100中抓到的代码围绕bug任务进行处理,包括以下步骤:
[0043]
步骤s111:从代码更新信息解析注释信息;
[0044]
从抓取的代码中解析指定键名对应的键值,本例中,解析"message",获取注释信息为“bug:id1005833”。
[0045]
步骤s112:从注释信息中检索和获取bug任务指:
[0046]
如果注释信息中包括约定的bug标识,例如本例中存在“bug”,则代码为bug任务,如本技术中,bug任务id为id1005833。
[0047]
步骤s120:根据bug任务,提交bug测试验证申请;
[0048]
如果在步骤s112中获取到待处理的bugid,则在本步骤中提交bug测试验证申请,包括调度部署申请和测试申请;
[0049]
调度部署申请环节,bug验证调度系统与代码部署系统ci\cd系统进行交互,发起调度部署请求,并获取集成部署系统根据本技术进行自动部署后的返回信息;
[0050]
获得ci\cd系统自动部署成功的消息后,即可进入测试申请环节,bug验证调度系统与自动测试系统交互,发起测试请求;
[0051]
测试请求中携带bug任务id,即bug标识,该bug标识提供给自动测试系统用于提取和执行测试用例,因此bug标识与自动测试系统的测试用例对应的任务id一致。
[0052]
自动测试系统中判断该bug任务是否修复,获取修复结果后,向bug系统更新修复状态。
[0053]
步骤s130:获取bug测试验证结果。
[0054]
bug验证调度系统向自动化测试系统提出测试申请后,支持两种方式获得bug测试验证结果,一种发出申请后同步获得验证结果,这种方式自动化测试系统完全准备好,或者整个流程都为实时交互的情况下,即时执行测试用例,及时获取所有的测试结果;
[0055]
自动化测试系统没有完全准备好的情况,或者流程中包括异步交互的情况下,支持异步获取bug测试验证结果的方式,被动接收自动化测试结果。
[0056]
因此,本步骤获取bug测试验证结果支持同步和异步方式。
[0057]
图3提供了应用于bug验证调度系统的自动验证bug的装置结构图,如图所示,包括以下部分:
[0058]
p310信息获取模块:用于从版本控制系统获取代码更新信息;
[0059]
本模块提供api访问接口,与分布式版本控制系统,如git、svn交互获取符合指定要求的代码。
[0060]
p320任务获取模块:用于从代码更新信息获取bug任务;
[0061]
其中包括:
[0062]
p321解析单元:用于从代码更新信息中解析注释信息;
[0063]
解析单元实现注释信息的解析,即在抓取的代码块中提取message对应的内容。
[0064]
p322任务提取单元:用于从注释信息中提取bug任务,并判断注释信息中是否包括bug标识,如果包括bug标识,则该注释信息中存在bug任务,并从中提取bug标识,即bugid。
[0065]
在整个自动验证bug的方案涉及的系统、模块和单元之间,涉及的bug标识规范需要统一,例如:git提交信息按bug系统中bugid格式输入,同时,该bugid与bug系统中的bug任务id、与自动化测试系统中的测试用例对应的任务id一致。
[0066]
p330任务提交模块:用于根据bug任务,提交bug测试验证申请;
[0067]
任务提交模块分别与集成部署系统和自动化测试系统交互:
[0068]
与集成部署系统交互时,提交调度部署申请;
[0069]
与自动化测试系统交互时,提交测试申请,该申请对应的bug标识与自动测试系统的测试用例对应的任务id一致。
[0070]
p340任务结果获取模块:获取bug测试验证结果。
[0071]
任务结果获取模块与自动化测试系统交互,支持以同步或异步的方式获取bug测试验证结果。
[0072]
在本发明中,将研发的过程,从需求、代码管理、发布、测试相关的多个系统联通起来,并在相对薄弱的bug管理环节中,制订自动验证bug的流程,使代码管理和测试流程更加规范,有效减少了人工的干预,提高了开发人员的工作效率,使团队协作更流畅。
[0073]
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领
域的技术人员能思之的变化都应落入本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献