一种软件自动化测试方法及装置与流程

文档序号:12596946阅读:182来源:国知局
一种软件自动化测试方法及装置与流程

本发明涉及软件自动化测试技术领域,特别涉及一种软件自动化测试方法及装置。



背景技术:

在现代软件开发流程中,自动化测试已成为其中必不可少的一个环节。通过自动运行预先设计的测试用例,得到实际结果,与期望结果进行比较,并生成测试报告。在此过程中,可以很大程度地节省人力成本、时间成本和硬件资源,提高测试效率,并能尽早地发现软件设计和软件实现中存在的缺陷。

现有的自动化测试方法通常是:设置定时任务,编译和构建版本,运行软件系统的升级或安装程序,运行预先设计的测试用例,检查和分析测试结果等。在这一过程中,如果软件系统较庞大或测试用例数量较多,整个测试过程将会消耗较长的时间,这样就不能及时发现问题,无法做到快速验证和快速反馈的目的。



技术实现要素:

本发明的目的在于提供一种软件自动化测试方法及装置,解决现有技术中因不能及时发现问题而无法做到快速验证和快速反馈的问题。

因各行业领域对软件系统的组成方式的称谓各不相同,本文做如下约定:软件系统由若干个软件包组成,每个软件包完成相对独立的功能。

根据本发明的一个方面,提供了一种软件自动化测试方法,包括以下步骤:

获取带有补丁版本号的补丁包,对软件系统中的相应软件包进行更新;

根据所述补丁版本号,筛选出已更新的软件包;

通过运行筛选出的已更新的软件包所配置的测试用例,对已更新的软件包进行测试。

根据本发明的另一方面,提供了一种软件自动化测试装置,包括:

更新模块,用于获取带有补丁版本号的补丁包,对软件系统中的相应软件包进行更新;

筛选模块,用于根据所述补丁版本号,筛选出已更新的软件包;

测试模块,用于通过运行筛选出的已更新的软件包所配置的测试用例,对已更新的软件包进行测试。

与现有技术相比较,本发明的有益效果在于:

本发明只更新软件系统中有代码变更的软件包,并且只运行相关的测试用例,可以很大程度地节省每次自动化测试过程的时间,达到快速验证和快速反馈的目的。

附图说明

图1是本发明实施例提供的一种软件自动化测试方法的流程图;

图2是本发明实施例提供的一种软件自动化测试装置的示意图;

图3是本发明实施例一提供的增量式软件自动化测试方法的流程示意图;

图4为本发明实施例一提供的增量式软件自动化测试系统的结构示意图;

图5为本发明实施例二提供的增量式软件自动化测试方法的流程示意图;

图6为本发明实施例二提供的增量式软件自动化测试系统的结构示意图;

图7为本发明实施例三提供的增量式软件自动化测试方法的示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1显示了本发明实施例提供的一种软件自动化测试方法的流程图,如图1所示,包括以下步骤:

步骤S101:获取带有补丁版本号的补丁包,对软件系统中的相应软件包进行更新;

步骤S102:根据所述补丁版本号,筛选出已更新的软件包;

步骤S103:通过运行筛选出的已更新的软件包所配置的测试用例,对已更新的软件包进行测试。

其中,由版本服务器编译和发布所述的带有补丁版本号的补丁包,具体为:当检查到所述代码服务器有代码合入时,获取所合入的代码;根据所获取的合入的代码重新编译与所述合入代码相关的软件包;将重新编译后的软件包打包成补丁包,发布到公共服务器上。

其中,由自动化测试环境从公共服务器获取带有补丁版本号的补丁包,具体为:当检查到所述公共服务器有更新的补丁包时,获取带有补丁版本号的补丁包。

其中,由自动化测试环境对软件系统中的相应软件包进行更新包括:对所获取的补丁包通过打补丁的方式覆盖到所述软件系统的软件包中。

本发明还包括为软件系统的每个软件包分别配置用于测试的测试用例,具体为:通过对所述软件包配置的测试用例进行编号,得到与所述软件包相对应的测试用例编号。

