CN106776290A - 一种增量学习的智能持续集成测试方法 - Google Patents
一种增量学习的智能持续集成测试方法 Download PDFInfo
- Publication number
- CN106776290A CN106776290A CN201611071344.7A CN201611071344A CN106776290A CN 106776290 A CN106776290 A CN 106776290A CN 201611071344 A CN201611071344 A CN 201611071344A CN 106776290 A CN106776290 A CN 106776290A
- Authority
- CN
- China
- Prior art keywords
- code
- test
- testing
- learning
- continuous integrating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种增量学习的智能持续集成测试方法,包括以下步骤:步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息;步骤2)定时拉取代码库,统计代码变化结果;步骤3)实现检测机制;步骤4)利用学习数据库系统对产品代码按特性分类。本发明提供的增量学习的智能持续集成测试方法,提供了一套完整的自动化测试框架支撑系统,将增量学习的智能机制引入到持续集成测试系统中,使系统具备学习能力,针对代码变动触发相应的自动化测试用例,其准确性随增量学习的持续而增强,将自动化测试框架和持续集成工具进行有效结合,可以很好地满足实际应用的需要。
Description
技术领域
本发明属于智能持续集成测试技术领域,具体涉及一种增量学习的智能持续集成测试方法。
背景技术
伴随着传统软件工程技术的发展以及互联网的兴起,敏捷开发发展迅速。因为足够的自由度使得敏捷开发上手时间很短,它满足在项目实施过程中进行需求变更的同时强调测试驱动开发(Test-Driven Development,简称TDD)。因此持续集成作为敏捷开发最佳实践更多地被开发团队使用,软件测试也同时提升到软件流程中的重要位置,而非瀑布流中的“尾巴”被人们轻视。为了解放传统手工白盒和黑盒测试重复性劳动,整体提升集成的效率,引入自动化测试替代手工测试。TDD和自动化测试更好的支撑短期的快速迭代敏捷开发,从整体投入产出比评估,解决项目周期冗长、设计和实现问题晚期发现的问题。
但随着软件项目变得越来越庞大,项目更新越来越频繁,以前在中小项目中运行的很好的自动化测试和可持续集,开始遇到新的问题,其结果的有效性开始变低,并且占用大量的人力物力资源,与其释放人力、提高效率的初衷开始背道而驰。
持续集成项目中Jenkins的使用非常广泛,Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。但Jenkins仅提供了简单的触发机制,缺乏针对性。
持续集成也有一些指导框架,如Scrum,它是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法。但此类框架没有给出解决项目过于庞大带来的自动化占用大量资源,效率低下的问题。
传统的持续集成系统仅仅起到监视特定事件并触发一系列操作(包括编译、发布、自动化测试)的功能,其触发机制比较单一,在当今的大型软件项目中,项目代码量过于庞大,更新过于频繁,其对应的自动化测试持续时间过长,执行频率过高,如果精简测试用例,又有遗漏缺陷的风险。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于提供一种可避免出现上述技术缺陷的增量学习的智能持续集成测试方法。
为了实现上述发明目的,本发明提供的技术方案如下:
一种增量学习的智能持续集成测试方法,包括以下步骤:
步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息;
步骤2)定时拉取代码库,统计代码变化结果;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;
步骤3)实现检测机制,即针对要监控的Test plan,通过XMLRPC接口,定期保存整个Test plan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改相应的自动化代码;
步骤4)利用学习数据库系统对产品代码按特性分类。
进一步地,所述智能持续集成测试方法还包括:步骤5)实现一套与现有自动化测试系统的接口。
进一步地,在所述步骤3)中,利用基于NITRATE的测试用例检测系统实现检测机制。
进一步地,所述步骤4)具体为:利用后台量身定制的数据库来存储所述用于后续在数据库中对比查询需要运行的自动化测试的信息,通过一个向后台数据库提交学习数据的接口,让负责人向数据库提交这种代码与特性的对应关系。
进一步地,所述步骤4)还包括:设定一个专门的角色作为维护者,对提交的信息进行审阅。
本发明提供的增量学习的智能持续集成测试方法,提供了一套完整的自动化测试框架支撑系统,将增量学习的智能机制引入到持续集成测试系统中,使系统具备学习能力,针对代码变动触发相应的自动化测试用例,其准确性随增量学习的持续而增强,将自动化测试框架和持续集成工具进行有效结合,监控事件更全面,包括代码的变动,测使用例的变动,并具有一套通知/管理机制促使代码、测使用例、自动化测试代码三方保持一致,触发机制更加智能,具有针对性,能够更有效的针对代码变化选择对应的自动化测试,学习机制是增量式的,并且提供了相应的接口,可以很好地满足实际应用的需要。
附图说明
图1为本发明的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种增量学习的智能持续集成测试方法,包括以下步骤:
步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息;
步骤2)定时拉取代码库,统计代码变化结果;大多数项目的版本管理为基于TAG的版本发布,即多个补丁进入代码库后,在代码中打一个TAG,TAG中往往包含一个版本号;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,例如安排对变化比例最多的前几个特性进行测试,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;
步骤3)实现检测机制,即针对要监控的Test plan,通过XMLRPC接口,定期保存整个Test plan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改相应的自动化代码;本发明利用基于NITRATE的测试用例检测系统实现检测机制,NITRATE是一个开源的测试用例管理系统;代码变化导致测试用例被修改,自动化代码如果想跟上这种变化,必须在第一时间检测测试用例被修改,成熟的质控团队都会使用测试用例管理系统,本发明中使用的是NITRATE;NIRTRATE使用基于Python的Django框架开发,提供XMLRPC的REST API,其本身功能中具有针对每个Case的History功能;
步骤4)利用学习数据库系统对产品代码按特性分类:利用后台量身定制的数据库来存储所述用于后续在数据库中对比查询需要运行的自动化测试的信息,通过一个向后台数据库提交学习数据的接口,让负责人向数据库提交这种代码与特性的对应关系;还可以设定一个专门的角色作为维护者,对提交的信息进行审阅;在检测到代码发生变化后,要通知相关人员,并自动提交针对代码变化的自动化测试,需要智能判断发生改变的代码属于哪些特性,从而触发相应的有效自动化测试;由于项目代码的复杂性,只有相应特性代码的负责人掌握准确的对应关系,让其向学习数据库贡献特定产品代码所属的类别,可以精确到文件、函数、代码行数;
步骤5)由于独立于现有的持续化集成系统的实现,需要实现一套与现有自动化测试系统的接口。
本发明同时检测代码变化和测试用例变化,代码变化触发自动化测试和手动测试用例修改,手动测试用例修改触发自动化测试代码修改请求,双向监控实现代码到手动测试用例、手动测试用例到自动化测试用例的一致性。将增量学习的智能机制引入到持续集成测试系统中,使系统具备学习能力,针对代码变动触发相应的自动化测试用例,其准确性随增量学习的持续而增强。首先是可以精确到文件、函数、代码行数的特性分类数据库,其次是可以向数据库增量提交学习数据的机制及流程。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (5)
1.一种增量学习的智能持续集成测试方法,其特征在于,包括以下步骤:
步骤1)对产品代码变化进行检测,在检测代码变化的同时,收集用于后续在数据库中对比查询需要运行的自动化测试的信息。
步骤2)定时拉取代码库,统计代码变化结果;如果有发现新的TAG,则进一步对比收集相对于上一个TAG发生了变化的代码,将收集到的代码发送到订阅系统,通知相关特性负责人,特性负责人可以第一时间修改测试用例,项目负责人可以根据代码变化统计结果,同时判断哪些特性发生了改变,并自动运行这些特性的自动化测试系统;
步骤3)实现检测机制,即针对要监控的Test plan,通过XMLRPC接口,定期保存整个Test plan,细粒度可调节,每保存一次后,自动与上次的结果进行比较,一旦发现有区别,则通知相关人员修改相应的自动化代码;
步骤4)利用学习数据库系统对产品代码按特性分类。
2.根据权利要求1所述的增量学习的测试方法,其特征在于,所述智能持续集成测试方法还包括:步骤5)实现一套与现有自动化测试系统的接口。
3.根据权利要求1所述的步骤3),其特征在于,在所述步骤3)中,利用基于NITRATE的测试用例检测系统实现检测机制。
4.根据权利要求1所述的步骤4),其特征在于,所述步骤4)具体为:利用后台量身定制的数据库来存储所述用于后续在数据库中对比查询需要运行的自动化测试的信息,通过一个向后台数据库提交学习数据的接口,让负责人向数据库提交这种代码与特性的对应关系。
5.根据权利要求4所述的步骤4),其特征在于,所述步骤4)还包括:设定一个专门的角色作为维护者,对提交的信息进行审阅。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611071344.7A CN106776290B (zh) | 2016-11-28 | 2016-11-28 | 一种增量学习的智能持续集成测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611071344.7A CN106776290B (zh) | 2016-11-28 | 2016-11-28 | 一种增量学习的智能持续集成测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776290A true CN106776290A (zh) | 2017-05-31 |
CN106776290B CN106776290B (zh) | 2020-05-22 |
Family
ID=58905389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611071344.7A Expired - Fee Related CN106776290B (zh) | 2016-11-28 | 2016-11-28 | 一种增量学习的智能持续集成测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776290B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376076A (zh) * | 2018-09-21 | 2019-02-22 | 华迪计算机集团有限公司 | 一种用于集成系统的测试方法及装置 |
CN113535567A (zh) * | 2021-07-21 | 2021-10-22 | 工银科技有限公司 | 软件测试方法、装置、设备和介质 |
CN113672506A (zh) * | 2021-08-06 | 2021-11-19 | 中国科学院软件研究所 | 基于机器学习的动态比例测试用例排序选择方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134643A (ja) * | 2008-12-03 | 2010-06-17 | Hitachi Software Eng Co Ltd | テストケースの選択方法及び選択システム |
CN103176895A (zh) * | 2011-12-22 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种回归测试方法和系统 |
CN103577311A (zh) * | 2012-07-26 | 2014-02-12 | 深圳市世纪光速信息技术有限公司 | 一种测试用例筛选方法及装置 |
CN105718371A (zh) * | 2016-01-21 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种回归测试方法、装置及系统 |
CN105930271A (zh) * | 2016-04-21 | 2016-09-07 | 惠州Tcl移动通信有限公司 | 一种Java程序运行代码覆盖率的测试方法及系统 |
CN105955749A (zh) * | 2016-05-10 | 2016-09-21 | 北京启明星辰信息安全技术有限公司 | 软件项目的持续集成方法和装置 |
-
2016
- 2016-11-28 CN CN201611071344.7A patent/CN106776290B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134643A (ja) * | 2008-12-03 | 2010-06-17 | Hitachi Software Eng Co Ltd | テストケースの選択方法及び選択システム |
CN103176895A (zh) * | 2011-12-22 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种回归测试方法和系统 |
CN103577311A (zh) * | 2012-07-26 | 2014-02-12 | 深圳市世纪光速信息技术有限公司 | 一种测试用例筛选方法及装置 |
CN105718371A (zh) * | 2016-01-21 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种回归测试方法、装置及系统 |
CN105930271A (zh) * | 2016-04-21 | 2016-09-07 | 惠州Tcl移动通信有限公司 | 一种Java程序运行代码覆盖率的测试方法及系统 |
CN105955749A (zh) * | 2016-05-10 | 2016-09-21 | 北京启明星辰信息安全技术有限公司 | 软件项目的持续集成方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376076A (zh) * | 2018-09-21 | 2019-02-22 | 华迪计算机集团有限公司 | 一种用于集成系统的测试方法及装置 |
CN109376076B (zh) * | 2018-09-21 | 2022-04-29 | 华迪计算机集团有限公司 | 一种用于集成系统的测试方法及装置 |
CN113535567A (zh) * | 2021-07-21 | 2021-10-22 | 工银科技有限公司 | 软件测试方法、装置、设备和介质 |
CN113535567B (zh) * | 2021-07-21 | 2023-02-24 | 工银科技有限公司 | 软件测试方法、装置、设备和介质 |
CN113672506A (zh) * | 2021-08-06 | 2021-11-19 | 中国科学院软件研究所 | 基于机器学习的动态比例测试用例排序选择方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106776290B (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659173B (zh) | 一种运维系统及方法 | |
CN108491331A (zh) | 软件测试方法、装置、设备和计算机存储介质 | |
CN109684053A (zh) | 大数据的任务调度方法和系统 | |
WO2016090929A1 (zh) | 软件系统故障诊断方法、服务器及系统 | |
CN106598791B (zh) | 一种基于机器学习的工业设备故障预防性识别方法 | |
CN103197640B (zh) | 生产工艺智能管控系统和方法 | |
CN106776290A (zh) | 一种增量学习的智能持续集成测试方法 | |
CN104407589A (zh) | 面向车间制造过程的实时生成性能主动感知与异常分析方法 | |
CN107315689A (zh) | 基于Git代码文件检索粒度的自动化回归测试方法 | |
CN109993479A (zh) | 采购数据处理方法、装置、存储介质及服务器 | |
CN110110095A (zh) | 一种基于长短期记忆循环神经网络的电力指令文本匹配方法 | |
CN106407640A (zh) | 数据可靠性分析 | |
CN113741958A (zh) | 一种基于云原生的软件开发交付方法及系统 | |
KR102543064B1 (ko) | Rpa 기반 제조환경 모니터링 서비스 제공 시스템 | |
CN112348337A (zh) | 一种基于人工智能的物资需求计划编制系统和方法 | |
Patwardhan | Structured unit testable templated code for efficient code review process | |
CN104484424A (zh) | 基于互联网建筑施工企业资源价格信息库的构建方法 | |
CN109635997A (zh) | 一种设备维护保养时机的预测方法和系统 | |
CN110704278A (zh) | 一种智能服务器管理系统及其管理方法 | |
CN110909888A (zh) | 泛型决策树构建方法、装置、设备及可读存储介质 | |
CN110442514A (zh) | 基于学习算法实现缺陷修复推荐的方法 | |
Nyakuri et al. | IoT and AI based smart soil quality assessment for data-driven irrigation and fertilization | |
CN106292591A (zh) | 一种设备大数据平台监测诊断系统 | |
CN106486391A (zh) | 基于mes系统的半导体制造控制方法及系统 | |
US10956631B2 (en) | Distribution selection and simulation of intermittent data using machine learning (ML) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200522 Termination date: 20201128 |