首页> 中国专利> 一种面向软件质量提升的持续自动测试平台

一种面向软件质量提升的持续自动测试平台

摘要

本发明公开了一种面向软件质量提升的持续自动测试平台,包括持续集成服务器、软件配置管理系统、测试模块、自动化测试流程管理及数据分析模块;所述持续集成服务器通过插件式部署,实现版本库状态监视、定时运行、轮询触发运行测试工具集成调用;持续集成服务器调用命令接口并调用执行脚本,自动触发测试模块中的测试工具运行,完成自动化测试及报告生成。本发明通过持续集成、测试任务自动执行、测试报告自动反馈,提升软件过程管控有效性,保证软件代码始终处于一个临近发布的健康状态,将测试工作前移,降低后期质量风险。

著录项

  • 公开/公告号CN115982011A

    专利类型发明专利

  • 公开/公告日2023-04-18

    原文格式PDF

  • 申请/专利号CN202211623594.2

  • 发明设计人 宁立江;李旭东;饶洁;

    申请日2022-12-16

  • 分类号G06F11/36(2006.01);G06F8/71(2018.01);

  • 代理机构南京知识律师事务所 32207;南京知识律师事务所 32207;

  • 代理人严梦婷;高娇阳

  • 地址 210039 江苏省南京市雨花台区国睿路8号

  • 入库时间 2023-06-19 19:20:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-05

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2022116235942 申请日:20221216

    实质审查的生效

  • 2023-04-18

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及软件检测领域,具体涉及一种面向软件质量提升的持续自动测试平台。

背景技术

对于现代的信息软件系统,用户非常关心的是:产品质量及运行稳定性。对于某一些规模大、功能复杂的信息系统软件研发,通常项目团队的开发成员各自负责不同的功能模块。而某一具体的软件项目,受项目需求变更、计划变更等因素的影响,软件研发团队的人员组成结构、短期开发目标等因素也会动态变化。这样一来,在信息系统软件研发中,一个团队往往会负责多个项目的研发,一个项目则由多个研发团队分周期协同完成。这种组织管理的方式从多个维度增加了软件研发过程的复杂度和不可控性,给软件质量提升也带来很大的挑战,主要体现在如下几个方面:

1)需求变更不能及时得到响应,对项目研制周期影响较大;

2)软件版本管理难,各版本间集成难度较大,给系统联试带来困难;

3)研发周期延长,项目进度、成本等难以控制;

4)软件缺陷在研制周期内无法充分暴露,影响代码质量提升,提高了后期质量风险。

因此,如何自动持续的监测代码质量并及时反馈给研发人员修改、反馈给产品负责人知悉,是软件系统研发过程中亟需解决的问题,也是团队研发的共性需求。

发明内容

为了解决上述问题,本发明提出了一种面向软件质量提升的持续自动测试平台,包括持续集成服务器、软件配置管理系统、测试模块、自动化测试流程管理及数据分析模块;所述持续集成服务器通过插件式部署,实现版本库状态监视、定时运行、轮询触发运行测试工具集成调用;持续集成服务器调用命令接口并调用执行脚本,自动触发测试模块中的测试工具运行,完成自动化测试及报告生成;

所述软件配置管理系统采用分布式Git配置管理工具和集中式SVN软件配置管理工具,利用GitStack为Git作建项管理、用户管理和权限控制工具,实现持续自动测试平台的项目资源管理;

所述自动化测试流程管理及数据分析模块,基于Jenkins集成服务中的插件机制,以自定义方式定制执行任务,根据自动化测试需求,完成测试流程的设计,实现轮询定时调度、全量自动测试、增量自动测试、测试分析报告自动反馈、结果报表分析反馈和执行状态通知。

进一步地,自动化测试流程管理及数据分析模块中的测试报告统计分析程序对生成的报告进行统计分析,将代码缺陷以及测试报告反馈到软件配置管理系统中的SVN、Git版本库中统一管理;所述测试模块选用Testbed、Cobot作为测试工具,用于源代码的正确性检查、安全缺陷检测、代码优化。

进一步地,所述持续集成服务器采用Jenkins持续集成服务器。

进一步地,所述软件配置管理系统通过Git plugin和Subversion Plug-in实现与Jenkins集成;

对应GitStack,在Jenkins通过NewItem、Build periodically、Poll SCM为每个项目建项设置,配置脚本运行周期;持续集成服务器利用脚本批量自动生成功能,为每个项目生成执行脚本;Jenkins通过Build-Excute按运行周期调用执行脚本;执行脚本向TestBed、Cobot测试软件传递执行参数,TestBed、Cobot依据测试规则及用例和传进的执行参数对每个项目作测试,并生成测试报告。

进一步地,所述项目资源包括源码、版本库、测试报告和分析报告。

进一步地,持续集成服务器通过脚本批量自动生成功能生成执行脚本,脚本批量自动生成的过程具体包括以下步骤:

