CN109726132B - 一种软件测试方法及软件测试自动化管理系统 - Google Patents
一种软件测试方法及软件测试自动化管理系统 Download PDFInfo
- Publication number
- CN109726132B CN109726132B CN201910005305.4A CN201910005305A CN109726132B CN 109726132 B CN109726132 B CN 109726132B CN 201910005305 A CN201910005305 A CN 201910005305A CN 109726132 B CN109726132 B CN 109726132B
- Authority
- CN
- China
- Prior art keywords
- test
- testing
- software
- platform
- automatic
- 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
- 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/3676—Test management for coverage analysis
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种软件测试方法及软件测试自动化管理系统,涉及测试技术领域。该方法包括:自动化编译部署平台获取第一源代码及其对应的第一代码信息;自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本;根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例;自动化测试平台基于第一测试用例对软件测试版本进行功能测试,获得测试结果。本发明实施例中,代码信息与测试用例之间的对应关系可以事先建立并预置,从而进行测试时,可以根据该对应关系自动选择相应的测试用例,能够防止测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,提高了功能测试的全面性。
Description
技术领域
本发明涉及测试技术领域,特别是涉及一种软件测试方法及软件测试自动化管理系统。
背景技术
软件测试是一种通过对比实际输出与预期输出之间的差异,来鉴定软件的正确性、完整性、安全性和质量的过程,该过程通常是在规定的使用条件下对软件进行操作,从而确定该软件是否满足设计要求,从而可以对软件的质量进行评估。
目前,软件测试的主流方式是人工手动进行功能测试,并对测试结果进行记录,然而,在整个测试过程中,测试的重点功能需要人为确定,因此受人为因素影响极大,尤其是对于经验不足的测试新手,往往难以准确确定测试范围,如此,将导致软件功能存在测试盲区,从而降低了功能测试的全面性。
发明内容
本发明提供一种软件测试方法及软件测试自动化管理系统,以解决经验不足的测试新手人为选取测试用例不当,导致软件功能存在测试盲区,使得功能测试的全面性低下的问题。
为了解决上述问题,本发明公开了一种软件测试方法,包括:
通过预置的自动化编译部署平台获取第一源代码,以及所述第一源代码对应的第一代码信息;
通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本;
根据预置的代码信息与测试用例之间的对应关系,确定所述第一代码信息对应的第一测试用例;
通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果。
可选的,所述通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果,包括:
根据所述软件测试版本及所述第一测试用例,创建测试任务;
将所述测试任务通过自动化测试平台接口传递至预置的自动化测试平台;
所述自动化测试平台接收到所述测试任务时,确定所述第一测试用例对应的第一测试脚本;
所述自动化测试平台通过所述第一测试脚本对所述软件测试版本进行功能测试,获得测试结果。
可选的,所述通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果之后,还包括:
当所述测试结果指示测试未通过时,生成漏洞信息;
获取基于所述漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至所述软件测试版本的所有功能测试通过。
可选的,所述通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本,包括:
通过所述自动化编译部署平台对所述第一源代码进行编译,获得第一执行代码;
通过所述自动化编译部署平台将所述第一执行代码部署至预置测试设备,获得第一部署信息;
根据所述第一部署信息,创建软件测试版本。
可选的,所述方法还包括:
记录测试过程数据;
根据所述测试过程数据,生成测试过程统计报表;
其中,所述测试过程数据至少包括测试结果数据、漏洞信息数据、测试用例使用数据中的至少一种。
为了解决上述问题,本发明还公开了一种软件测试自动化管理系统,该系统包括:
第一获取模块,用于通过预置的自动化编译部署平台获取第一源代码,以及所述第一源代码对应的第一代码信息;
编译部署模块,用于通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本;
确定模块,用于根据预置的代码信息与测试用例之间的对应关系,确定所述第一代码信息对应的第一测试用例;
测试模块,用于通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果。
可选的,所述测试模块包括:
第一创建子模块,用于根据所述软件测试版本及所述第一测试用例,创建测试任务;
传递子模块,用于将所述测试任务通过自动化测试平台接口传递至预置的自动化测试平台;
确定子模块,用于所述自动化测试平台接收到所述测试任务时,确定所述第一测试用例对应的第一测试脚本;
测试子模块,用于所述自动化测试平台通过所述第一测试脚本对所述软件测试版本进行功能测试,获得测试结果。
可选的,所述系统还包括:
第一生成模块,用于当所述测试结果指示测试未通过时,生成漏洞信息;
第二获取模块,用于获取基于所述漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至所述软件测试版本的所有功能测试通过。
可选的,所述编译部署模块包括:
编译子模块,用于通过所述自动化编译部署平台对所述第一源代码进行编译,获得第一执行代码;
部署子模块,用于通过所述自动化编译部署平台将所述第一执行代码部署至预置测试设备,获得第一部署信息;
第二创建子模块,用于根据所述第一部署信息,创建软件测试版本。
可选的,所述系统还包括:
记录模块,用于记录测试过程数据;
第二生成模块,用于根据所述测试过程数据,生成测试过程统计报表;
其中,所述测试过程数据至少包括测试结果数据、漏洞信息数据、测试用例使用数据中的至少一种。
与现有技术相比,本发明包括以下优点:
在本发明实施例中,可以通过自动化编译部署平台获取第一源代码及其对应的第一代码信息,然后通过自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本,之后可以根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例,进而通过自动化测试平台,基于第一测试用例对软件测试版本进行功能测试,获得测试结果。在本发明实施例中,代码信息与测试用例之间的对应关系可以事先建立并预置,从而可以在每次进行自动化测试时,根据该对应关系自动选择源代码对应的测试用例,进而能够防止经验不足的测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,从而提高了功能测试的全面性。
附图说明
图1示出了本发明实施例一的一种软件测试方法的步骤流程图;
图2示出了本发明实施例二的一种软件测试方法的步骤流程图;
图3示出了本发明实施例二的一种软件测试自动化管理系统、自动化编译部署平台和自动化测试平台的架构示意图;
图4示出了本发明实施例二的一种源代码、测试用例和测试场景之间的关联关系示意图;
图5示出了本发明实施例二的一种软件测试自动化管理系统中各个功能模块及各个平台在软件测试过程中的交互示意图;
图6示出了本发明实施例二的一种下发测试任务过程的流程图;
图7示出了本发明实施例二的一种BUG管理过程的流程图;
图8示出了本发明实施例二的一种软件测试过程的流程图;
图9示出了本发明实施例三的一种软件测试自动化管理系统的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明实施例一的一种软件测试方法的步骤流程图。该方法包括以下步骤:
步骤101:通过预置的自动化编译部署平台获取第一源代码,以及第一源代码对应的第一代码信息。
在本发明实施例中,自动化编译部署平台可以对软件研发人员上传的源代码进行自动化的编译和部署,从而获得一个可测试的软件版本。首先,软件研发人员可以根据软件的需求功能点,编写解决该需求功能点的第一源代码,然后软件研发人员可以将第一源代码上传至自动化编译部署平台,并上传第一源代码对应的第一代码信息作为第一源代码的代码标识,从而自动化编译部署平台可以获取到第一源代码及其对应的第一代码信息。在具体应用时,第一代码信息可以是一段数字编码,或者还可以是第一源代码所解决的需求功能点的描述信息等等,本发明实施例对此不作具体限定。
步骤102:通过自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本。
获取到第一源代码及其对应的第一代码信息之后,自动化编译部署平台首先可以对第一源代码进行编译,然后对编译后的执行代码进行部署,从而可以获得软件测试版本。
步骤103:根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例。
在本发明实施例中,可以事先预置代码信息与测试用例之间的对应关系,从而实现源代码与测试用例之间的自动关联,以便于根据上传的源代码对应的代码信息,自动确定测试所需的测试用例。在获得软件测试版本之后,可以从预置的代码信息与测试用例之间的对应关系中,查找第一代码信息对应的第一测试用例,也即是可以确定需要通过哪些测试用例对软件测试版本进行功能测试。其中,由于在实际应用中,测试某些功能可能需要一个或一个以上的测试用例,因此,本发明实施例对于第一测试用例的数量不作具体限定。
在实际应用中,代码信息与测试用例之间的对应关系可以是由经验丰富的资深测试工程师来建立,从而可以在每次进行自动化测试时,根据该对应关系自动选择源代码对应的测试用例,进而能够防止经验不足的测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,从而提高了功能测试的全面性。
步骤104:通过预置的自动化测试平台,基于第一测试用例对软件测试版本进行功能测试,获得测试结果。
在本发明实施例中,自动化测试平台可以确定第一测试用例对应的第一测试脚本,进而可以通过第一测试脚本对该软件测试版本进行功能测试,比如传统功能测试、新增功能测试等等,从而获得测试结果,例如哪些测试用例测试通过、以及测试通过的测试用例对应哪个需求功能点、哪些测试用例未通过测试、以及测试未通过的测试用例对应哪个需求功能点等等。
在本发明实施例中,可以通过自动化编译部署平台获取第一源代码及其对应的第一代码信息,然后通过自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本,之后可以根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例,进而通过自动化测试平台,基于第一测试用例对软件测试版本进行功能测试,获得测试结果。在本发明实施例中,代码信息与测试用例之间的对应关系可以事先建立并预置,从而可以在每次进行自动化测试时,根据该对应关系自动选择源代码对应的测试用例,进而能够防止经验不足的测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,从而提高了功能测试的全面性。
实施例二
参照图2,示出了本发明实施例二的一种软件测试方法的步骤流程图。该方法包括以下步骤:
步骤201:通过预置的自动化编译部署平台获取第一源代码,以及第一源代码对应的第一代码信息。
本发明实施例中提供的软件测试方法可以通过软件测试自动化管理系统执行,另外,还需要搭建一个自动化编译部署平台和一个自动化测试平台。其中,自动化编译部署平台将代码管理库和自动编译部署工具集成在一起,用以管理提交的源代码,以及对源代码进行自动编译,并完成自动部署到软件的测试环境。自动化测试平台对功能自动化工具、接口自动化工具等测试工具进行集成封装,用以实现与软件测试自动化管理系统的关联,以及测试的自动化执行,并反馈测试结果。软件测试自动化管理系统配置有自动化编译部署平台接口和自动化测试平台接口,软件测试自动化管理系统可以通过自动化编译部署平台接口调用自动化编译部署平台,并通过该接口与自动化编译部署平台进行数据交互,同样地,软件测试自动化管理系统可以通过自动化测试平台接口调用自动化测试平台,并通过该接口与自动化测试平台进行数据交互。
图3示出了一种软件测试自动化管理系统、自动化编译部署平台和自动化测试平台的架构示意图。参照图3,软件测试自动化管理系统可以包括下述多个功能模块:测试用例库、测试场景库、测试执行模块、测试结果分析模块和BUG管理模块,需要说明的是,上述各个功能模块仅为本发明实施例提供的一种功能划分方式,并不对本发明构成限定。以下将对各个功能模块进行具体介绍。
测试场景库可用以采集自动化测试平台中的测试场景,以及对测试场景进行维护更新,并同步到自动化测试平台。其中,测试场景是指模拟的软件在实际使用过程中可能发生的使用场景,例如用户在使用软件时输入身份信息,进而软件进入该用户的个人管理界面的场景,或者软件接收到某指令时作出对应响应的场景等等。如图3所示,自动化测试平台中维护的测试场景,可以通过自动化测试平台接口被同步到软件测试自动化管理系统的测试场景库中进行统一管理,并支持在测试场景库中对测试场景进行修改更新维护后同步到自动化测试平台。
测试用例库用以实现测试用例的创建和维护。其中,测试用例可以根据测试场景进行编写,以表示在某测试场景下的输入和与该输入对应的正确输出。在具体应用时,测试用例需要遵循源代码、测试用例、测试场景之间的关联关系进行创建,测试用例的创建维护页面可以显示测试用例的约束填写规则,以达到规范测试用例设计活动的目的。在具体应用时,可以结合瀑布开发模型或者迭代开发模型的节奏完成相应的测试用例及测试场景的维护。
测试执行模块可以通过自动化编译部署平台接口,接收自动化编译部署平台对源代码进行编译部署后获得的部署信息,并创建软件测试版本,自动关联源代码、测试用例和测试场景后,自动创建测试任务,并通过自动化测试平台接口,下发测试任务到自动化测试平台。
测试结果分析模块能够用于采集自动化测试平台执行测试后获得的测试结果,根据测试结果进行测试结果分析,生成分析报告,并将测试不通过的功能点自动转化为漏洞信息,进而传递到BUG管理模块。
BUG管理模块可以实现漏洞信息管理,并将软件测试版本中漏洞信息解决状态传递到自动化编译部署平台,在研发人员解决漏洞信息(BUG)之后,由自动化编译部署平台可以获取解决BUG后的源代码,然后对解BUG后的源代码进行自动编译部署,从而进入下一个迭代测试过程,实现测试过程的闭环自动化管理。
在实际应用中,自动化编译部署平台可以首先获取实现某个需求功能点的第一源代码,以及第一源代码对应的第一代码信息,也即第一源代码的代码标识。
步骤202:通过自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本。
在本发明实施例中,本步骤具体可以包括:通过自动化编译部署平台对第一源代码进行编译,获得第一执行代码;通过自动化编译部署平台将第一执行代码部署至预置测试设备,获得第一部署信息;根据第一部署信息,创建软件测试版本。
由于源代码是无法执行的,因此自动化编译部署平台获取到第一源代码之后,首先可以对第一源代码进行自动编译,从而获得可执行的第一执行代码,然后自动化编译部署平台可以将第一执行代码自动部署到软件的测试环境,也即一预置的测试设备中,从而模拟软件的实际使用环境,在实际应用中,测试设备可以为服务器、防火墙等设备,本发明实施例对此不作具体限定。完成自动部署后,自动化编译部署平台可以获得第一源代码对应的第一部署信息,该第一部署信息具体可以包括第一源代码完成了哪些需求功能点、进行了哪些更新、解决了哪些BUG等信息。自动化编译部署平台可以通过自动化编译部署平台接口,将第一部署信息传递至软件测试自动化管理系统,进而软件测试自动化管理系统在接收到第一部署信息之后,可以自动创建基于本次需求的软件测试版本。
步骤203:根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例。
图4示出了一种源代码、测试用例和测试场景之间的关联关系示意图。参照图4,源代码、测试用例及测试场景都需要基于需求功能点进行开发和创建,也即是用于解决某一需求的源代码,应当与针对该需求模拟的测试场景,以及测试该需求能否实现的测试用例关联起来,其中,该需求功能点可以是代码最小级别的功能点,或者微服务架构下,以微服务颗粒度定义的最小功能点。如图4所示,在实际应用中,源代码、测试用例、测试场景中任意两者之间的关联关系可以通过源代码标识、测试用例标识、测试场景标识中任意两者之间的对应关系表示,软件测试自动化管理系统中可以事先预置源代码标识、测试用例标识、测试场景标识中任意两者之间的对应关系,从而可以以需求功能点为桥梁,抽取对应的源代码标识、测试用例标识和测试场景标识,进而通过自动化编译部署平台对第一源代码标识对应的第一源代码进行编译部署,从而创建软件测试版本,进而自动创建测试任务,以使自动化测试平台接收到测试任务时,自动选择对应的第一测试用例进行测试。
例如A1源代码对应B1测试用例,B1测试用例对应C1测试场景,如此,当A1源代码提交时,可以进行编译部署,软件测试自动化管理系统之后便可以找到B1测试用例及C1测试场景进行版本绑定,并最终基于B1测试用例对软件测试版本进行功能测试。
源代码、测试用例、测试场景任意两者之间的对应关系需要由经验丰富的资深测试工程师来建立,从而可以在每次进行自动化测试时,根据该对应关系自动选择源代码对应的测试用例,进而能够防止经验不足的测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,从而提高了功能测试的全面性。
步骤204:根据第一测试用例,创建该软件测试版本对应的测试任务。
图5示出了一种软件测试自动化管理系统中各个功能模块及各个平台在软件测试过程中的交互示意图。参照图5,在对第一源代码进行自动编译部署,并选择出第一代码信息对应的第一测试用例之后,软件测试自动化管理系统可以创建该软件测试版本对应的测试任务。在实际应用中,由于第一测试用例本身不能直接用于软件测试,而是需要事先将第一测试用例编写为可执行的第一测试脚本,进而通过第一测试脚本进行测试,因此,该测试任务中可以包含第一测试用例的用例信息,或第一测试脚本的脚本信息等,从而用以自动化测试平台根据该用例信息或脚本信息,选择对应的第一测试脚本进行测试。在实际应用时,用例信息具体可以为用例编号等用例标识,脚本信息具体可以为脚本编号等脚本标识,本发明实施例对此不作具体限定。
步骤205:将测试任务通过自动化测试平台接口传递至预置的自动化测试平台。
参照图5,测试执行模块在创建测试任务之后,可以通过自动化测试平台接口,将该测试任务下发至自动化测试平台中,以便通过自动化测试平台对软件测试版本进行功能测试。上述软件测试自动化管理系统从采集第一部署信息至下发测试任务的大致流程可以参照图6示出的流程图,在此不再赘述。
步骤206:自动化测试平台接收到测试任务时,确定第一测试用例对应的第一测试脚本。
如图5所示,自动化测试平台中可以事先预置每个测试用例对应的测试脚本,从而自动化测试平台在接收到该测试任务时,可以根据测试任务中的用例信息或脚本信息,从预置的多个测试脚本中,选择出第一测试用例对应的第一测试脚本。
步骤207:自动化测试平台通过第一测试脚本对该软件测试版本进行功能测试,获得测试结果。
自动化测试平台在确定出第一测试用例对应的第一测试脚本之后,可以在软件的测试环境下执行第一测试脚本,从而可以对软件测试版本进行功能测试,并获得该功能对应的测试结果。需要说明的是,当第一测试用例的数量大于1时,可以将每个第一测试用例对应的第一测试脚本依次在软件的测试环境下执行,并获得所有第一测试脚本执行后的测试结果。
步骤208:当该测试结果指示测试未通过时,生成漏洞信息。
自动化测试平台获得测试结果之后,可以将测试结果发送至测试结果分析模块,测试结果分析模块接收到测试结果之后,可以对测试结果进行分析,以确定第一测试脚本执行后,能够获得正确的输出。若第一测试脚本执行后可以获得正确的输出,则说明本次功能测试通过,软件测试自动化管理系统可以结束该需求功能点的测试。
然而,在实际测试过程中,软件测试版本可能因存在逻辑错误、不符合设计的使用场景等问题,而导致某些第一测试脚本执行后无法得到正确的输出,此种情况则说明本次功能测试未通过,如图5所示,测试结果分析模块可以将测试不通过的第一测试用例转换为漏洞信息(BUG),并传递至BUG管理模块,研发人员可以对漏洞信息进行处理,同时BUG管理模块可以对漏洞信息的解决状态进行实时监控。
步骤209:获取基于该漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至该软件测试版本的所有功能测试通过。
在漏洞信息解决之后,研发人员可以将基于该漏洞信息改进的第二源代码提交至自动化编译部署平台,同时软件测试自动化管理系统可以传递该漏洞信息的状态信息到自动化编译部署平台,从而触发自动化编译部署平台对第二源代码进行自动编译部署,漏洞信息与源代码具有关联性,从而自动化编译部署平台能够根据该关联,检查源代码提交的完整性,待源代码提交完整,完成编译部署,并传递第二部署信息到软件测试自动化管理系统的测试执行模块,由测试执行模块自动创建测试任务,并下发到自动化测试平台,以进行新一轮次的迭代测试,若针对第二源代码的测试未通过,则继续进行漏洞处理,并提交改进的第三源代码,再次进行迭代测试,直至该软件测试版本的所有功能测试通过,实现测试过程的自动化闭环。上述软件测试自动化管理系统从接收到测试结果至开始新一轮次迭代测试的大致流程可以参照图7示出的流程图,在此不再赘述。
在实际应用中,经验不足的测试新手在对测试流程未深入理解的情况下,通常会导致测试执行不到位,并且浪费大量学习测试流程的时间,而通过实现迭代测试过程的自动化闭环,能够避免因测试新手对测试流程掌控不足而导致的测试效率低下,从而提高了测试效率,降低了人工测试的时间成本。
参照图8,在本发明实施例提供的软件测试方法中,当研发人员完成源代码编写并提交后,自动化编译部署平台可以进行编译部署,然后可以触发软件测试自动化管理系统创建测试任务,并下发测试任务到自动化测试平台,由自动化测试平台执行测试脚本,完成测试后反馈测试结果到自动化测试管理系统,当测试通过时,结束该功能的测试,当测试未通过时,触发BUG管理模块,驱动研发人员解决BUG,并提交改进后的源代码,从而触发下一轮迭代测试,直至测试通过。
进一步的,在本发明实施例中,本软件测试方法还可以包括下述步骤:记录测试过程数据;根据测试过程数据,生成测试过程统计报表;其中,测试过程数据至少包括测试结果数据、漏洞信息数据、测试用例使用数据中的至少一种。
其中,软件测试自动化管理系统可以在整个测试过程中,记录每次迭代测试过程中的测试结果数据、漏洞信息数据、测试用例使用数据等等测试过程数据,从而可以获知每次迭代测试的测试结果、每次迭代测试生成了哪些类型的漏洞信息、每次迭代测试使用了哪些测试用例等信息,进而软件测试自动化管理系统可以对测试过程数据进行汇总,生成测试过程统计报表,从而可以为软件测试自动化管理系统的质量评估和改进提供依据。
在本发明实施例中,自动化编译部署平台可以获取第一源代码及其对应的第一代码信息,然后自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本,之后根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例,进而自动化测试平台基于第一测试用例对软件测试版本进行功能测试,获得测试结果,当该测试结果指示测试未通过时,可以生成漏洞信息,之后可以获取基于该漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至该软件测试版本的所有功能测试通过,从而实现迭代测试过程的自动化闭环。本发明实施例中,代码信息与测试用例之间的对应关系可以事先建立并预置,从而可以在每次进行自动化测试时,根据该对应关系自动选择源代码对应的测试用例,进而能够防止经验不足的测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,从而提高了功能测试的全面性。另外,通过实现迭代测试过程的自动化闭环,能够避免因测试新手对测试流程掌控不足而导致的测试效率低下,从而提高了测试效率,降低了人工测试的时间成本。
实施例三
图9示出了本发明实施例三的一种软件测试自动化管理系统的结构示意图。参照图9,该系统900可以包括:
第一获取模块901,用于通过预置的自动化编译部署平台获取第一源代码,以及所述第一源代码对应的第一代码信息;
编译部署模块902,用于通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本;
确定模块903,用于根据预置的代码信息与测试用例之间的对应关系,确定所述第一代码信息对应的第一测试用例;
测试模块904,用于通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果。
可选的,参照图9,所述测试模块904包括:
第一创建子模块9041,用于根据所述软件测试版本及所述第一测试用例,创建测试任务;
传递子模块9042,用于将所述测试任务通过自动化测试平台接口传递至预置的自动化测试平台;
确定子模块9043,用于所述自动化测试平台接收到所述测试任务时,确定所述第一测试用例对应的第一测试脚本;
测试子模块9044,用于所述自动化测试平台通过所述第一测试脚本对所述软件测试版本进行功能测试,获得测试结果。
可选的,参照图9,所述系统900还包括:
第一生成模块905,用于当所述测试结果指示测试未通过时,生成漏洞信息;
第二获取模块906,用于获取基于所述漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至所述软件测试版本的所有功能测试通过。
可选的,参照图9,所述编译部署模块902包括:
编译子模块9021,用于通过所述自动化编译部署平台对所述第一源代码进行编译,获得第一执行代码;
部署子模块9022,用于通过所述自动化编译部署平台将所述第一执行代码部署至预置测试设备,获得第一部署信息;
第二创建子模块9023,用于根据所述第一部署信息,创建软件测试版本。
可选的,参照图9,所述系统900还包括:
记录模块907,用于记录测试过程数据;
第二生成模块908,用于根据所述测试过程数据,生成测试过程统计报表;
其中,所述测试过程数据至少包括测试结果数据、漏洞信息数据、测试用例使用数据中的至少一种。
在本发明实施例中,第一获取模块可以通过自动化编译部署平台获取第一源代码及其对应的第一代码信息,然后编译部署模块可以通过自动化编译部署平台对第一源代码进行编译部署,获得软件测试版本,之后确定模块可以根据预置的代码信息与测试用例之间的对应关系,确定第一代码信息对应的第一测试用例,进而测试模块可以通过自动化测试平台,基于第一测试用例对软件测试版本进行功能测试,获得测试结果。在本发明实施例中,代码信息与测试用例之间的对应关系可以事先建立并预置,从而可以在每次进行自动化测试时,根据该对应关系自动选择源代码对应的测试用例,进而能够防止经验不足的测试新手人为选取测试用例不当的情况,避免软件功能存在测试盲区,从而提高了功能测试的全面性。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种软件测试方法及软件测试自动化管理系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种软件测试方法,其特征在于,所述方法包括:
通过预置的自动化编译部署平台获取第一源代码,以及所述第一源代码对应的第一代码信息;
通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本;
根据预置的代码信息与测试用例之间的对应关系,确定所述第一代码信息对应的第一测试用例,其中,事先预置第一源代码标识、第一测试用例标识、测试场景标识中任意两者之间的对应关系,以第一源代码所解决的需求功能点为桥梁,抽取对应的第一源代码标识、第一测试用例标识和测试场景标识,进而通过自动化编译部署平台对第一源代码标识对应的第一源代码进行编译部署,从而创建软件测试版本;
通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果;
所述通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果,包括:
根据所述第一测试用例,创建所述软件测试版本对应的测试任务;
将所述测试任务通过自动化测试平台接口传递至预置的自动化测试平台;
所述自动化测试平台接收到所述测试任务时,确定所述第一测试用例对应的第一测试脚本;
所述自动化测试平台通过所述第一测试脚本对所述软件测试版本进行功能测试,获得测试结果;
记录测试过程数据;
根据所述测试过程数据,生成测试过程统计报表;
其中,所述测试过程数据至少包括测试结果数据、漏洞信息数据、测试用例使用数据中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果之后,还包括:
当所述测试结果指示测试未通过时,生成漏洞信息;
获取基于所述漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至所述软件测试版本的所有功能测试通过。
3.根据权利要求1所述的方法,其特征在于,所述通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本,包括:
通过所述自动化编译部署平台对所述第一源代码进行编译,获得第一执行代码;
通过所述自动化编译部署平台将所述第一执行代码部署至预置测试设备,获得第一部署信息;
根据所述第一部署信息,创建软件测试版本。
4.一种软件测试自动化管理系统,其特征在于,所述系统包括:
第一获取模块,用于通过预置的自动化编译部署平台获取第一源代码,以及所述第一源代码对应的第一代码信息;
编译部署模块,用于通过所述自动化编译部署平台对所述第一源代码进行编译部署,获得软件测试版本;
确定模块,用于根据预置的代码信息与测试用例之间的对应关系,确定所述第一代码信息对应的第一测试用例,其中,事先预置第一源代码标识、第一测试用例标识、测试场景标识中任意两者之间的对应关系,以第一源代码所解决的需求功能点为桥梁,抽取对应的第一源代码标识、第一测试用例标识和测试场景标识,进而通过自动化编译部署平台对第一源代码标识对应的第一源代码进行编译部署,从而创建软件测试版本;
测试模块,用于通过预置的自动化测试平台,基于所述第一测试用例对所述软件测试版本进行功能测试,获得测试结果;
所述测试模块包括:
第一创建子模块,用于根据所述第一测试用例,创建所述软件测试版本对应的测试任务;
传递子模块,用于将所述测试任务通过自动化测试平台接口传递至预置的自动化测试平台;
确定子模块,用于所述自动化测试平台接收到所述测试任务时,确定所述第一测试用例对应的第一测试脚本;
测试子模块,用于所述自动化测试平台通过所述第一测试脚本对所述软件测试版本进行功能测试,获得测试结果;
记录模块,用于记录测试过程数据;
第二生成模块,用于根据所述测试过程数据,生成测试过程统计报表;
其中,所述测试过程数据至少包括测试结果数据、漏洞信息数据、测试用例使用数据中的至少一种。
5.根据权利要求4所述的系统,其特征在于,所述系统还包括:
第一生成模块,用于当所述测试结果指示测试未通过时,生成漏洞信息;
第二获取模块,用于获取基于所述漏洞信息改进的第二源代码,以进行下一轮迭代测试,直至所述软件测试版本的所有功能测试通过。
6.根据权利要求4所述的系统,其特征在于,所述编译部署模块包括:
编译子模块,用于通过所述自动化编译部署平台对所述第一源代码进行编译,获得第一执行代码;
部署子模块,用于通过所述自动化编译部署平台将所述第一执行代码部署至预置测试设备,获得第一部署信息;
第二创建子模块,用于根据所述第一部署信息,创建软件测试版本。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910005305.4A CN109726132B (zh) | 2019-01-03 | 2019-01-03 | 一种软件测试方法及软件测试自动化管理系统 |
US16/979,570 US11281570B2 (en) | 2019-01-03 | 2019-12-26 | Software testing method, system, apparatus, device medium, and computer program product |
PCT/CN2019/128612 WO2020140820A1 (zh) | 2019-01-03 | 2019-12-26 | 软件测试方法、系统、装置、设备、介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910005305.4A CN109726132B (zh) | 2019-01-03 | 2019-01-03 | 一种软件测试方法及软件测试自动化管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726132A CN109726132A (zh) | 2019-05-07 |
CN109726132B true CN109726132B (zh) | 2021-03-23 |
Family
ID=66299650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910005305.4A Active CN109726132B (zh) | 2019-01-03 | 2019-01-03 | 一种软件测试方法及软件测试自动化管理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11281570B2 (zh) |
CN (1) | CN109726132B (zh) |
WO (1) | WO2020140820A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726132B (zh) | 2019-01-03 | 2021-03-23 | 京东方科技集团股份有限公司 | 一种软件测试方法及软件测试自动化管理系统 |
CN110704318B (zh) * | 2019-09-27 | 2022-10-25 | 武汉中海庭数据技术有限公司 | 一种地图数据自动化测试方法、终端装置及存储介质 |
CN111274150B (zh) * | 2020-02-07 | 2023-08-22 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111309609B (zh) * | 2020-02-13 | 2023-10-03 | 抖音视界有限公司 | 软件处理系统 |
CN111309611A (zh) * | 2020-02-16 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种软件产品多版本测试方法及系统 |
US11461093B1 (en) | 2020-03-13 | 2022-10-04 | Liberty Mutual Insurance Company | Automated generation of release note data objects based at least in part on release-time configuration settings |
US11474814B1 (en) * | 2020-03-13 | 2022-10-18 | Liberty Mutual Insurance Company | Modular software application configuration management |
CN112148587A (zh) * | 2020-05-26 | 2020-12-29 | 上海金融期货信息技术有限公司 | 一种软件测试管理系统和方法 |
CN114064446A (zh) * | 2020-08-05 | 2022-02-18 | 福建天泉教育科技有限公司 | 一种实现多实例服务自动回归测试的方法及其系统 |
CN112134922B (zh) * | 2020-08-14 | 2022-10-25 | 中信银行股份有限公司 | 一种基于微服务的服务调用方法、装置及存储介质 |
CN112200536B (zh) * | 2020-09-30 | 2022-10-11 | 厦门市美亚柏科信息股份有限公司 | 一种测试例监控管理方法、终端设备及存储介质 |
US11467947B2 (en) * | 2020-10-19 | 2022-10-11 | EMC IP Holding Company LLC | Automated mocking of computer system deployments |
CN112256272B (zh) * | 2020-10-19 | 2022-04-05 | 四川长虹电器股份有限公司 | 检测源代码质量的方法、系统、计算机设备及存储介质 |
US11663112B2 (en) | 2020-10-22 | 2023-05-30 | EMC IP Holding Company LLC | Selection of computer system deployments to mock for testing |
US11520675B2 (en) | 2020-10-23 | 2022-12-06 | EMC IP Holding Company LLC | Accelerated replay of computer system configuration sequences |
CN112286806B (zh) * | 2020-10-28 | 2023-10-03 | 成都佰维存储科技有限公司 | 自动化测试方法、装置、存储介质及电子设备 |
CN112463585A (zh) * | 2020-10-29 | 2021-03-09 | 至誉科技(武汉)有限公司 | 固态硬盘代码的测试方法、系统、存储介质及电子设备 |
CN112231235B (zh) * | 2020-12-10 | 2021-03-30 | 广东睿江云计算股份有限公司 | 基于多方协作的测试用例编写及测试方法及其系统 |
CN112650670B (zh) * | 2020-12-17 | 2024-07-16 | 京东科技信息技术有限公司 | 应用测试方法、装置、系统、电子设备和存储介质 |
CN112650686A (zh) * | 2020-12-30 | 2021-04-13 | 北京华胜天成科技股份有限公司 | 获取测试结果的方法及装置、电子设备和存储介质 |
CN114968267A (zh) * | 2021-02-26 | 2022-08-30 | 京东方科技集团股份有限公司 | 服务部署方法、装置、电子设备及存储介质 |
CN112783513B (zh) * | 2021-03-18 | 2024-02-27 | 中国工商银行股份有限公司 | 一种代码风险检查方法、装置及设备 |
CN113032268B (zh) * | 2021-03-30 | 2022-02-22 | 深圳市腾讯信息技术有限公司 | 软件测试方法、装置及存储介质 |
CN113051167B (zh) * | 2021-03-31 | 2023-12-22 | 北京经纬恒润科技股份有限公司 | 一种模型与模型代码的测试方法及装置 |
CN113407400A (zh) * | 2021-06-17 | 2021-09-17 | 哲库科技(北京)有限公司 | 自动化测试的调度系统 |
CN113448847B (zh) * | 2021-06-24 | 2024-05-24 | 新华三大数据技术有限公司 | 一种测试方法及系统 |
CN113377667B (zh) * | 2021-06-29 | 2024-05-10 | 平安国际融资租赁有限公司 | 一种基于场景的测试方法、装置、计算机设备及存储介质 |
CN114003261A (zh) * | 2021-11-11 | 2022-02-01 | 北京尚医智信健康管理有限公司 | 一种软件线上升级方法、系统装置及计算机可读存储介质 |
CN115905031B (zh) * | 2023-03-14 | 2023-06-23 | 云筑信息科技(成都)有限公司 | 一种基于精准质量保障系统的测试用例推荐方法 |
CN117194275B (zh) * | 2023-11-03 | 2024-01-26 | 吉贝克信息技术(北京)有限公司 | 基于智能算法的软件自动化测试计划自动生成方法及系统 |
CN118714059A (zh) * | 2024-08-30 | 2024-09-27 | 四川天邑康和通信股份有限公司 | 测试网关设备的方法、装置和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425584A (zh) * | 2013-08-27 | 2013-12-04 | 上海复深蓝信息技术有限公司 | 基于Java字节码的大型应用回归测试信息处理方法 |
CN103530225A (zh) * | 2013-09-10 | 2014-01-22 | 武汉烽火网络有限责任公司 | 自动化编译测试方法及实现该方法的自动化编译测试平台 |
CN107423214A (zh) * | 2017-04-18 | 2017-12-01 | 恒生电子股份有限公司 | 软件回归测试用例获取方法、装置及存储介质和电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8826239B2 (en) * | 2010-10-06 | 2014-09-02 | International Business Machines Corporation | Asynchronous code testing in integrated development environment (IDE) |
JP5537599B2 (ja) * | 2012-04-27 | 2014-07-02 | 株式会社日立製作所 | 業務システムにおけるバージョンアップ管理方法 |
CN102799508A (zh) * | 2012-07-09 | 2012-11-28 | 深圳市共进电子股份有限公司 | 一种自动化测试系统和方法 |
CN104834593A (zh) * | 2014-12-23 | 2015-08-12 | 赵明 | 一种针对软件众测应用的企业数字化软件测试云系统及方法 |
CN105446878B (zh) | 2015-11-09 | 2018-03-09 | 上海爱数信息技术股份有限公司 | 一种持续的程序自动化测试方法 |
CN107608873B (zh) * | 2016-07-11 | 2021-05-25 | 珠海优特电力科技股份有限公司 | 软件测试方法和系统及测试平台 |
CN106874205A (zh) * | 2017-02-27 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种持续集成中的自动化功能测试装置及其方法 |
CN107239292A (zh) * | 2017-06-28 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种自动化构建软件版本的方法与装置 |
US10761810B2 (en) * | 2018-06-27 | 2020-09-01 | Accenture Global Solutions Limited | Automating testing and deployment of software code changes |
CN109726132B (zh) | 2019-01-03 | 2021-03-23 | 京东方科技集团股份有限公司 | 一种软件测试方法及软件测试自动化管理系统 |
-
2019
- 2019-01-03 CN CN201910005305.4A patent/CN109726132B/zh active Active
- 2019-12-26 US US16/979,570 patent/US11281570B2/en active Active
- 2019-12-26 WO PCT/CN2019/128612 patent/WO2020140820A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425584A (zh) * | 2013-08-27 | 2013-12-04 | 上海复深蓝信息技术有限公司 | 基于Java字节码的大型应用回归测试信息处理方法 |
CN103530225A (zh) * | 2013-09-10 | 2014-01-22 | 武汉烽火网络有限责任公司 | 自动化编译测试方法及实现该方法的自动化编译测试平台 |
CN107423214A (zh) * | 2017-04-18 | 2017-12-01 | 恒生电子股份有限公司 | 软件回归测试用例获取方法、装置及存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20210011840A1 (en) | 2021-01-14 |
CN109726132A (zh) | 2019-05-07 |
WO2020140820A1 (zh) | 2020-07-09 |
US11281570B2 (en) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726132B (zh) | 一种软件测试方法及软件测试自动化管理系统 | |
CN106446412B (zh) | 一种航空电子系统基于模型的测试方法 | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
Gunasekaran et al. | Survey on automation testing tools for mobile applications | |
CN112882724A (zh) | 一种OpenStack云平台流水线自动化部署的方法 | |
CN116069635A (zh) | Soc系统的测试方法、装置、计算机设备及存储介质 | |
CN113377667A (zh) | 一种基于场景的测试方法、装置、计算机设备及存储介质 | |
Nidagundi et al. | New method for mobile application testing using lean canvas to improving the test strategy | |
CN111611157A (zh) | Gms持续集成构建自动化测试方法及系统 | |
CN117632146A (zh) | 一种基于微服务敏捷部署的边云协同部署重构方法 | |
Lipka et al. | A method for semi-automated generation of test scenarios based on use cases | |
Sturdevant | Cruisin'and Chillin': Testing the Java-Based Distributed Ground Data System" Chill" with CruiseControl System" Chill" with CruiseControl | |
CN112035356B (zh) | 一种web应用兼容性的自动化测试方法及系统 | |
CN111858315B (zh) | 一种基于版本管理的软件调试方法、装置、设备和介质 | |
CN115034165A (zh) | 一种芯片仿真验证方法、系统、设备以及存储介质 | |
CN110362463A (zh) | 一种自动挑选测试用例进行回归测试的方法和装置 | |
US10417110B2 (en) | Method for verifying traceability of first instructions in a procedural programming language generated from second instructions in a modelling language | |
Ogata et al. | Approach to Testing Many State Machine Models in Education. | |
Talekar et al. | CI-CD Workflow For Embedded System Design | |
CN118733100A (zh) | 软件版本集成方法、系统、电子设备及存储介质 | |
CN110765011B (zh) | 一种配置库内测试运维数据自动获取和校验装置及方法 | |
McComas et al. | Automated Test for NASA cFS | |
CN117992352A (zh) | 软件自动化测试方法、装置、存储介质及计算机设备 | |
Xaia et al. | Automated Software Testing for Control and Monitoring a Radio Telescope | |
Di Ruscio et al. | EVOSS: A tool for managing the evolution of free and open source software systems |
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 |