一种新应用的测试方法及装置与流程

文档序号:12596975阅读:235来源:国知局
一种新应用的测试方法及装置与流程

本发明涉及应用测试的技术领域,尤其涉及对预上线的新应用进行测试的技术。



背景技术:

日常互联网检索服务,均以接口的形式向服务端发送请求,拿到返回结果后,经过一定的处理呈现给用户。

对于预上线的新应用,都需要对其功能进行各种测试后才正式发布。对于在已有应用的基础上进行功能更新的应用,出了对新增功能进行测试外,对于原应用上已有的功能也需要测试其是否兼容,现有的测试方案基本为基于新应用的回归测试,然而,这种测试方案无法保证回归测试案例是完整的,并且回归测试案例一般是结合具体功能构造测试数据,而非用户的真实数据,测试结果可能存在遗漏,因此也无法确定该新应用是否兼容原应用上的已有功能。

因此,针对服务接口变更频繁,为了保证新应用的测试质量及效果,可以通过对新应用和原应用返回结果进行diff测试,可以快速准确的保证新应用的更新,而不会影响到线上的老功能。



技术实现要素:

本发明实施例提出了解决上述对待上线新应用进行测试时存在问题的技术方案,

在一个方面,本发明实施例提供了一种新应用的测试方法,包括:

向更新后的新应用以及更新前的原应用发送相同的测试请求;

获取新应用及原应用根据所述测试请求反馈的的测试结果;

比较所述新应用的测试结果与原应用的测试结果是否一致,若一致则所述新应用通过测试。

进一步地,所述向更新后的新应用以及更新前的原应用发送相同的测试请求之前还包括,分别为所述新应用及原应用部署相应的测试环境,所述新应用的测试环境为预发布环境,所述原应用的测试环境为diff测试环境。

进一步地,所述分别为所述新应用及原应用部署相应的测试环境具体包括,对所述新应用及原应用的待测功能对应参数进行设置,所述待测试功能在两种测试环境下对应的参数设置保持一致。

进一步地,所述测试请求包括,所述测试请求为获取的用户向线上应用发送的一条或一批请求。

进一步地,所述比较新应用的测试结果与原应用的测试结果是否一致包括:比较两种测试结果的展现内容、展现顺序及展现方式是否一致。

在另一个方面,本发明实施例提供了一种新应用的测试装置,所述装置包括:发送模块、结果获取模块、测试模块及比较模块;

所述发送模块,用于向测试新应用的测试模块及测试原应用的测试模块发送相同的测试请求;

所述结果获取模块,用于从测试模块获取所述新应用及原应用的测试结果;

所述比较模块,用于比较所述新应用的测试结果与原应用的测试结果是否一致,若一致则所述新应用通过测试。

进一步地,所述装置还包括部署模块,用于为所述新应用部署测试模块一,为所述原应用部署测试模块二。

进一步地,所述部署模块还用于,对所述新应用及原应用的待测功能对应参数进行设置,所述待测试功能在两种测试环境下对应的参数设置保持一致。

进一步地,所述装置还包括请求抓取模块,用于抓取测试请求,该测试请求为用户向线上应用发送的一条或一批请求。

进一步地,所述比较模块比较所述新应用的测试结果与原应用的测试结果是否一致包括:比较两种测试结果的展现内容、展现顺序及展现方式是否一致。

本发明通过部署类似生产环境的预发布环境和diff测试环境,在预发布环境、diff测试环境分别运行待测试的新应用、原应用,通过向新应用、原应用发送相同的用户操作请求,比较测试结果是否一致以快速判断新应用是否对老功能造成影响。

附图说明

下面将参照附图描述本发明的具体实施例,其中:

图1示出了本发明实施例一中新应用测试方法的流程示意图;

图2示出了本发明实施例二中新应用测试装置的结构示意图;

图3示出了本发明实施例三中新应用测试方法的流程示意图;

图4示出了本发明实施例四中新应用测试方法的流程示意图。

具体实施方式

为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。

发明人在发明过程中注意到:对预上线的新应用的现有回归测试方案不能完全的避免缺陷,而是尽可能的去发现缺陷,而且由于线上环境的复杂性,在线下测试环境只能保证在有限的测试数据的前提下,对老功能的测试结果是正确的,但是放到线上真实的复杂数据和环境下,新功能的方案可能不全面,导致一些隐藏问题不能被发现。