在持续自动测试平台上批量建项;

设计执行脚本原本;

将脚本原本批量自动复制项目的工作目录;

读取项目名称;

批量替换实例脚本与原本之间的差异内容;

生成具体的执行脚本。

进一步地,所述执行脚本的执行过程包括以下步骤:

在执行脚本内设置工作目录;

增量检测周期;

计算增量筛选的开始时间;

设置待检测项目路径;

创建待测集合;

遍历待测项目的源文件,判断其时间是否在增量周期内,如果不在,读取下一个源文件,直到结束;对于在增量周期内的源文件,加入待测集合;

向TestBed、Cobot传递参数;

执行测试;

输出测试报告。

进一步地,测试报告统计分析的过程包括:

批量遍历输出的测试报告文件;

设置标识关注项的标识字符串;

基于HTML DOM解析测试报告文件的内容;

根据标识搜索爬取代码缺陷项对应的数值;

处理标识的测试结果;

输出分析结果。

与现有技术相比,本发明具有以下有益效果:

1)利用Jenkins集成服务技术,实现了配置管理工具和测试工具集成,避免了单个工具使用带来的人力和时间资源冲突或浪费。

2)通过对自动化测试的调度执行,实现了夜间测试、空闲时段测试等,使得测试执行和结果反馈时间大大缩短,大量缩减测试人员并且无测试任务积压,提高了测试效率。

3)通过集成GIT版本管理工具,实现了开发过程中软件版本持续管控,并由于集成了入库自动测试功能,大大提升了开发库软件版本的有效管控和入库代码质量提升。

4)通过自动化手段,定期自动提取测试报告数据和开发库代码增量等关键指标,大大提高了开发过程测量分析数据的准确性,并通过统计分析,得出量化分析数据,指导开发测试过程执行。

5)通过持续集成、自动化测试、测量分析数据报告生成等功能,对研发团队开发测试过程产生正向激励、为最终的软件质量带来明显的提升。

附图说明

图1为本发明的系统架构示意图。

图2为本发明实施例一的平台架构实例图。

图3为本发明实施例一的平台界面图。

图4为本发明实施例一的平台权限控制界面图。

图5为本发明实施例一的平台项目运行周期配置图。

图6为本发明实施例一的平台调用脚本图。

图7为本发明实施例一的脚本批量自动生成逻辑流程图。

图8为本发明实施例一的脚本原本代码实现图。

图9为本发明实施例一的批量自动复制代码实现图。

图10为本发明实施例一的自动替换代码实现图。

图11为本发明实施例一的项目执行脚本逻辑流程图。

图12为本发明实施例一的测试报告统计分析逻辑流程图。

图13为本发明实施例一的测试报告统计分析代码实现图。

图14为本发明实施例一的代码增量随日期的变化示意图。

图15为本发明实施例一的代码缺陷数随日期的变化示意图。

图16为本发明实施例一的代码缺陷率的随日期的变化示意图。

具体实施方式

以下结合附图对本发明的面向软件质量提升的持续自动测试平台的具体实施方式做详细说明。

实施例一

如图1所示,本实施例所述的面向软件质量提升的持续自动测试平台包括4个主要功能模块:持续集成服务器、软件配置管理系统、测试模块、自动化测试流程管理及数据分析模块。对各个部分说明如下:

1)持续集成服务器。持续集成服务器启用并触发一系列的增量式的过程改进,简化开发和部署过程,帮助开发人员持续实时的检测和修复Bug。持续集成服务器,主要功能在于操作系统的任务调度器,本实施例采用应用最为广泛的Jenkins持续集成服务器,通过插件式部署,实现版本库状态监视、定时运行、轮询触发运行测试工具集成调用等自动化功能。

2)软件配置管理系统。采用分布式Git配置管理工具和集中式SVN软件配置管理工具,通过Git plugin和Subversion Plug-in实现与Jenkins集成,其中利用GitStack为Git作建项管理、用户管理和权限控制工具。在持续自动测试平台中实现项目资源(包括源码、版本库、测试报告、分析报告等)管理。

3)测试模块

选用Testbed、Cobot作为测试工具,主要用于源代码的正确性检查、安全缺陷检测、代码优化。集成平台调用命令接口,自动触发TestBed、Cobot运行,由持续集成服务器调用执行脚本,完成自动化测试及报告生成。

4)自动化测试流程管理及数据分析模块。基于Jenkins集成服务中的插件机制,以自定义方式定制执行任务,根据项目团队的自动化测试需求,完成测试流程的设计,实现了轮询定时调度、全量自动测试、增量自动测试、测试分析报告自动反馈、结果报表分析反馈,执行状态通知等定制功能。

在某软件系统研发中,本实施例所述的持续自动测试平台的设计实现过程如下:

研发团队规模50人,涉及的软件工程17项。执行代码全量的持续自动测试轮询频率设置为30天/次,执行代码增量的持续自动测试轮询频率设置为7天/次。实施过程关注如下量化指标,代码增量、代码缺陷数、代码缺陷率。

1)配置硬件服务器环境和操作系统,部署Jenkins、git、gitstack、svn、testbed、cobot等工具,构建持续自动测试平台,如图2、图3、图4、图5和图6所示。

Git、SVN作为项目管理工具,分别通过Git plugin、Subversion Plug-in与Jenkins集成,其中利用GitStack为Git作建项管理、用户管理和权限控制。

对应GitStack,在Jenkins通过NewItem、Build periodically、Poll SCM为每个项目建项设置,配置脚本运行周期。持续集成服务器通过脚本批量自动生成功能,为每个项目生成执行脚本。Jenkins通过Build-Excute按运行周期调用执行脚本。执行脚本向TestBed、Cobot测试软件传递执行参数,TestBed、Cobot依据测试规则及用例和传进的执行参数对每个项目作测试,并生成测试报告。

自动化测试流程管理及数据分析模块中的测试报告统计分析程序对生成的报告处理,将代码缺陷以及测试报告反馈到软件配置管理系统中的SVN、Git版本库中统一管理。

2)为每个项目设计脚本,调用程序,自动生成执行脚本,设置执行任务的定时器(本例全量每30天、增量每7天执行一次)。

脚本批量自动生成的流程图如图7所示,具体包括以下步骤:

在持续自动测试平台上批量建项,设计执行脚本原本,脚本原本代码实现图如图8所示。将脚本原本批量自动复制项目的工作目录,如图9所示。读取项目名称,批量替换实例脚本与原本之间的差异内容,如图10所示。生成具体的执行脚本实例,交给Jenkins调用。

执行脚本的逻辑流程图11所示。

执行脚本内设置工作目录、增量检测周期(如7天),计算增量筛选的开始时间,设置待检测项目路径,创建待测集合,遍历待测项目的源文件,判断其时间是否在增量周期内,如果不在,读取下一个源文件,直到结束。对于在增量周期内的源文件,加入待测集合。向TestBed、Cobot传递参数,执行测试,向输出目录输出测试报告。

3)测试报告统计分析。将每一个工程的自动执行结果,统计、分析、汇总成统计结果报表,反馈给研发人员和相关的团队成员,用于及时知悉代码缺陷情况并纠错。测试报告统计分析的逻辑流程如图12所示。

批量遍历输出的测试报告文件,设置标识关注项的标识字符串,基于HTML DOM解析测试报告文件的内容,根据标识搜索爬取代码缺陷项对应的数值,处理标识的测试结果,向输出文件的指定位置输出分析结果。程序实现见图13。

本例基于信息软件系统的研发过程,应用该技术方法持续运行10周时间,其中统计结果如表1、表2所示。图14、图15、图16展示了具备代表性的,工程5的10周代码增量、缺陷情况。工程的代码缺陷数以及缺陷率随日期明显下降,并持续的维持在指标低位运行,小于1.5‰,对软件系统整体质量的提升有明显正向作用。

表1第五周的执行结果统计(具备代表性)

表2工程五随日期的变化情况(具备代表性)

本发明通过持续集成、测试任务自动执行、测试报告自动反馈,提升软件过程管控有效性,保证软件代码始终处于一个临近发布的健康状态,将测试工作前移,降低后期质量风险。通过测试任务夜间执行、更新后即时执行、设备空闲时执行等自动化测试手段,解决时间、人力、设备等资源冲突的问题,缩短研发周期,节约人力成本。同时,在持续集成平台实施软件版本的持续控制,提升软件研发过程版本管控的有效性,降低软件版本失效带来的质量风险。

本发明主要针对软件开发过程中测试过程不规范、工作量大、重复劳动、开发人员和测试员协同效率低等问题,提出了基于持续集成的自动化测试平台技术。通过以下技术手段的运用,实现高效率、高协同、高质量的软件开发测试过程管理:

1)利用Jenkins集成服务技术,实现了配置管理工具和测试工具集成,避免了单个工具使用带来的人力和时间资源冲突或浪费。

2)通过对自动化测试的调度执行,实现了夜间测试、空闲时段测试等,使得测试执行和结果反馈时间大大缩短,大量缩减测试人员并且无测试任务积压,提高了测试效率。

3)通过集成GIT版本管理工具,实现了开发过程中软件版本持续管控,并由于集成了入库自动测试功能,大大提升了开发库软件版本的有效管控和入库代码质量提升。

4)通过自动化手段,定期自动提取测试报告数据和开发库代码增量等关键指标,大大提高了开发过程测量分析数据的准确性,并通过统计分析,得出量化分析数据,指导开发测试过程执行。

5)通过持续集成、自动化测试、测量分析数据报告生成等功能,对研发团队开发测试过程产生正向激励、为最终的软件质量带来明显的提升。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号