所述的根据所述补丁版本号,筛选出已更新的软件包包括:根据所获取补丁包中带有的补丁版本号,遍历匹配每个软件包的补丁版本号,筛选出已更新的软件包;根据所筛选出的软件包,收集与所述软件包相对应的测试用例编号集合。

所述通过运行筛选出的已更新的软件包所配置的测试用例,对已更新的软件包进行测试包括:根据所收集的测试用例编号,对已更新的软件包进行测试。

本发明运用增量式软件补丁包的方式,根据补丁版本号获取本次需要运行的测试用例集合,并在自动化测试环境上依次运行所述测试用例编号集合中所包含的测试用例,这样只需要处理有变化的部分,处理量少,达到了快速验证和快速反馈的目的。

图2显示了本发明实施例提供的一种软件自动化测试装置的示意图,如图2所示,包括:更新模块201、筛选模块202以及测试模块203。更新模块201,用于获取带有补丁版本号的补丁包,对软件系统中的相应软件包进行更新;筛选模块202,用于根据所述补丁版本号,筛选出已更新的软件包;测试模块203,用于通过运行筛选出的已更新的软件包所配置的测试用例,对已更新的软件包进行测试。

本发明还包括:获取单元,用于当检查到所述代码服务器有代码合入时,获取所合入的代码;编译单元,用于根据所获取的合入的代码重新编译与所述合入 代码相关的软件包;发布单元,用于将重新编译后的软件包打包成补丁包,发布到公共服务器上。

本发明还包括:配置单元,用于对每个软件包配置用于测试的测试用例;编号单元,用于通过对所述软件包配置的测试用例进行编号,得到与所述软件包相对应的测试用例编号。

本发明描述的增量式的含义为:对一个整体系统进行操作时,只处理有变化的部分,而不是全部,其特点在于只需要处理有变化的部分,相对于全部,处理量更少、消耗的时间更少。

本发明提供了一种增量式的软件自动化测试方法,用于对软件系统进行自动化测试,该方法包括:

首先,选择一种自动化测试框架,并在其基础上设计测试用例,对每一个测试用例使用全局唯一的测试用例编号进行管理。在每个软件包中,以配置文件的方式定义与该软件包相关的若干个测试用例编号。

其次,配置版本构建服务器,并使用定时器设置定时任务,该任务在每间隔一段固定的时间(例如半小时),检查代码服务器是否有代码合入,如果有,获取所有合入的代码;根据本次合入的代码,重新编译与这些代码相关的软件包,其它不相关的软件包不作处理。编译完成后,把本次重新编译的所有软件包打包成补丁包的形式发布在公共服务器上。补丁包和每个软件包都以配置文件的方式记录本次补丁的补丁版本号,补丁版本号每次更新时进行递增,以保证每次的补丁版本号各不相同。

再次,配置自动化测试环境,并使用定时器设置定时任务,该任务在每间隔一段固定的时间(例如10分钟),检查公共服务器上是否更新了补丁包,如果有,获取该补丁包,并对软件系统进行打补丁和重启操作。根据本次补丁包中记录的补丁版本号,遍历匹配每一个软件包的补丁版本号,收集形成本次需要运行的测试用例编号集合,并在自动化测试环境上依次运行所述测试用例编号集合中包含的测试用例。

本发明还提供了一种增量式的软件自动化测试系统,用于对软件系统进行自动化测试,该系统包括:自动化测试框架和测试用例模块、版本构建服务器模块、自动化测试环境模块以及系统软件模块。

自动化测试框架和测试用例模块,负责设计测试用例,并对每一个测试用例使用全局唯一的测试用例编号进行管理。在每个软件包中,以配置文件的方式定义与该软件包相关的若干个测试用例编号。

版本构建服务器模块,负责构建补丁包。使用定时器设置定时任务,该任务在每间隔一段固定的时间(例如半小时),检查代码服务器是否有代码合入,如果有,获取所有合入的代码;根据本次合入的代码,重新编译与这些代码相关的软件包,其它不相关的软件包不作处理。编译完成后,把本次重新编译的所有软件包打包成补丁包的形式发布在公共服务器上。补丁包和每个软件包都以配置文件的方式记录本次补丁的补丁版本号,补丁版本号每次更新时进行递增,以保证每次的补丁版本号各不相同。