针对上述不足,本发明实施例提出了一种对新应用进行测试的方法,下面进行说明。

本发明依赖的环境:生产环境(多台线上服务器)、用于测试新应用的预发布环境、用于测试原应用的diff环境。这里的应用可以指应用软件、后台为软件运行服务的服务器等,原应用指目前已在线上运行的应用,新应用指在原应用基础上更新或扩展的应用。

实施例一

图1示出了本发明实施例进行新服务测试的方法,如图所示,包括:

步骤11,向更新后的新应用(即待测试应用)及更新前的原应用发送相同的测试请求;

步骤12:获取新应用及原应用根据所述测试请求反馈的测试结果;

步骤13:比较新应用与原应用返回的测试结果,从而判定新应用中的老功能是否兼容老应用。若新应用与原应用返回测试结果一致则通过测试,若不一致则对新应用进行修改,并再次测试,直到测试通过。

比较新应用的测试结果与原应用的测试结果是否一致包括:比较两种测试结果的展现内容、展现顺序及展现方式是否一致。例如,对于检索服务,关注的更新是排序,那么比较两种展现结果中给出的检索结果的排列顺序是否一致,以及排序时所用关键字是否一致,例如对学生成绩进行排序,展示方式是否均为第一列为姓名,第二列为成绩,或者是否均为第一列为学号,第二列为成绩。

进一步地,在上述步骤11之前还包括以下步骤1A和步骤1B:

步骤1A,获取测试请求,该测试请求可以但不限于是用户向线上应用发送的用户请求,可以是一条请求,也可以是一批请求(如多个用户发送的不同请求),为了拿到尽可能真实的请求数据,可以采用tcpcopy(一种请求复制工具)将生产环境的请求(即流量)复制一份,也可以通过抓取线上的log,使用测试脚本拼接用户真实请求。

用户发送的请求可以是检索请求、查询请求等。

步骤1B,分别为新应用和原应用部署测试环境,将生产环境中目前版本的应用(即原应用),部署到测试环境(如diff环境);将带有新功能的待上线版本的应用,部署到预发布环境;

具体地,对待测试应用的各参数进行设置,两种测试环境下被测试功能对应各参数设置需一致,若新应用在原应用基础上进行了功能扩展,本次测试是对新应用进行是否兼容原应用的测试,因此,参数设置时需将被测试的原应用对应的参数设置成与diff环境中原应用的参数一致。如果新应用相对原应用参数有减少,则关闭原应用中此参数相关功能。

上述步骤1A、步骤1B均为测试前的准备工作,二者执行的先后顺序不做限定,可以是步骤1A在前,或步骤1B在前,或二者同时进行。

实施例二

基于同一发明构思,本发明实施例中还提供了一种对新应用进行测试的装置,如图2所示,该装置可以包括:

发送模块、结果获取模块、测试模块及比较模块;

发送模块,用于向测试新应用的测试模块及测试原应用的测试模块发送相同的测试请求;

结果获取模块,用于从测试模块获取所述新应用及原应用根据所述测试请求反馈的测试结果;

比较模块,用于比较所述新应用的测试结果与原应用的测试结果是否一致,若一致则所述新应用通过测试。

进一步地,该装置还可以包括部署模块,用于为新应用部署测试模块一,为原应用部署测试模块二;具体部署内容可以包括,对新应用及原应用的待测功能对应参数进行设置,所述待测试功能在两种测试环境下对应的参数设置保持一致。

进一步地,装置还包括请求抓取模块,用于抓取测试请求,该测试请求为用户向线上应用发送的一条或一批请求,如抓取的一个时间段内的日志。可以是查询请求、检索请求等。上述测试请求可以但不限于是抓取的用户请求。

进一步地,发送模块,向测试模块发送获取的测试请求,包括向测试模块一(新应用测试模块)及测试模块二(如diff测试模块)发送相同的测试请求。

结果获取模块从测试模块获取测试结果,包括从测试模块一以及测试模块二获取测试结果。

比较模块,对比两个测试模块的测试结果是否一致包括,比较两种测试结果的展现内容、展现顺序及展现方式是否一致。

