CN107480061B - 一种基于Jenkins CI构建变化模块的自动化回归测试方法 - Google Patents
一种基于Jenkins CI构建变化模块的自动化回归测试方法 Download PDFInfo
- Publication number
- CN107480061B CN107480061B CN201710660015.4A CN201710660015A CN107480061B CN 107480061 B CN107480061 B CN 107480061B CN 201710660015 A CN201710660015 A CN 201710660015A CN 107480061 B CN107480061 B CN 107480061B
- Authority
- CN
- China
- Prior art keywords
- construction
- jenkins
- building
- software installation
- module
- 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.)
- Active
Links
Images
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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于Jenkins CI构建变化模块的自动化回归测试方法,其中,所述的Jenkins CI提供一个持续集成系统,基于Jenkins CI构建的软件安装包里记录了构建小包和构建号,构建号的变化表示构建小包对应的构建模块发生变化;所述的自动化回归测试方法通过对比Jenkins CI构建所提供的新、老版本软件安装包的构建小包和构建号,来逐一分析变化的构建模块,从而得到新、老版本之间发生变化的子功能,再进一步自动触发变化的子功能所对应的自动化用例执行。与现有技术相比,本发明具有回归测试效率高、可信度高等优点。
Description
技术领域
本发明涉及软件测试技术领域,尤其是涉及一种基于Jenkins CI构建变化模块的自动化回归测试方法。
背景技术
回归测试存在于软件开发周期的任何一个阶段,当软件发生迭代更新时,需对现有的所有功能进行全量回归测试,以确认本次修改是否达到了预期的目的,或检查本次修改是否损害了原有的正常功能。在此过程中,可能还需要补充新的测试用例来测试新增功能或改进功能。
传统的回归测试策略是采用手工测试的方式进行全量测试,全量测试涉及的测试范围广,而手工测试的成本高、效率低,采用传统回归测试策略已无法满足日益加快的软件迭代步伐。改良后的回归测试策略采用针对性测试加自动测试的方式,针对性测试通过分析代码修改部分,仅对受影响的软件子模块进行回归测试,大幅度缩减了测试范围,不仅抓住了回归测试的重点,且仍能保证测试效果;同时,自动化测试减少了人工重复工作,进一步提升了测试效率。因此,发掘一种测试范围更精准、测试效率更高效的回归测试方法尤为重要。
Jenkins CI可提供一个易于使用的持续集成系统,该系统易于开发人员集成项目的变化,且易于用户获取最新的构建结果。基于Jenkins CI构建的软件安装包里面记录了构建小包和构建号,若构建号发生变化,代表构建小包出现更新,即意味着该构建小包对应的软件子模块发生了变化。通过分析变化模块所对应的软件功能,则可做到针对性的回归测试。同时,通过Jenkins和Robot Framework测试框架的集成,可进一步实现全自动化式的针对性回归测试,大大节省了人力成本。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于JenkinsCI构建变化模块的自动化回归测试方法。
本发明的目的可以通过以下技术方案来实现:
一种基于Jenkins CI构建变化模块的自动化回归测试方法,其中,所述的JenkinsCI提供一个持续集成系统,基于Jenkins CI构建的软件安装包里记录了构建小包和构建号,构建号的变化表示构建小包对应的构建模块发生变化;所述的自动化回归测试方法通过对比Jenkins CI构建所提供的新、老版本软件安装包的构建小包和构建号,来逐一分析变化的构建模块,从而得到新、老版本之间发生变化的子功能,再进一步自动触发变化的子功能所对应的自动化用例执行。
所述的自动化回归测试方法具体包括以下步骤:
前期准备工作:确认软件安装包的上传状态;完成所有构建模块与模块功能说明的对应关系表;添加测试构建任务;准备用于分析构建模块变化及自动触发用例执行的运行机器;
自动分析回归测试范围并自动触发自动化用例执行:拷贝老版本及新版本的软件安装包至运行机器的同一目录,将这两种安装包进行对比后,获取新版本的软件安装包中构建号发生变化的构建模块;结合构建模块与模块功能说明的对应关系表,获取粗粒度的回归测试范围,并自动触发Jenkins的自动化用例测试任务;
回归测试结果的反馈与跟踪:查看并分析用例运行结果,对异常或失败用例的自动回归测试结果完成bug跟踪修复和验证工作。
所述的前期准备工作具体包括,
(a)Jenkins CI构建所提供的软件安装包已上传至ftp服务器,记为A;
(b)创建软件安装包的所有构建模块与模块功能说明的对应关系表;
(c)所有构建模块均已完成基于Robot Framework测试框架的自动化测试用例,并已在Jenkins上添加测试构建任务;
(d)准备一台机器B,用于分析软件安装包的变化构建模块并自动触发自动化用例执行的运行环境。
所述的自动分析回归测试范围并自动触发自动化用例执行的具体操作为,
(1)从所述的A上拷贝老版本的软件安装包至机器B的某一目录;
(2)从所述的A上拷贝新版本的软件安装包至机器B的同一目录;
(3)在机器B上运行脚本,逐一对比新、老版本软件安装包的构建号,最终获取新版本的软件安装中构建号发生变化的构建模块名;
(4)在机器B上运行脚本,以步骤(3)中发生变化的构建模块为输入,结合构建模块与模块功能说明的对应关系表,获取精度更高的回归测试范围;将回归测试范围上传至ftp服务器用于查阅或归档。
在机器B上运行脚本,自动触发Jenkins的自动化用例测试任务,以验证步骤(4)中回归测试范围内软件功能的健壮性。
所述的前期准备工作中的四项内容顺序不分先后。
与现有技术相比,本发明具有以下优点:
1、提升了回归测试效率:本发明可实现自动分析回归测试范围并自动触发相应的测试用例执行,回归测试范围更精准,测试人员工作量大幅度缩减;在未引入该测试方法前,假设执行某一软件的回归测试需要花费30人*1天的工作量,引入该方法后,同样的工作预计只需要花费2人*1天;
2、增加了回归测试的可信度:自动测试用例均有预设的预期结果,可以做到每测试一次时,都能够进行完整且准确的结果比较,相比于手工测试,本发明不会出现人为疏忽或遗漏的情况。
附图说明
图1为基于Jenkins CI构建变化模块的自动化回归测试方法的技术方案流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
本发明提出了一种基于Jenkins CI构建变化模块的自动化回归测试方法,该方法基于Jenkins CI持续集成平台和Robot Framework测试框架,通过对比Jenkins CI构建所提供的新、老版本软件安装包的小包构建号,来逐一分析变化的构建模块,从而得到新、老版本之间发生变化的子功能,再进一步自动触发变化的子功能所对应的自动化用例执行。
如图1所示,一种基于Jenkins CI构建变化模块的自动化回归测试方法的主要步骤包括,
一、前期准备工作:
(a)Jenkins CI构建所提供的软件安装包已上传至ftp服务器,记为A;
(b)已完成软件安装包的所有构建模块与模块功能说明的对应关系表;
(c)所有构建模块均已完成基于Robot Framework测试框架的自动化测试用例,并已在Jenkins上添加测试构建任务;
(d)准备一台机器B,用于分析软件安装包的变化构建模块并自动触发自动化用例执行的运行环境。
以上四项前期准备工作内容顺序不分先后。
二、自动分析回归测试范围并自动触发自动化用例执行:
(1)从前期准备工作的A上拷贝老版本的软件安装包至机器B的某一目录;
(2)从前期准备工作的A上拷贝新版本的软件安装包至机器B的同一目录;
(3)在机器B上运行脚本,逐一对比新、老版本软件安装包的构建号,最终获取新版本的软件安装中构建号发生变化的构建模块名;
(4)在机器B上运行脚本,以步骤(3)的发生变化的构建模块为输入,结合构建模块与模块功能说明的对应关系表,得到更高精度的回归测试范围;将回归测试范围上传至ftp服务器可用于查阅或归档;
(5)在机器B上运行脚本,自动触发Jenkins的自动化用例测试任务,以验证步骤(4)中回归测试范围内软件功能的健壮性。
三、回归测试结果的反馈与跟踪:在Jenkins上查看上述步骤(5)中的用例运行结果,分析异常或失败用例,做好bug跟踪修复和验证工作,完成回归测试的结果反馈与跟踪。
实施例
示例:以某安装包的2个版本为例,自动获取回归测试范围并触发自动化测试用例执行。
1、拷贝老版本包的VersionDetails,命名为VersionDetails1;
2、拷贝新版本包的VersionDetails,命名为VersionDetails2;
3、比较构建号来获取构建变化模块;
VersionDetails文档记录了小包和构建号。可以通过对前后两个大包的VersionDetails文档逐一比较构建号,构建号不同就会意味着模块有变更。
脚本实现说明:
#a、输出VersionDetails2中有,但VersionDetails1中没有的行,结果输出到tmp_server.txt
grep-vwf VersionDetails1VersionDetails2>tmp_server.txt
#b、只获取变化模块的名称
./get_changed_server.sh***逐行读取a中的tmp_server.txt文件,以-为分隔符获取到构建号发生变化的模块,保存到changed_server.txt***。
sed-i'1d'changed_server.txt***去除第一行关于构建包名称的无用信息***。
4、结合构建模块关系表得到精度更高的回归范围:
在机器上运行脚本,根据构建模块与模块说明的对应关系表,获取更高精度的回归范围。
5、触发Jenkins自动化用例测试任务自动验证功能:
在机器上运行脚本,根据获取的回归范围自动触发Jenkins自动化用例测试任务。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (3)
1.一种基于Jenkins CI构建变化模块的自动化回归测试方法,其中,所述的JenkinsCI提供一个持续集成系统,基于Jenkins CI构建的软件安装包里记录了构建小包和构建号,构建号的变化表示构建小包对应的构建模块发生变化;其特征在于,所述的自动化回归测试方法通过对比Jenkins CI构建所提供的新、老版本软件安装包的构建小包和构建号,来逐一分析变化的构建模块,从而得到新、老版本之间发生变化的子功能,再进一步自动触发变化的子功能所对应的自动化用例执行;
所述的自动化回归测试方法具体包括以下步骤:
前期准备工作:确认软件安装包的上传状态;完成所有构建模块与模块功能说明的对应关系表;添加测试构建任务;准备用于分析构建模块变化及自动触发用例执行的运行机器;
自动分析回归测试范围并自动触发自动化用例执行:拷贝老版本及新版本的软件安装包至运行机器的同一目录,将这两种安装包进行对比后,获取新版本的软件安装包中构建号发生变化的构建模块;结合构建模块与模块功能说明的对应关系表,获取粗粒度的回归测试范围,并自动触发Jenkins的自动化用例测试任务;
回归测试结果的反馈与跟踪:查看并分析用例运行结果,对异常或失败用例的自动回归测试结果完成bug跟踪修复和验证工作;
所述的前期准备工作具体包括,
(a)Jenkins CI构建所提供的软件安装包已上传至ftp服务器,记为A;
(b)创建软件安装包的所有构建模块与模块功能说明的对应关系表;
(c)所有构建模块均已完成基于Robot Framework测试框架的自动化测试用例,并已在Jenkins上添加测试构建任务;
(d)准备一台机器B,用于分析软件安装包的变化构建模块并自动触发自动化用例执行的运行环境;
所述的自动分析回归测试范围并自动触发自动化用例执行的具体操作为,
(1)从所述的A上拷贝老版本的软件安装包至机器B的某一目录;
(2)从所述的A上拷贝新版本的软件安装包至机器B的同一目录;
(3)在机器B上运行脚本,逐一对比新、老版本软件安装包的构建号,最终获取新版本的软件安装中构建号发生变化的构建模块名;
(4)在机器B上运行脚本,以步骤(3)中发生变化的构建模块为输入,结合构建模块与模块功能说明的对应关系表,获取精度更高的回归测试范围;将回归测试范围上传至ftp服务器用于查阅或归档。
2.根据权利要求1所述的一种基于Jenkins CI构建变化模块的自动化回归测试方法,其特征在于,在机器B上运行脚本,自动触发Jenkins的自动化用例测试任务,以验证步骤(4)中回归测试范围内软件功能的健壮性。
3.根据权利要求1所述的一种基于Jenkins CI构建变化模块的自动化回归测试方法,其特征在于,所述的前期准备工作中的四项内容顺序不分先后。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710660015.4A CN107480061B (zh) | 2017-08-04 | 2017-08-04 | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710660015.4A CN107480061B (zh) | 2017-08-04 | 2017-08-04 | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107480061A CN107480061A (zh) | 2017-12-15 |
CN107480061B true CN107480061B (zh) | 2021-03-30 |
Family
ID=60597715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710660015.4A Active CN107480061B (zh) | 2017-08-04 | 2017-08-04 | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480061B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508290A (zh) * | 2018-10-25 | 2019-03-22 | 深圳点猫科技有限公司 | 一种基于教育系统的自动化测试方法及电子设备 |
CN109977016B (zh) * | 2019-03-28 | 2022-09-20 | 恒生电子股份有限公司 | 一种测试触发方法、装置和设备以及一种测试系统 |
CN116298825B (zh) * | 2023-05-08 | 2023-10-20 | 杭州长川科技股份有限公司 | 芯片测试系统和方法、设备、驱动访问装置和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678120A (zh) * | 2013-11-12 | 2014-03-26 | 北京京东尚科信息技术有限公司 | 基于建模的web应用自动化测试方法 |
CN105446878A (zh) * | 2015-11-09 | 2016-03-30 | 上海爱数信息技术股份有限公司 | 一种持续的程序自动化测试方法 |
CN106066820A (zh) * | 2016-06-08 | 2016-11-02 | 上海爱数信息技术股份有限公司 | 验证挂载恢复卷的自动化测试方法及系统 |
CN106201879A (zh) * | 2016-07-08 | 2016-12-07 | 中国银联股份有限公司 | 一种自动化测试方法及装置 |
CN106547688A (zh) * | 2016-10-19 | 2017-03-29 | 厦门市美亚柏科信息股份有限公司 | 基于Windows的产品自动化测试方法及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025692B2 (en) * | 2015-08-06 | 2018-07-17 | Paypal, Inc. | Scalable continuous integration and delivery systems and methods |
-
2017
- 2017-08-04 CN CN201710660015.4A patent/CN107480061B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678120A (zh) * | 2013-11-12 | 2014-03-26 | 北京京东尚科信息技术有限公司 | 基于建模的web应用自动化测试方法 |
CN105446878A (zh) * | 2015-11-09 | 2016-03-30 | 上海爱数信息技术股份有限公司 | 一种持续的程序自动化测试方法 |
CN106066820A (zh) * | 2016-06-08 | 2016-11-02 | 上海爱数信息技术股份有限公司 | 验证挂载恢复卷的自动化测试方法及系统 |
CN106201879A (zh) * | 2016-07-08 | 2016-12-07 | 中国银联股份有限公司 | 一种自动化测试方法及装置 |
CN106547688A (zh) * | 2016-10-19 | 2017-03-29 | 厦门市美亚柏科信息股份有限公司 | 基于Windows的产品自动化测试方法及其系统 |
Non-Patent Citations (3)
Title |
---|
"Highly scalable model for tests execution in cloud environments";Bhanu Prakash Gopularam 等;《2012 18th Annual International Conference on Advanced Computing and Communications (ADCOM)》;20121216;1-5 * |
"RFS的web自动化验收测试——第15讲 RF结合Jenkins";齐涛-道长;《https://blog.csdn.net/tulituqi/article/details/17846463》;20140105;1-2 * |
"基于Jenkins的移动通信业务自动化测试平台的设计与实现";朱红;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170215;I138-1903 * |
Also Published As
Publication number | Publication date |
---|---|
CN107480061A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726132B (zh) | 一种软件测试方法及软件测试自动化管理系统 | |
US9183123B2 (en) | Performance tests in a continuous deployment pipeline | |
US7165191B1 (en) | Automated verification of user interface tests on low-end emulators and devices | |
CN101930400B (zh) | Sdk自动化测试系统及方法 | |
CN105955749A (zh) | 软件项目的持续集成方法和装置 | |
US20120167054A1 (en) | Collecting Program Runtime Information | |
CN107480061B (zh) | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 | |
CN108073400A (zh) | 软件自动化构建方法、服务器及存储介质 | |
CN103019942B (zh) | 一种基于安卓系统的待测应用自动测试方法和系统 | |
CN105302716A (zh) | 合流开发模式下的测试方法、装置 | |
CN105138386A (zh) | 基于Jenkins与vManager的逻辑设计验证持续集成平台 | |
CN104375914A (zh) | 一种服务器内部压力变化自动测试方法 | |
CN105335287A (zh) | 一种自动化测试方法及装置 | |
CN101937396B (zh) | 软件程序中变量的不安全使用的检测方法 | |
US9697107B2 (en) | Testing applications | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN111611154B (zh) | 一种回归测试的方法、装置和设备 | |
US8458664B2 (en) | Command line interface permutation executor | |
CN101937389A (zh) | 一种让代码分析工具获取被检测软件包编译过程的方法 | |
CN117370203A (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN111506339A (zh) | 软件开发工具包sdk的变更信息处理方法及装置 | |
JP2009245066A (ja) | ソフトウェアマイグレーションシステム及び方法 | |
CN107797926B (zh) | 一种实现linux应用测试自动化的系统及方法 | |
Al-Kofahi et al. | Fault localization for Make-Based build crashes |
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 |