自动化测试环境模块,负责进行自动化测试。使用定时器设置定时任务,该任务在每间隔一段固定的时间(例如10分钟),检查公共服务器上是否更新了补丁包,如果有,获取该补丁包,并对软件系统进行打补丁和重启操作。根据本次补丁包中记录的补丁版本号,遍历匹配每一个软件包的补丁版本号,收集形成本次需要运行的测试用例编号集合,并在自动化测试环境上依次运行所述测试用例编号集合中包含的测试用例。

软件系统模块,安装和运行软件系统。

图3显示了本发明实施例一提供的增量式软件自动化测试方法的流程示意图,如图3所示,以在无线网管ICM(Integrated Configuration Management,集中配置管理)软件系统自动化测试为例,具体包括以下步骤:

步骤S301:使用Robot框架设计ICM自动化测试用例;

使用Robot框架设计ICM自动化测试用例,包括模型和数据上载、检查进程状态、规划区下载激活、现网区数据导出导入等,使用格式为Testcase_ICM_001且全局唯一的测试用例编号管理测试用例,并把所述测试用例编号作为Robot框架中相应测试用例的标签(tags)。

步骤S302:每个par包中用xml文件定义相关测试用例编号;

在ICM软件系统中,软件包表现为*.par包的形式,每个par包完成相对独立的功能。在每个par包中,使用xml文件定义与该par包在功能上相关的测试用例编号。

步骤S303:版本服务器Jenkins任务每半小时检查SVN(Subversion,版本控制系统)是否有代码合入;

在ICM版本构建服务器上,配置Jenkins任务,该任务每隔半小时检查指定的SVN代码服务器目录是否有代码合入。如果检查到有代码合入,转至步骤S304;如果未检查到有代码合入,继续等待半小时。

步骤S304:获取代码编译相关par包打包成补丁包发布在FTP(File Transfer Protocol,文件传输协议)服务器;

获取所有合入的代码,并根据本次合入的代码,重新编译与这些代码相关的par包,其它不相关的par包不作处理。编译完成后,把本次重新编译的所有par包打包成补丁包的形式发布在FTP服务器上。补丁包和每个par包都以txt文件的方式记录本次补丁的补丁版本号,补丁版本号格式为Patch_ICM_001且尾数递增,以保证每次各不相同。

步骤S305:自动化测试环境Jenkins任务1每10分钟检查FTP服务器是否更新了补丁包;

在ICM自动化测试环境上,配置Jenkins任务1,该任务每隔10分钟检查指定的FTP服务器上是否更新了补丁包。如果检查到更新了补丁包,转至步骤S306;如果未检查到有补丁包更新,继续等待10分钟。

步骤S306:触发Jenkins任务2获取补丁包并对ICM服务器打补丁和重启;

触发Jenkins任务2,该任务负责获取补丁包,并对ICM服务器进行打补丁和重启操作。Jenkins任务2完成后,转至步骤S307。

步骤S307:触发Jenkins任务3根据补丁版本号运行增量测试用例。

触发Jenkins任务3,该任务根据本次补丁包中记录的补丁版本号,遍历匹配每一个par包的补丁版本号,收集形成本次需要运行的测试用例编号集合,并使用—include参数指定测试用例编号为标签(tags),在ICM自动化测试环境上依次运行所述测试用例编号集合中包含的测试用例。

图4显示了本发明实施例一提供的增量式软件自动化测试系统的结构示意图,如图4所示,包括:Robot框架和测试用例401、ICM版本构建服务器402、ICM自动化测试环境403以及ICM服务器404。

所述Robot框架和测试用例401。使用Robot框架设计ICM自动化测试用例,包括模型和数据上载、检查进程状态、规划区下载激活、现网区数据导出导入等, 使用格式为Testcase_ICM_001且全局唯一的测试用例编号管理测试用例,并把所述测试用例编号作为Robot框架中相应测试用例的标签(tags)。

