CN106201859A - 一种回归测试方法及系统 - Google Patents
一种回归测试方法及系统 Download PDFInfo
- Publication number
- CN106201859A CN106201859A CN201510229461.0A CN201510229461A CN106201859A CN 106201859 A CN106201859 A CN 106201859A CN 201510229461 A CN201510229461 A CN 201510229461A CN 106201859 A CN106201859 A CN 106201859A
- Authority
- CN
- China
- Prior art keywords
- test
- regression
- test object
- group
- execution
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 467
- 238000000034 method Methods 0.000 claims description 46
- 238000001914 filtration Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种回归测试方法及系统。其中,回归测试方法包括在第一测试对象中执行所获取的回归测试包,得到第一测试对象对所述回归测试包的第一组执行结果;将所述第一组执行结果和预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果分别与对应所述回归测试包的第一组预期结果以及第二组预期结果进行对比,得到测试结果。通过本申请实施例所公开的回归测试方法可以降低程序的开发工作量。
Description
技术领域
本申请涉及软件测试技术领域,特别涉及一种回归测试方法及系统。
背景技术
为了满足客户的需要和适应应用的需求,软件系统在其生命周期中会频繁地被修改和不断推出新的版本,修改后的或者新版本的软件会添加一些新的功能或者在软件功能上产生某些变化。
软件系统随着引入新增功能、代码调整等对原有代码的修改之后,往往需要进行回归测试以确认对原有代码的修改没有给软件系统引入错误。回归测试即是软件测试中的一种测试类型。在实施回归测试的过程中,会利用到回归测试包。该回归测试包中可以含有一个或多个测试用例。每个测试用例一般包括一组输入数据、执行条件和预期结果。对于每个测试用例,对软件系统设置一组输入数据和执行条件,软件系统运行后可以得到一执行结果。通过比较所有测试用例的执行结果和预期结果,可以测试出软件系统是否可以正常工作。
较大的软件系统中,往往包含不同的子系统。对软件系统整体进行回归测试时,现有技术中通常采用MOCK(模拟)的方式来模拟子系统。即在模拟服务器上设置所要模拟的子系统的MOCK程序来代替需要测试的真实子系统,并模拟子系统与软件系统中其他系统模块之间的交互。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
需要投入较大开发工作量来编写对应子系统的MOCK程序。此外,每接入一个新增子系统时,都需要编写对应于新增子系统的MOCK程序。
发明内容
本申请实施例的目的是提供一种回归测试方法及系统,以减少开发工作量。
为解决上述技术问题,本申请实施例提供的回归测试方法及系统是这样实现的:
本申请实施例提供了一种回归测试方法,该方法包括:
在第一测试对象中执行所获取的回归测试包,得到第一组执行结果;
将所述第一组执行结果和预先存储的第二组执行结果分别与所述回归测试包的第一组预期结果以及第二组预期结果进行对比,得到测试结果,所述第二组执行结果是在第二测试对象中执行所述回归测试包所得到的。
本申请实施例还提供了一种回归测试系统,该系统包括:
执行单元,用于在第一测试对象中执行所获取的回归测试包,得到第一组执行结果;
对比单元,用于将所述第一组执行结果和预先存储的第二测试对象执行所述回归测试包所得到的第二组执行结果分别与对应所述回归测试包的第一组预期结果以及第二组预期结果进行对比,得到测试结果。
由以上本申请实施例提供的技术方案可见,本申请实施例具有以下有益效果:
本申请实施例通过执行所获取的回归测试包,得到第一测试对象对所述回归测试包的第一组执行结果,并调用所存储的第二测试对象对所述回归测试包的第二组执行结果,而不需要通过编写第一测试对象的MOCK程序来获得第一测试对象的第一组执行结果,这达到了减少开发工作量的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中一案例所涉及系统的结构示意图。
图2是本申请实施例提供的一种回归测试方法的流程示意图。
图3是本申请实施例中提供的一种回归测试方法对应的一种应用场景中的系统结构图。
图4是图3中所示的支付系统进行回归测试的流程图。
图5是本申请实施例中提供的一种回归测试方法对应的另一种应用场景中的系统结构图。
图6是本申请实施例提供的一种回归测试系统的模块图。
具体实施方式
本申请实施例提供了一种回归测试方法及系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
随着互联网的发展,经常需要为已有的集成系统进行新的系统集成。例如,在国际支付渠道多样性的背景下,往支付系统中接入新的支付渠道(例如招商银行网银系统)。例如,为实现利用谷歌翻译系统翻译出的地点在百度地图上进行定位,需要在谷歌翻译系统中接入百度地图。再例如,为实现在公交卡的发卡管理中心处查看线下充值点信息的目的,需要往发卡管理系统中接入线下充值网点系统。还例如,为实现在ERP(Enterprise Resource Planning,企业资源计划)系统中查看采购需求、仓库存货量等信息,往ERP系统中接入采购管理系统以及仓库管理系统。为了检查接入新增系统后的集成系统整体是否受到影响,需要对该集成系统整体进行回归测试。
现有技术中通常通过采用MOCK(模拟)的方式来对所集成的软件系统进行回归测试。现以如图1所示的支付系统为例来进行说明。图1中,子系统A和子系统B为已有子系统,可以在MOCK服务器上部署相应的MOCK程序。子系统C为新增的子系统。在进行回归测试前,需要针对子系统C开发相应的MOCK程序。这样,后续在执行针对子系统C所开发的MOCK程序时可以实现子系统C的预期功能,并与软件系统中的其他系统模块正确交互。
待在MOCK服务器上部署所开发出的子系统C的MOCK程序后,可以对软件系统进行回归测试。回归测试的具体过程如下:
S110:业务核心模块向MOCK服务器发送对应子系统(A,B,C)的测试用例;
S120:MOCK服务器执行所述测试用例,并将所述测试用例的执行结果返回至所述业务核心模块。
S130:业务核心模块将所述执行结果与预期结果进行对比,得到测试结果。
采用这种方法,在进行回归测试前,需要为接入的新增子系统开发对应的MOCK程序,并且每接入一个新增子系统,都需要重新开发对应的MOCK程序,这需要投入大量的开发工作量。本申请实施例通过从新增子系统来获取对应回归测试包中测试用例的第一组执行结果,从而减少开发工作量。
下面结合附图对本申请所述的回归测试方法进行详细的说明。图2是本申请实施例所提供的一种回归测试方法的流程图。虽然本申请提供了如下述实施例或流程图所述的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。该方法可以包括如下步骤:
S210:在第一测试对象中执行所获取的回归测试包,得到第一组执行结果。
所述第一测试对象可以是软件系统中的一个或多个新增子系统,也可以是软件系统的子系统中的一个或多个新增模块或单元,还可以是软件系统中一个或多个变更子系统。所述变更子系统可以是对软件系统中的已有子系统进行修复、升级或性能优化等后所得到的子系统。对于所述第一测试对象为多个新增子系统的情形,多个新增子系统之间可以相互独立,也可以相互集成。
所述回归测试包可以含有一个或多个测试用例。相应的,所述第一组执行结果中可以含有在所述第一测试对象中执行所述回归测试包中的测试用例所得到的一个或多个第一执行结果。
所述在第一测试对象中执行所获取的回归测试包,得到第一组执行结果可以是基于测试任务,从所获取的回归测试包中选取测试用例,并在第一测试对象中执行所选取的测试用例,得到所述第一测试对象对所选取的测试用例的第一执行结果。在第一测试对象中执行所有所选取的测试用例所得到的第一执行结果构成了第一组执行结果。需要说明的是,在第一测试对象中执行所选取的测试用例可以理解为是第一测试对象执行所选取的测试用例。
所述测试任务可以包括需要执行的测试用例的标识以及所述第一测试对象与所述测试用例之间的对应关系。所述测试任务也可以包括所述第一测试对象的标识。所述测试用例的标识可以是所述测试用例的名称和/或编号。所述第一测试对象与所述测试用例之间的对应关系可以是所述第一测试对象的标识与所述测试用例的标识之间的对应关系。
在一实施例中,可以根据所述测试用例的标识,从所述回归测试包中选取对应的测试用例;然后可以根据所述第一测试对象与所述测试用例之间的对应关系,对应所选取的测试用例的第一测试对象执行所选取的测试用例,得到第一组执行结果。
在另一实施例中,可以根据第一测试对象的标识,确定参与测试的第一测试对象;然后根据所述第一测试对象与所述测试用例之间的对应关系,例如所述第一测试对象的标识与所述测试用例的标识之间的对应关系,确定所需要执行的测试用例的标识;再根据所确定的测试用例的标识,从所述回归测试包中选取对应的测试用例;最后在所述第一测试对象中执行所选取的测试用例,得到第一组执行结果。
在所述第一测试对象中执行所选取的测试用例,得到第一组执行结果可以是按照每一个测试用例中的执行条件,检测对应测试用例中相关的输入数据是否与所述第一测试对象自身所含数据相匹配,并输出相应的第一执行结果。在检测出所述输入数据与所述第一测试对象自身所含数据相匹配时,可以输出表示匹配的第一执行结果;在检测出所述输入数据与所述第一测试对象自身所含数据不匹配时,可以输出表示不匹配的第一执行结果。例如,所述第一测试对象为中国银行网上银行系统,所述执行条件为在检验银行卡号信息后检验金额信息。所述输入数据中含有银行卡号、金额等信息。按照执行条件,首先检测该银行卡号是不是属于中国银行的卡号;在检测出该银行卡号是属于中国银行的卡号时,再检测该银行卡号所对应账户中的金额能否满足待测试数据中的金额需求;在检测出用户账户中的金额满足待测试数据中的金额需求时,输出表示通过检验的第一执行结果。如果检测出该银行卡号不属于中国银行的卡号,可以输出未通过检验的第一执行结果。
所述在第一测试对象中执行所获取的回归测试包可以是基于第一触发信息,在所述第一测试对象中执行即时获取的回归测试包;也可以是基于第一触发信息,在所述第一测试对象中执行预先获取的回归测试包。所述第一触发信息可以是进行测试的时间信息,例如预定义的周期性时间或者基于外界环境满足一定条件时进行测试的时间。此外,所述第一触发信息也还可以是接收到指示进行测试的触发指令,例如自动化脚本指令或者用户指令。
所述在第一测试对象中执行所获取的回归测试包还可以包括按照第一预设协议,对所获取的回归测试包进行转换,在所述第一测试对象中执行转换后的回归测试包;也还可以包括按照第二预设协议,对所获取的回归测试包进行信息过滤,在所述第一测试对象中执行信息过滤后的回归测试包。对回归测试包进行信息过滤可以提高回归测试的效率以及减少资源的占用空间。
所述第一预设协议可以是所述回归测试包中测试用例的转换格式和/或转换内容等。例如,对所述测试用例进行格式转换,可以将测试用例中的大写字母转换为小写字母。所述第二预设协议可以是过滤掉所述回归测试包中无需执行的测试用例;也可以是过滤掉测试用例中无需执行的输入数据。
S220:将所述第一组执行结果和预先存储的第二组执行结果分别与所述回归测试包的第一组预期结果和第二组预期结果进行对比,得到测试结果,所述第二组执行结果是在第二测试对象中执行所述回归测试包所得到的。
所述第二测试对象可以是软件系统中的一个或多个已有子系统,也可以是软件系统的子系统中的一个或多个已有模块或单元。对于所述第二测试对象为多个已有子系统的情形,多个已有子系统之间可以相互独立,也可以相互集成。
所述第二组执行结果中可以含有在所述第二测试对象中执行所述回归测试包中的测试用例所得到的一个或多个第二执行结果。所述第二测试对象所执行的测试用例可以与所述第一测试对象所执行的测试用例相同,也可以不同。
所述第一组预期结果和所述第二组预期结果中可以分别含有与所述回归测试包中的测试用例的第一执行结果和第二执行结果对应的第一预期结果和第二预期结果。
根据所述测试结果,可以判断软件系统是否可以正常工作。在所述测试结果表示通过测试时,可以判断所述软件系统可以正常工作。在所述测试结果表示未通过测试时,可以判断所述软件系统不能正常工作。
所述测试结果可以包括对比所述第一组执行结果和所述回归测试包的第一组预期结果所得到的第一对比结果以及对比预先存储的第二组执行结果和所述回归测试包的第二组预期结果所得到的第二对比结果。所述对比所述第一组执行结果和所述回归测试包的第一组预期结果可以包括将在所述第一测试对象中执行从所述回归测试包中所选取的每个测试用例所得到的第一执行结果与对应该测试用例的第一预期结果进行对比。所述对比预先存储的第二组执行结果和所述回归测试包的第二组预期结果包括将预先存储的在所述第二测试对象中执行所选取的每个测试用例所得到的第二执行结果与对应该测试用例的第二预期结果进行对比。
根据所述第一对比结果和所述第二对比结果分别可以判断所述第一测试对象是否可以实现其预期功能以及所述第二测试对象是否可以实现其已有功能。在所述第一对比结果表示所述第一组执行结果和第一组预期结果相一致时,可以判断所述第一测试对象可以实现其预期功能;在所述第一对比结果表示所述第一组执行结果和第一组预期结果不一致时,可以判断所述第一测试对象不可以实现其预期功能。此外,在所述第一对比结果表示第一测试用例不适用于第一测试对象时,可以判断需要重新编写、修改测试用例或选用其他测试用例来对第一测试对象进行测试;在所述第一对比结果表示所选取测试用例无法执行时,可以判断所述第一测试对象出现故障或存在其他造成所选取的测试用例无法执行。
所述第二对比结果所表示的情形可参考对所述第一组对比结果所表示的情形的描述,在此不再赘叙。
所述将所述第一组执行结果和预先存储的第二组执行结果分别与所述回归测试包的第一组预期结果和第二组预期结果进行对比可以包括:
S221:查找预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果。
所述在第二测试对象中执行所述回归测试包可以理解为第二测试对象本身执行所述回归测试包。
在一实施例中,可以根据所获取的所述第二测试对象的标识以及所述回归测试包的标识来查找预先存储的在第二测试对象中执行所述第二回归测试包所得到的第二组执行结果。具体的,
利用所获取的所述第二测试对象的标识,查找到有关所述第二测试对象的第二存储信息,然后再利用所述回归测试包的标识,在所述第二存储信息中查找对应所述回归测试包的第二组执行结果。
所述查找对应所述回归测试包的第二组执行结果可以是利用所选取的测试用例的标识,查找对应每个所选取测试用例的第二执行结果,所查找到的所有所选取测试用例的第二执行结果构成了第二组执行结果。
所述第二存储信息中可以含有所述第二测试对象的标识、所述回归测试包以及所述第二组执行结果。所述第二测试对象的标识用于标识所述第二测试对象,其可以为第二测试对象的名称和/或编号等。所述测试用例的标识用于标识所述测试用例,其可以为测试用例的名称和/或编号。
S222:将所查找到的第二组执行结果与所述回归测试包的第二组预期结果进行对比。
S223:将在所述第一测试对象中执行所述回归测试包所得到的第一组执行结果与所述回归测试包的第一组预期结果进行对比。
需要说明的是S233与S221-S222之间的顺序并没有限制,S221与S210之间的执行顺序也没有限制。
通过上述步骤可以看出,本申请实施例通过在第一测试对象中执行所获取的回归测试包来获得对应的第一组执行结果,而不是通过开发第一测试对象的MOCK程序,然后利用所开发的MOCK程序来获取第一组组执行结果,这实现了减少开发工作量的目的。此外,本申请实施例通过查找来获取预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果,而无需通过执行第二测试对象的MOCK程序来获取对应的第二执组行结果,这提高了回归测试的效率。
在另一实施例中,所述方法还包括:
S200:获取回归测试包、第一测试对象的标识以及第二测试对象的标识。
所述获取回归测试包、第一测试对象的标识以及第二测试对象的标识可以是基于第二触发信息,获取回归测试包、第一测试对象的标识以及第二测试对象的标识;也可以是预先获取回归测试包、第一测试对象的标识以及第二测试对象的标识,然后基于第二触发信息查找到预先获取的回归测试包、第一测试对象的标识以及第二测试对象的标识。
所述第二触发信息可以与所述第一触发信息相同,即可以是指示进行测试的时间信息;也还可以是接收到指示进行测试的触发指令,例如自动化脚本指令或者用户指令。
在另一实施例中,为了下次实施回归测试时,可以直接调用所得到的第一组执行结果,提高回归测试的效率,所述方法还包括:
S230:存储所得到的第一组执行结果。
所述存储所得到的第一组执行结果可以是利用所述第一测试对象的标识,将所述第一组执行结果进行存储,以便于与所存储的其他测试对象的执行结果相区分开;也可以是按照第三预设协议,对所述第一组执行结果进行存储。所述第三预设协议可以是第一组执行结果的存储格式和/或存储内容等。此外,也还可以以所述第一测试对象的标识来对所述第一组执行结果的存储途径进行命名,以便于与之前存储的其他测试对象相关的信息相区别。
所述存储所得到的第一组执行结果还可以是将所述第一组执行结果与对应的回归测试包进行关联存储,即可以将所述第一组执行结果和所述回归测试包存储在同一位置。所述第一组执行结果与对应的回归测试包进行关联存储可以包括将所述第一组执行结果中的每一个第一执行结果与对应的测试用例进行关联存储。
在下次接入第一测试对象时,本次接入的第一测试对象成为第二测试对象,第一组执行结果成为第二组执行结果。在下次进行回归测试时,下次接入的第一测试对象可按照获取本次接入的第一测试对象的第一组执行结果的方法来获取对应的第一组执行结果,而无需再开发对应的MOCK程序。
以下结合具体场景说明本申请方法实施例的实现过程,可以结合图3-图5加以理解。
以支付系统为例,如图3所示,该支付系统包括业务核心模块、网关模块、Record/Replay(录制/回放)以及支付渠道A和B。现因业务需要,往支付系统中接入新的支付渠道C,Record/Replay中存储有支付渠道A和B对回归测试包的第二组执行结果,未存储有支付渠道C对回归测试包的第一组执行结果。现以从回归测试包中针对三个支付渠道分别选取一个测试用例为例来说明针对该支付系统执行回归测试的过程。参考图4,该支付系统执行回归测试的具体实现过程如下:
S400:业务核心模块向网关模块发送请求信息,请求获取支付渠道(A,B)对测试用例(a,b)的第二执行结果以及支付渠道C对测试用例c的第一执行结果,所述请求信息可以包括所获取的支付渠道(A,B,C)的渠道编号以及测试用例(a,b,c)。
S410:网关模块将所接收的请求信息复制后发送给Record/Replay。
S420:Record/Replay针对支付渠道C进入存储状态,存储支付渠道C的测试用例c,并查找支付渠道A和B对测试用例a和b的第二执行结果,并将所查找到的第二执行结果通过网关模块发送给业务核心模块。
由于Record/Replay中存储有支付渠道A和B的测试用例a和b,因此Record/Replay会忽略所接收的对应支付渠道A和B的测试用例a和b,而只存储对应支付渠道C的测试用例c。
S430:网关模块按照预先与支付渠道C之间设定的协议,对复制的请求信息进行转换以及信息过滤处理,并根据支付渠道C的编号,将处理后的测试用例c发送给支付渠道C。
S440:支付渠道C接收并检测网关模块发送的测试用例c,并向网关模块返回第一执行结果。
S450:网关模块按照与核心模块以及Record/Replay之间的协议,将接收的第一执行结果进行转换,并将转换后的第一执行结果分别发送给业务核心模块和Record/Replay。
需要说明的是,发送给业务核心模块和Record/Replay的第一执行结果可以同时发送,也可以分开发送。此外,在向业务核心模块发送第一执行结果的同时,还可以发送支付渠道C的编号;而在向Record/Replay发送第一执行结果时,还可以发送支付渠道C的编号和测试用例的标识。
S460:Record/Replay对所接收的第一执行结果进行存储,结束存储状态。
Record/Replay可以根据结果数据中的支付渠道C的编号和测试用例的标识,将所接收的第一执行结果进行定位存储,即可以将第一执行结果存储在对应的测试用例所在的位置处。
S470:业务核心模块将所接收第一执行结果以及第二执行结果分别与对应的第一预期结果和第二预期结果进行对比,得到测试结果,完成测试。
在上述具体场景中,业务核心模块、网关模块和Record/Replay可以为相互独立的子系统或装置,也可以为位于子系统中的模块,这三个模块之间可以为内嵌的位置关系。例如Record/Replay内嵌于网关模块中,网关模块内嵌于业务核心模块中。支付渠道A,B,C可以与上述三个模块集成于同一系统,也可以为独立的第三方子系统。此外,支付渠道A,B,C之间也可以相互独立。
再以企业系统为例,如图5所示。该企业系统包括企业管理中心、Record/Replay(录制/回放)、企业D-E。在企业D集成企业E的服务上线后,因业务需要对企业D进行了系统升级。在Record/Replay中存储有企业E对回归测试包的第二组执行结果,未存储有系统升级后的企业D对回归测试包的第一组执行结果。现以从回归测试包中针对企业D和E各自分别选取一个测试用例为例来说明针对该支付系统执行回归测试的过程。该支付系统执行回归测试的具体实现过程如下:
(1)企业管理中心向Record/Replay发送请求信息,请求获取企业D对测试用例d的第一执行结果以及企业E对测试用例e的第二执行结果。
(2)Record/Replay针对对应企业D的测试用例d进入Record状态,存储测试用例d,并对对应企业E的测试用例e进入Replay状态,查找企业E对测试用例e的第二执行结果,并将所查找到的第二执行结果发送给企业管理中心。
(3)企业管理中心向企业D发送测试用例d,企业D执行所接收的测试用例d,并向企业管理中心发送第一执行结果。
(4)企业管理中心将所接收的第一执行结果发送给Record/Replay,Record/Replay对所接收的第一执行结果进行存储。
(5)企业管理中心还将所接收的第一执行结果以及第二执行结果分别与对应的第一预期结果和第二预期结果进行对比,得到测试结果,完成测试。
本申请实施例还提供了一种回归测试系统,如图6所示。应该理解,所述系统可以比图示具有更多或更少的单元。该系统包括:执行单元510以及对比单元520。其中,
执行单元510可以用于在第一测试对象中执行所获取的回归测试包,得到第一测试对象对所述回归测试包的第一组执行结果;
对比单元520可以用于将所述第一组执行结果和预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果分别与对应所述回归测试包的第一组预期结果以及第二组预期结果进行对比,得到测试结果。
在一实施例中,执行单元510可以包括选取子单元和第一执行子单元(图中未示出).其中,选取子单元用于基于测试任务,从所获取的回归测试包中选取测试用例;第一执行子单元用于在第一测试对象中执行所选取的测试用例,得到所述第一测试对象对所选取的测试用例的第一组执行结果。所述测试任务包括需要执行的测试用例的标识以及所述第一测试对象与所述测试用例之间的对应关系。
在另一实施例中,执行单元510还可以包括第二执行子单元(图中未示出),用于基于第一触发信息,在第一测试对象中执行即时获取的回归测试包或执行预先获取的回归测试包。
在另一实施例中,执行单元510还可以包括:
转换子单元,用于按照第一预设协议,对所获取的回归测试包进行转换;
第三执行子单元,用于在第一测试对象中执行转换后的回归测试包。
在另一实施例中,执行单元510还可以包括:
信息过滤子单元,用于按照第二预设协议,对所获取的回归测试包进行信息过滤;
第四执行子单元,用于在第一测试对象中执行信息过滤后的回归测试包。
在一实施例中,对比单元520包括:
查找子单元,用于查找预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果;
第一对比子单元,用于将所查找到的第二组执行结果与对应所述回归测试包的第二组预期结果进行对比;
第二对比子单元,用于将在第一测试对象中执行所述回归测试包所得到的第一组执行结果与对应所述回归测试包的第一组预期结果进行对比。
在另一实施例中,所述系统还包括获取单元500,其可以用于获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
获取单元500可以包括第一获取子单元,用于基于第二触发信息,获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
获取单元500还可以包括:
第二获取子单元,用于预先获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识;
查找子单元,用于基于第二触发信息,查找到预先获取的回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。所述第二触发信息可以与所述第一触发信息相同。
在另一实施例中,所述系统还包括存储单元530,其可以用于存储所得到的第一组执行结果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware DescriptionLanguage)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware DescriptionLanguage)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (25)
1.一种回归测试方法,其特征在于,包括:
在第一测试对象中执行所获取的回归测试包,得到第一组执行结果;
将所述第一组执行结果和预先存储的第二组执行结果分别与所述回归测试包的第一组预期结果和第二组预期结果进行对比,得到测试结果,所述第二组执行结果是在第二测试对象中执行所述回归测试包所得到的。
2.根据权利要求1所述的方法,其特征在于,所述在第一测试对象中执行所获取的回归测试包,得到第一组执行结果包括:
基于测试任务,从所获取的回归测试包中选取测试用例;
在第一测试对象中执行所选取的测试用例,得到所述第一测试对象对所选取的测试用例的第一组执行结果。
3.根据权利要求2所述的方法,其特征在于,所述测试任务包括需要执行的测试用例的标识以及所述第一测试对象与所述测试用例之间的对应关系。
4.根据权利要求2所述的方法,其特征在于,所述测试任务包括参与测试的第一测试对象的标识以及所述第一测试对象与所述测试用例之间的对应关系。
5.根据权利要求1所述的方法,其特征在于,所述在第一测试对象中执行所获取的回归测试包包括:
基于第一触发信息,在第一测试对象中执行即时获取的回归测试包或执行预先获取的回归测试包。
6.根据权利要求5所述的方法,其特征在于,所述第一触发信息包括指示执行测试的时间信息、自动化脚本指令或用户指令。
7.根据权利要求1、2或5所述的方法,其特征在于,所述在第一测试对象中执行所获取的回归测试包包括:
按照第一预设协议,对所获取的回归测试包进行转换;
在第一测试对象中执行转换后的回归测试包。
8.根据权利要求1、2或5所述的方法,其特征在于,所述在第一测试对象中执行所获取的回归测试包还包括:
按照第二预设协议,对所获取的回归测试包进行信息过滤;
在第一测试对象中执行信息过滤后的回归测试包。
9.根据权利要求1所述的方法,其特征在于,所述将所述第一组执行结果和预先存储的第二组执行结果分别与所述回归测试包的第一组预期结果和第二组预期结果进行对比包括:
查找预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果;
将所查找到的第二组执行结果与对应所述回归测试包的第二组预期结果进行对比;
将所述第一组执行结果与对应所述回归测试包的第一组预期结果进行对比。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
11.根据权利要求10所述的方法,其特征在于,所述获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识包括:
基于第二触发信息,获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
12.根据权利要求10所述的方法,其特征在于,所述获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识还包括:
预先获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识;
基于第二触发信息,查找到预先获取的回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
13.根据权利要求11或12所述的方法,其特征在于,所述第二触发信息包括进行测试的时间信息、自动化脚本指令或用户指令。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
存储所得到的第一组执行结果。
15.根据权利要求1所述的方法,其特征在于,所述第一测试对象包括接入软件系统中的新增子系统、新增模块或新增单元。
16.一种回归测试系统,其特征在于,包括:
执行单元,用于在第一测试对象中执行所获取的回归测试包,得到第一组执行结果;
对比单元,用于将所述第一组执行结果和预先存储的第二组执行结果分别与所述回归测试包的第一组预期结果和第二组预期结果进行对比,得到测试结果,所述第二组执行结果是在第二测试对象中执行所述回归测试包所得到的。
17.根据权利要求16所述的系统,其特征在于,所述执行单元包括:
选取子单元,用于基于测试任务,从所获取的回归测试包中选取测试用例;
第一执行子单元,用于在第一测试对象中执行所选取的测试用例,得到所述第一测试对象对所选取的测试用例的第一组执行结果。
18.根据权利要求16所述的系统,其特征在于,所述执行单元包括:
第二执行子单元,用于基于第一触发信息,在第一测试对象中执行即时获取的回归测试包或执行预先获取的回归测试包。
19.根据权利要求16-18任一项所述的系统,其特征在于,所述执行单元还包括:
转换子单元,用于按照第一预设协议,对所获取的回归测试包进行转换;
第三执行子单元,用于在第一测试对象中执行转换后的回归测试包。
20.根据权利要求16-18任一项所述的系统,其特征在于,所述执行单元还包括:
信息过滤子单元,用于按照第二预设协议,对所获取的回归测试包进行信息过滤;
第四执行子单元,用于在第一测试对象中执行信息过滤后的回归测试包。
21.根据权利要求16所述的系统,其特征在于,所述对比单元包括:
查找子单元,用于查找预先存储的在第二测试对象中执行所述回归测试包所得到的第二组执行结果;
第一对比子单元,用于将所查找到的第二组执行结果与对应所述回归测试包的第二组预期结果进行对比;
第二对比子单元,用于将所述第一组执行结果与对应所述回归测试包的第一组预期结果进行对比。
22.根据权利要求16所述的系统,其特征在于,所述系统还包括:
获取单元,用于获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
23.根据权利要求22所述的系统,其特征在于,所述获取单元包括:
第一获取子单元,用于基于第二触发信息,获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
24.根据权利要求22所述的系统,其特征在于,所述获取单元还包括:
第二获取子单元,用于预先获取所述回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识;
查找子单元,用于基于第二触发信息,查找到预先获取的回归测试包、所述第一测试对象的标识以及所述第二测试对象的标识。
25.根据权利要求16所述的系统,其特征在于,所述系统还包括:
存储单元,用于存储所得到的第一组执行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229461.0A CN106201859A (zh) | 2015-05-07 | 2015-05-07 | 一种回归测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229461.0A CN106201859A (zh) | 2015-05-07 | 2015-05-07 | 一种回归测试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106201859A true CN106201859A (zh) | 2016-12-07 |
Family
ID=57459301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510229461.0A Pending CN106201859A (zh) | 2015-05-07 | 2015-05-07 | 一种回归测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201859A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170612A (zh) * | 2018-01-23 | 2018-06-15 | 百度在线网络技术(北京)有限公司 | 一种自动化测试方法、装置及服务器 |
CN109597749A (zh) * | 2018-08-31 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 回归测试方法、装置、电子设备及计算机可读存储介质 |
CN109783341A (zh) * | 2017-11-10 | 2019-05-21 | 阿里巴巴集团控股有限公司 | 回归测试方法和装置 |
CN110134597A (zh) * | 2019-04-25 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 业务系统资金安全的回归测试方法及其系统 |
CN113358949A (zh) * | 2021-04-13 | 2021-09-07 | 杭州涂鸦信息技术有限公司 | 一种生产工具的测试方法、生产工具测试装置和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178687A (zh) * | 2007-11-26 | 2008-05-14 | 中兴通讯股份有限公司 | 软件回归测试的方法 |
CN101719095A (zh) * | 2009-12-30 | 2010-06-02 | 北京世纪高通科技有限公司 | 一种回归测试的管理方法及装置 |
CN103176895A (zh) * | 2011-12-22 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种回归测试方法和系统 |
CN103186456A (zh) * | 2011-12-29 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种系统测试的方法和装置 |
CN103198010A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 软件测试方法、装置及系统 |
US20140053134A1 (en) * | 2012-08-16 | 2014-02-20 | Fujitsu Limited | Software regression testing using symbolic execution |
-
2015
- 2015-05-07 CN CN201510229461.0A patent/CN106201859A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178687A (zh) * | 2007-11-26 | 2008-05-14 | 中兴通讯股份有限公司 | 软件回归测试的方法 |
CN101719095A (zh) * | 2009-12-30 | 2010-06-02 | 北京世纪高通科技有限公司 | 一种回归测试的管理方法及装置 |
CN103176895A (zh) * | 2011-12-22 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种回归测试方法和系统 |
CN103186456A (zh) * | 2011-12-29 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种系统测试的方法和装置 |
CN103198010A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 软件测试方法、装置及系统 |
US20140053134A1 (en) * | 2012-08-16 | 2014-02-20 | Fujitsu Limited | Software regression testing using symbolic execution |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783341A (zh) * | 2017-11-10 | 2019-05-21 | 阿里巴巴集团控股有限公司 | 回归测试方法和装置 |
CN108170612A (zh) * | 2018-01-23 | 2018-06-15 | 百度在线网络技术(北京)有限公司 | 一种自动化测试方法、装置及服务器 |
CN109597749A (zh) * | 2018-08-31 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 回归测试方法、装置、电子设备及计算机可读存储介质 |
CN109597749B (zh) * | 2018-08-31 | 2022-01-25 | 创新先进技术有限公司 | 回归测试方法、装置、电子设备及计算机可读存储介质 |
CN110134597A (zh) * | 2019-04-25 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 业务系统资金安全的回归测试方法及其系统 |
CN113358949A (zh) * | 2021-04-13 | 2021-09-07 | 杭州涂鸦信息技术有限公司 | 一种生产工具的测试方法、生产工具测试装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170052871A1 (en) | Completing functional testing | |
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
US11675575B2 (en) | Checking source code validity at time of code update | |
CN104391690A (zh) | 一种应用开发系统及方法 | |
CN106201859A (zh) | 一种回归测试方法及系统 | |
US20110202564A1 (en) | Data store switching apparatus, data store switching method, and non-transitory computer readable storage medium | |
US20210026756A1 (en) | Deriving software application dependency trees for white-box testing | |
US9870314B1 (en) | Update testing by build introspection | |
CN115794220A (zh) | 软件源迁移方法、装置和系统、计算设备和可读存储介质 | |
CA2811617C (en) | Commit sensitive tests | |
WO2023207973A1 (zh) | 编译器测试方法、用例生成方法、装置及指令存储结构 | |
CN110209983B (zh) | 一种网页web项目的部署方法及装置 | |
US7814334B2 (en) | Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content | |
CN115509904A (zh) | 一种接口测试用例的断言生成方法及装置 | |
EP4281912A1 (en) | Handling system-characteristics drift in machine learning applications | |
CN106502707B (zh) | 代码生成方法及装置 | |
US12093686B2 (en) | Code maintenance system | |
CN109582347B (zh) | 一种获取前端代码的方法及装置 | |
US20230004361A1 (en) | Code inspection interface providing method and apparatus for implementing the method | |
US11947966B2 (en) | Identifying computer instructions enclosed by macros and conflicting macros at build time | |
CN107562533B (zh) | 一种数据加载处理方法及装置 | |
US20190317877A1 (en) | Application state monitoring | |
CN115809193A (zh) | 前端逆向异常数据健壮性检测方法、装置及存储介质 | |
US9369352B1 (en) | Method of capturing server and operating system metrics for virtual to physical topology reporting | |
US9508062B2 (en) | Problem management record profiling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |
|
RJ01 | Rejection of invention patent application after publication |