一种增量学习的智能持续集成测试方法技术

技术编号:15541589 阅读:65 留言:0更新日期:2017-06-05 10:55
本发明专利技术涉及一种增量学习的智能持续集成测试方法,包括以下步骤:步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息;步骤2)定时拉取代码库,统计代码变化结果;步骤3)实现检测机制;步骤4)利用学习数据库系统对产品代码按特性分类。本发明专利技术提供的增量学习的智能持续集成测试方法,提供了一套完整的自动化测试框架支撑系统,将增量学习的智能机制引入到持续集成测试系统中,使系统具备学习能力,针对代码变动触发相应的自动化测试用例,其准确性随增量学习的持续而增强,将自动化测试框架和持续集成工具进行有效结合,可以很好地满足实际应用的需要。

An incremental learning approach for intelligent continuous integration testing

The invention relates to a continuous integration testing method for incremental learning intelligence, which comprises the following steps: 1) the product code changes were detected in the change detection code at the same time, collected for subsequent comparison in the database query requires automated test information operation; step 2) timing pull code base, statistical code change results step 3); detection system; step 4) using the learning database system of products according to the characteristics of the classification code. Continuous integration testing method of incremental learning intelligence provided by the invention is to provide a complete set of test automation framework supporting system, will introduce the intelligent mechanism of incremental learning to continuous integration test system, make the system have the ability to learn, to trigger automated test case code changes accordingly, its accuracy with incremental learning and continuous enhancement that will be the test automation framework and continuous integration tools are combined, can well meet the needs of practical application.