所述ICM版本构建服务器402。在该服务器上,配置了一个Jenkins任务,该任务每隔半小时检查指定的SVN代码服务器目录是否有代码合入。如果检查到有代码合入,获取所有合入的代码,并根据本次合入的代码,重新编译与这些代码相关的par包,其它不相关的par包不作处理。编译完成后,把本次重新编译的所有par包打包成补丁包的形式发布在FTP服务器上。

所述ICM自动化测试环境403。在该环境上,配置了三个Jenkins任务。Jenkins任务1,每隔10分钟检查指定的FTP服务器上是否更新了补丁包。如果检查到更新了补丁包,触发Jenkins任务2,该任务负责获取补丁包,并对ICM服务器进行打补丁和重启操作。Jenkins任务2完成后,触发Jenkins任务3,该任务根据本次补丁包中记录的补丁版本号,遍历匹配每一个par包的补丁版本号,收集形成本次需要运行的测试用例编号集合,并使用—include参数指定测试用例编号为标签(tags),在ICM自动化测试环境上依次运行所述测试用例编号集合中包含的测试用例。

所述ICM服务器404,安装和运行ICM软件系统。

图5显示了本发明实施例二提供的增量式软件自动化测试方法的流程示意图,如图5所示,以在无线网管OMM(Operation Maintenance Management,操作维护管理)软件系统自动化测试为例,具体包括以下步骤:

步骤S501:使用ATPi自动化测试平台设计OMM自动化测试用例;

使用ATPi自动化测试平台设计OMM自动化测试用例,包括MO(Managed Object,管理对象)对象的创建、删除、修改、查询、快配、配置数据导出导入等,使用全局唯一的测试用例编号管理测试用例,并把所述测试用例编号作为ATPi平台中相应测试任务的任务名。

步骤S502:每个par包中用xml文件定义相关的测试用例编号;

在OMM软件系统中,软件包表现为*.par包的形式,每个par包完成相对独立的功能。在每个par包中,使用xml文件定义与该par包在功能上相关的测试用例编号。

步骤S503:版本服务器Jenkins任务每半小时检查SVN是否有代码合入;

在OMM版本构建服务器上,配置Jenkins任务,该任务每隔半小时检查指定 的SVN代码服务器目录是否有代码合入。如果检查到有代码合入,转至步骤S504;如果未检查到有代码合入,继续等待半小时。

步骤S504:获取代码编译相关par包打包成补丁包发布在FTP服务器;

获取所有合入的代码,并根据本次合入的代码,重新编译与这些代码相关的par包,其它不相关的par包不作处理。编译完成后,把本次重新编译的所有par包打包成补丁包的形式发布在FTP服务器上。补丁包和每个par包都以txt文件的方式记录本次补丁的补丁版本号,补丁版本号格式为Patch_OMM_001且尾数递增,以保证每次各不相同。

步骤S505:自动化测试环境Jenkins任务1每10分钟检查FTP服务器是否更新了补丁包;

在OMM自动化测试环境上,配置Jenkins任务1,该任务每隔10分钟检查指定的FTP服务器上是否更新了补丁包。如果检查到更新了补丁包,转至步骤S506;如果未检查到有补丁包更新,继续等待10分钟。

步骤S506:触发Jenkins任务2获取补丁包并对OMM服务器打补丁和重启;

触发Jenkins任务2,该任务负责获取补丁包,并对OMM服务器进行打补丁和重启操作。Jenkins任务2完成后,转至步骤S507。

步骤S507:触发Jenkins任务3根据补丁版本号运行增量测试用例。

触发Jenkins任务3,该任务根据本次补丁包中记录的补丁版本号,遍历匹配每一个par包的补丁版本号,收集形成本次需要运行的测试用例编号集合,并在Jenkins任务3中使用bat命令发送UDP(User Datagram Protocol,用户数据报协议)消息,把所述测试用例编号集合作为参数传递给ATPi平台,在OMM自动化测试环境上依次运行所述测试用例编号集合中包含的测试用例。

图6显示了本发明实施例二提供的增量式软件自动化测试系统的结构示意图,如图6所示,包括:ATPi(Auto Testing Platform integration,自动测试平台集成)自动化测试平台和测试用例601、OMM版本构建服务器602、OMM自动化测试环境603以及OMM服务器604。