例如,当待测试功能为排序功能时,比较新应用和原应用的排序结果是否一致,包括排序结果的先后顺序、排序所用关键字(如采用姓名排序,或采用学号排序等)是否一致。

采用本提案的技术方案,对检索服务的测试,可通过构造请求样例,发送请求到待测试应用,通过解析应用返回的数据,进行功能的验证。然后,检索服务及数据库更新相对频繁,除了基本的回归测试,还可以通过引入线上的真实流量,查看新、原应用返回的结果差异,来判断老功能是否正确,若不正确则对新应用进行修改并再次测试,直到新应用和原应用返回的结果一直,即兼容老功能,测试通过。进一步地,本发明中向待测试应用发送的请求为从线上抓取的用户真实请求,可最大程度地保证测试数据的真实性,防止测试结果存在遗漏。

实施例三:

针对检索广告的应用,对于广告排序可以按照ecpm(千次展现收入)排序。本次功能修改点:对检索服务器进行了代码重构,排序策略未改变,本次测试在于验证搜索结果排序策略逻辑的正确性。测试流程如图3所示,包括以下步骤:

步骤31,向更新后的新的广告检索应用及更新前的原广告检索发送相同的广告检索请求;

进一步地,该步骤之前还包括:

步骤3A:将新开发的广告检索应用部署到预发布环境,将对广告排序功能有影响的配置参数设置好,其他配置参数配置为默认或者关闭,从而减少对排序功能的外界影响。将生产环境当前广告应用部署到diff测试环境,配置功能参数与预发布环境中的相同,如果新应用对原应用参数有增加,则保证新应用中此参数相关功能关闭;如果新应用相对老服务参数有减少,则将原应用中此参数相关功能关闭,以保住两种测试环境下应用对应参数设置一致。

步骤3B:从生产环境抓取一小时的日志,该日志为用户发送的真实的广告检索请求数据,根据检索应用的请求参数接口标准,将日志数据一条条复原为真实的查询请求url。

步骤32,获取新的广告检索应用及原广告检索应用根据上述广告检索请求反馈的测试结果;

步骤33:比较新的广告检索应用与原广告检索应用返回的广告排序结果,从而判定新应用中的老功能是否兼容原应用。

每个请求返回结果列表中按照diff测试环境中返回的广告的顺序,对比预发布环境中相应广告的ecpm参数值,如果排序顺序和值均一样,则认为新的广告检索应用测试通过。

实施例四:

针对网页搜索应用,对于搜索结果的正确性验证。本次功能修改点:对搜索应用的数据库进行了重构,搜索策略未改变,本次测试在于验证搜索策略逻辑的正确性。具体测试流程如图4所示,步骤如下:

步骤41:向更新后的新的网页检索应用及更新前的原网页搜索发送相同的网页搜索请求;

进一步地,该步骤之前还包括:

步骤4A'将新开发的网页搜索应用部署到预发布环境,对该应用包含的数据库进行配置,并且在数据库中灌入真实的数据,该真实数据指生产环境(即线上应用)的数据库中存储的原始数据,配置好数据库相关的参数,非数据库相关其他参数配置为默认或者关闭,从而减少外界对数据库功能的影响。

将生产环境当前网页搜索应用部署到diff测试环境,配置好原应用中的数据库,并且灌入真实的数据,即数据库中存储的原始数据,和预发布环境的数据相同,配置好老数据库相关的参数,保证与新数据库配置的参数相同,如果新应用对原应用参数有增加,则保证新应用中此参数相关功能关闭;如果新应用相对老服务参数有减少,则将原应用中此参数相关功能关闭,以保住两种测试环境下应用对应参数设置一致。

步骤4B:从生产环境抓取历史一小时的日志,即用户向线上应用发送的真实的网元搜索请求数据,根据搜索服务的请求参数接口标准,将日志数据一条条复原为真实的查询请求url;

步骤42:获取新的网页搜索应用及原网页搜索应用根据上述网页搜索请求反馈的测试结果;

步骤43:比较新的网页搜索应用与原网页搜索应用返回的网页搜索结果,从而判定新应用中的老功能是否兼容原应用。

每个请求返回结果列表中按照diff测试环境中返回的内容,对比预发布环境中相应返回的内容,如果新的网页搜索应用和原网页搜索应用的数据库返回内容一致,则认为新的网页搜索应用测试通过。

为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

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