【技术实现步骤摘要】
一种增量学习的智能持续集成测试方法
本专利技术属于智能持续集成测试
,具体涉及一种增量学习的智能持续集成测试方法。
技术介绍
伴随着传统软件工程技术的发展以及互联网的兴起,敏捷开发发展迅速。因为足够的自由度使得敏捷开发上手时间很短,它满足在项目实施过程中进行需求变更的同时强调测试驱动开发(Test-DrivenDevelopment,简称TDD)。因此持续集成作为敏捷开发最佳实践更多地被开发团队使用,软件测试也同时提升到软件流程中的重要位置,而非瀑布流中的“尾巴”被人们轻视。为了解放传统手工白盒和黑盒测试重复性劳动,整体提升集成的效率,引入自动化测试替代手工测试。TDD和自动化测试更好的支撑短期的快速迭代敏捷开发,从整体投入产出比评估,解决项目周期冗长、设计和实现问题晚期发现的问题。但随着软件项目变得越来越庞大,项目更新越来越频繁,以前在中小项目中运行的很好的自动化测试和可持续集,开始遇到新的问题,其结果的有效性开始变低,并且占用大量的人力物力资源,与其释放人力、提高效率的初衷开始背道而驰。持续集成项目中Jenkins的使用非常广泛,Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。但Jenkins仅提供了简单的触发机制,缺乏针对性。持续集成也有一些指导框架,如Scrum,它是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法。但此类框架没有给出解决项目过于庞大带来的自动化占用大量资源,效率低下的问题。传统的持续集成系统仅仅起到监视特定事件并触发一系列操作(包括编译、发布、自动化测试)的功能,其触发机制比较单一,在当今的大型软件项目中,项目代码量过于庞大,更新过于频繁,其对应的自动化测试持续时间过长,执行频率过高,如果精简测试用例,又有遗漏缺陷的风险。
技术实现思路
针对上述现有技术中存在的问题,本专利技术的目的在于提供一种可避免出现上述技术缺陷的增量学习的智能持续集成测试方法。为了实现上述专利技术目的,本专利技术提供的技术方案如下:一种增量学习的智能持续集成测试方法,包括以下步骤:步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息;步骤2)定时拉取代码库,统计代码变化结果;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;步骤3)实现检测机制,即针对要监控的Testplan,通过XMLRPC接口,定期保存整个Testplan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改相应的自动化代码;步骤4)利用学习数据库系统对产品代码按特性分类。进一步地,所述智能持续集成测试方法还包括:步骤5)实现一套与现有自动化测试系统的接口。进一步地,在所述步骤3)中,利用基于NITRATE的测试用例检测系统实现检测机制。进一步地,所述步骤4)具体为:利用后台量身定制的数据库来存储所述用于后续在数据库中对比查询需要运行的自动化测试的信息,通过一个向后台数据库提交学习数据的接口,让负责人向数据库提交这种代码与特性的对应关系。进一步地,所述步骤4)还包括:设定一个专门的角色作为维护者,对提交的信息进行审阅。本专利技术提供的增量学习的智能持续集成测试方法,提供了一套完整的自动化测试框架支撑系统,将增量学习的智能机制引入到持续集成测试系统中,使系统具备学习能力,针对代码变动触发相应的自动化测试用例,其准确性随增量学习的持续而增强,将自动化测试框架和持续集成工具进行有效结合,监控事件更全面,包括代码的变动,测使用例的变动,并具有一套通知/管理机制促使代码、测使用例、自动化测试代码三方保持一致,触发机制更加智能,具有针对性,能够更有效的针对代码变化选择对应的自动化测试,学习机制是增量式的,并且提供了相应的接口,可以很好地满足实际应用的需要。附图说明图1为本专利技术的流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本专利技术做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,一种增量学习的智能持续集成测试方法,包括以下步骤:步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息;步骤2)定时拉取代码库,统计代码变化结果;大多数项目的版本管理为基于TAG的版本发布,即多个补丁进入代码库后,在代码中打一个TAG,TAG中往往包含一个版本号;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,例如安排对变化比例最多的前几个特性进行测试,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;步骤3)实现检测机制,即针对要监控的Testplan,通过XMLRPC接口,定期保存整个Testplan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改相应的自动化代码;本专利技术利用基于NITRATE的测试用例检测系统实现检测机制,NITRATE是一个开源的测试用例管理系统;代码变化导致测试用例被修改,自动化代码如果想跟上这种变化,必须在第一时间检测测试用例被修改,成熟的质控团队都会使用测试用例管理系统,本专利技术中使用的是NITRATE;NIRTRATE使用基于Python的Django框架开发,提供XMLRPC的RESTAPI,其本身功能中具有针对每个Case的History功能;步骤4)利用学习数据库系统对产品代码按特性分类:利用后台量身定制的数据库来存储所述用于后续在数据库中对比查询需要运行的自动化测试的信息,通过一个向后台数据库提交学习数据的接口,让负责人向数据库提交这种代码与特性的对应关系;还可以设定一个专门的角色作为维护者,对提交的信息进行审阅;在检测到代码发生变化后,要通知相关人员,并自动提交针对代码变化的自动化测试,需要智能判断发生改变的代码属于哪些特性,从而触发相应的有效自动化测试;由于项目代码的复杂性,只有相应特性代码的负责人掌握准确的对应关系,让其向学习数据库贡献特定产品代码所属的类别,可以精确到文件、函数、代码行数;步骤本文档来自技高网
...
一种增量学习的智能持续集成测试方法

【技术保护点】
一种增量学习的智能持续集成测试方法,其特征在于,包括以下步骤:步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息。步骤2)定时拉取代码库,统计代码变化结果;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;步骤3)实现检测机制,即针对要监控的Test plan,通过XMLRPC接口,定期保存整个Test plan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改相应的自动化代码;步骤4)利用学习数据库系统对产品代码按特性分类。

【技术特征摘要】
1.一种增量学习的智能持续集成测试方法,其特征在于,包括以下步骤:步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息。步骤2)定时拉取代码库,统计代码变化结果;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;步骤3)实现检测机制,即针对要监控的Testplan,通过XMLRPC接口,定期保存整个Testplan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改...

【专利技术属性】
技术研发人员:胡少龙陈伟王进钊曾菊香
申请(专利权)人:北京一铭铭鑫软件有限公司
类型:发明
国别省市:北京,11

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

1