所述ATPi自动化测试平台和测试用例601。使用ATPi自动化测试平台设计OMM自动化测试用例,包括MO对象的创建、删除、修改、查询、快配、配置数据导出导入等,使用全局唯一的测试用例编号管理测试用例,并把所述测试用例编号作为ATPi平台中相应测试任务的任务名。

所述OMM版本构建服务器602。在该服务器上,配置了一个Jenkins任务,该任务每隔半小时检查指定的SVN代码服务器目录是否有代码合入。如果检查到有代码合入,获取所有合入的代码,并根据本次合入的代码,重新编译与这些代码相关的par包,其它不相关的par包不作处理。编译完成后,把本次重新编译的所有par包打包成补丁包的形式发布在FTP服务器上。

所述OMM自动化测试环境603。在该环境上,配置了三个Jenkins任务。Jenkins任务1,每隔10分钟检查指定的FTP服务器上是否更新了补丁包。如果检查到更新了补丁包,触发Jenkins任务2,该任务负责获取补丁包,并对OMM服务器进行打补丁和重启操作。Jenkins任务2完成后,触发Jenkins任务3,该任务根据本次补丁包中记录的补丁版本号,遍历匹配每一个par包的补丁版本号,收集形成本次需要运行的测试用例编号集合,并在Jenkins任务3中使用bat命令发送UDP消息,把所述测试用例编号集合作为参数传递给ATPi平台,在OMM自动化测试环境上依次运行所述测试用例编号集合中包含的测试用例。

所述OMM服务器604,安装和运行OMM软件系统。

图7显示了本发明实施例三提供的增量式软件自动化测试方法的示意图,如图7所示,以一个例子的形式来说明本发明所述方法中打补丁和根据补丁版本号获取本次需要运行的测试用例集合的过程。包括:软件系统701、补丁包702以及补丁版本号703。

在本实施例中,软件系统701由软件包A、软件包B、软件包C、软件包D、软件包E和软件包F这六个软件包组成。软件包A对应的测试用例编号为1至10,软件包A当前的补丁版本号为patch002;软件包B对应的测试用例编号为11至20,软件包B当前的补丁版本号为patch003;软件包C对应的测试用例编号为21至30,软件包C当前的补丁版本号为patch002;软件包D对应的测试用例编号为31至40,软件包D当前的补丁版本号为patch004;软件包E对应的测试用例编号为41至50,软件包E当前的补丁版本号为patch001;软件包F对应的测试用例编号为51至60,软件包F当前的补丁版本号为patch003。

当然,在实际实施过程中,每个软件包对应的测试用例数量不一定相同,多个软件包对应的测试用例编号也可能有重合,例如软件包A和软件包B都包含测试用例编号1和2,这些都不应成为对本发明的限制。

当新增、删除软件包或修改软件包对应的测试用例编号,或新增测试用例、 删除测试用例时,都需要增加、删除或修改软件包中定义测试用例编号的配置文件,并保持软件包与测试用例编号的最新的映射关系,这些都在本发明的保护范围之内。

最新发布的补丁包702,该补丁包的补丁版本号703为patch005,补丁包702包含了两个软件包,软件包D和软件包F。软件包D和软件包F以配置文件的形式记录了补丁版本号patch005。

补丁包702以配置文件的形式记录了补丁版本号703,其补丁版本号为patch005。

当所述补丁包702(包括补丁版本号703)通过打补丁的方式覆盖到所述软件系统701中时,软件系统701中的软件包D和软件包F的当前补丁版本号变为patch005,其它软件包的当前补丁版本号保持不变。

这样,就可以通过记录的补丁版本号patch005,筛选出本次更新的软件包为软件包D和软件包F,进一步地,通过软件包D和软件包F中配置文件定义的测试用例编号,获取到本次需要运行的测试用例编号集合为:31至40、51至60。

综上所述,本发明具有以下技术效果:

本发明运用增量式软件补丁包的方式,每次只更新软件系统中有代码变更的软件包,并且只运行相关的测试用例,可以很大程度地节省每次自动化测试过程的时间,达到快速修改、快速验证、快速反馈和快速迭代的目的。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1