CN110362464B - 软件分析方法及设备 - Google Patents
软件分析方法及设备 Download PDFInfo
- Publication number
- CN110362464B CN110362464B CN201810320732.7A CN201810320732A CN110362464B CN 110362464 B CN110362464 B CN 110362464B CN 201810320732 A CN201810320732 A CN 201810320732A CN 110362464 B CN110362464 B CN 110362464B
- Authority
- CN
- China
- Prior art keywords
- software system
- advertisement
- processing result
- analysis
- request message
- 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/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种软件分析方法及设备,该软件分析方法可以包括:获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;对所述第一处理结果和所述第二处理结果进行比较,根据比较结果输出所述测试软件***的性能分析结果。可见,本发明实施例与采用固定的指标确定测试软件***的性能相比,能够提高软件分析的准确度。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种软件分析方法及设备。
背景技术
目前,随着终端设备的逐渐普及,人们对终端设备中安装的***软件以及应用软件等的需要也在发生不断的变化。为了改善所发布的软件质量,以便于更好的改善用户体验,通常在软件发布之前进行软件测试,来确认软件质量是否达标,是否能够发布。
然而,确认软件质量是否达标所用的鉴定标准是固定的值,很容易导致软件测试的准确度较低。
发明内容
本发明实施例提供一种软件分析方法及设备,能够提高软件分析的准确度。
第一方面,本发明实施例提供一种软件分析方法,该软件分析方法可以包括:
获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;
对所述第一处理结果和所述第二处理结果进行比较,获得比较结果;
根据比较结果输出所述测试软件***的性能分析结果;
所述测试软件***和所述已发布软件***为同一软件***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
可选的,所述方法还包括:
根据预置的监控程序,监控所述测试软件***的运行状态;
根据所述运行状态,生成并输出状态分析结果。
可选的,所述监控程序包括程序崩溃监控程序,所述运行状态包括是否产生程序崩溃文件;
所述根据所述运行状态,生成并输出状态分析结果,包括:
当所述运行状态中产生所述程序崩溃文件时,生成并输出程序崩溃记录。
可选的,所述监控程序包括进程监控程序,所述运行状态包括是否存在异常退出的进程;
所述根据所述运行状态,生成并输出状态分析结果,包括:
当所述运行状态中存在异常退出的进程时,生成并输出程序异常退出记录。
可选的,所述监控程序包括日志监控程序,所述运行状态包括扫描所述测试软件***的程序日志;
所述根据所述运行状态,生成并输出状态分析结果,包括:
当所述程序日志出现错误日志时,生成并输出错误日志记录。
可选的,所述监控程序包括内存监控程序,所述运行状态包括内存使用情况;
所述根据所述运行状态,生成并输出状态分析结果,包括:
根据所述内存使用情况,绘制并输出内存使用图。
可选的,所述测试软件***和所述已发布软件***为广告***的不同版本,所述对所述第一处理结果和所述第二处理结果进行比较,获得比较结果,包括:
获取所述第一处理结果中的广告数量和所述第二处理结果中的广告数量;
根据所述请求消息中指定的广告数量和所述第一处理结果中的广告数量,确定所述测试软件***的广告填充率;
根据所述请求消息中指定的广告数量和所述第二处理结果中的广告数量,确定所述已发布软件***的广告填充率;
对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,获得比较结果。
可选的,所述根据比较结果输出所述测试软件***的性能分析结果,包括:
当所述测试软件***的广告填充率与所述已发布软件***的广告填充率之间的差值小于预设阈值时,输出指示所述测试软件***本次分析不通过的分析结果。
可选的,所述请求消息为流量转发服务器从线上服务器复制的用户请求消息,所述用户请求消息为用户通过客户端访问所述线上服务器时发送的。
第二方面,本发明实施例还提供一种软件分析***,包括监控服务器、测试服务器和对照服务器;
所述测试服务器,用于运行测试软件***对请求消息进行处理,获得第一处理结果;
所述对照服务器,用于运行已发布软件***对所述请求消息进行处理,获得第二处理结果;
所述监控服务器,用于获取所述第一处理结果和所述第二处理结果;对所述第一处理结果和所述第二处理结果进行比较,获得比较结果;以及根据比较结果输出所述测试软件***的性能分析结果;
所述测试软件***和所述已发布软件***为同一软件***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
第三方面,本发明实施例还提供一种软件分析设备,包括处理器和存储器,所述处理器用于调用所述存储器中的程序,执行第一方面所述的软件分析方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被服务器执行时使所述服务器执行第一方面所述的方法。
本发明实施例可以获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;对所述第一处理结果和所述第二处理结果进行比较,根据比较结果输出所述测试软件***的性能分析结果,可见,本发明实施例基于已发布软件***的处理结果作为比较,来确定测试软件***的性能,与采用固定的指标确定测试软件***的性能相比,能够提高软件分析的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种软件分析***的结构示意图;
图2是本发明实施例提供的一种软件分析方法的流程示意图;
图3是本发明实施例提供的一种获取广告填充率的界面示意图;
图4是本发明实施例提供的另一种软件分析方法的流程示意图;
图5是本发明实施例提供的一种邮件发送程序崩溃记录的示意图;
图6是本发明实施例提供的一种错误日志的示意图;
图7是本发明实施例提供的一种邮件发送内存使用图的示意图;
图8是本发明实施例提供的一种软件分析装置的结构示意图;
图9是本发明实施例提供的一种软件分析设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供一种软件分析方法,能够基于用户请求消息对测试软件***进行分析。以下进行详细阐述。
请参阅图1,图1是本发明实施例提供的一种软件分析***的结构示意图,如图1所示,该软件分析***可以包括监控服务器、测试服务器、对照服务器、流量转发服务器以及线上服务器。
测试服务器可以包括至少一个服务器,用于运行测试软件***对请求消息进行处理,获得第一处理结果。
其中,该测试软件***是通过持续集成的方式获得的,即以预设周期基于开发人员提交的代码进行编译,获得的可执行程序。这样,一旦有更新的代码提交,就能够将该新版本的测试软件***编译构建出来,部署到测试服务器中,由监控服务器对该测试软件***进行分析。可见,该软件分析方法可以将软件分析时间大大提前;针对多模块的测试软件***,该软件分析方法需要开发人员在提交代码时保证提交的代码不会对其他模块产生依赖,即推动了模块间的解耦;另外,该软件分析方法每次部署的测试软件***可以对应到具体提交的代码和提交人,从而有利于将性能分析结果发送给提交人,来对所提交的代码进行分析或改进。
对照服务器可以包括至少一个服务器,用于运行已发布软件***对所述请求消息进行处理,获得第二处理结果。流量转发服务器,用于从线上服务器复制用户请求消息作为所述请求消息,另外,流量转发服务器还可以将该请求消息转发给其他需要线上流量或用户请求消息的***。其中,流量转发服务器从线上服务器复制的用户请求消息占线上服务器接收的用户请求消息的一定比例,这样,流量转发服务器可以持续的将一定比例的请求消息转发给测试服务器和对照服务器,从而对测试软件***进行持续的分析测试。
其中,如图1所示,该用户请求消息为用户通过客户端访问所述线上服务器时发送的。
其中,线上服务器运行的软件***也是已发布软件***,基于该已发布软件***,线上服务器能够接收并处理来自用户通过客户端发送的用户请求消息。可见,测试服务器和对照服务器在运行过程中可以覆盖实际环境中遇到的用户请求消息,有利于提高软件分析的准确度。
监控服务器,用于获取所述第一处理结果和所述第二处理结果,以及对所述第一处理结果和所述第二处理结果进行比较,根据比较结果输出所述测试软件***的性能分析结果,所述性能分析结果用于指示所述测试软件***的性能指标是否符合预期性能指标。
另外,监控服务器还可以根据预置的监控程序,检测测试软件***的运行状态,根据所述运行状态,生成并输出状态分析结果。
本发明实施例中,测试软件***和已发布软件***为同一软件***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。该数据库提供处理请求消息过程中所需的源数据,该数据库也是线上服务器处理用户请求消息所使用的数据库。
本发明实施例中,测试服务器中运行测试软件***,也可以称为测试服务器运行以测试软件***为核心的分析环境,相应的,线上服务器中运行已发布软件***,也可以称为线上服务器运行以已发布软件***为核心的生产环境。其中,分析环境与生产环境除了所运行的软件***的版本不同外,所设置的相关配置也可能不同,本发明实施例不做限定。
基于图1所示的软件分析***,本发明实施例提供了一种软件分析方法,该软件分析方法还可以输出测试软件***的性能分析结果。具体的,请参阅图2,图2是本发明实施例提供的一种软件分析方法的流程示意图,该软件分析方法以监控服务器作为执行主体为例进行阐述,该软件分析方法可以包括以下步骤:
101、监控服务器获取第一处理结果和第二处理结果;所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;
其中,所述请求消息为流量转发服务器从线上服务器复制的用户请求消息,该用户请求消息是用户通过客户端访问所述线上服务器时发送的;
102、监控服务器对所述第一处理结果和所述第二处理结果进行比较,根据比较结果输出所述测试软件***的性能分析结果,所述性能分析结果用于指示所述测试软件***的性能指标是否符合预期性能指标;
所述测试软件***和所述已发布软件***为同一软件***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
可见,第一处理结果是由测试软件***处理从线上服务器复制的用户请求消息获得的,也可以称为分析组的结果;第二处理结果是由已发布软件***处理同样的请求消息获得的,也可以称为对照组的结果;另外,分析组的结果和对照组的结果所采用的源数据均来自同一数据库,该数据库可以为生产环境中使用的数据库,这样通过比较第一处理结果和第二处理结果获得的性能分析结果,与实际情况更加接近,可以有效提高软件分析的准确度。
作为一种示例,该软件分析方法应用到广告***的分析评定中时,该测试软件***即为测试广告***,已发布软件***为已发布广告***,测试广告***和已发布广告***均可以对同一请求消息进行处理,获得第一处理结果和第二处理结果,其中,广告***中,第一处理结果或第二处理结果是测试广告***或已发布广告***针对请求消息返回的一条或多条广告,广告***中将处理结果中返回的的广告数量与请求消息中指定的广告数量之间的比例作为广告填充率。因此,性能分析结果可以通过比较测试软件***和已发布软件***之间的广告填充率来确定测试广告***的分析是否通过。
作为一种可选的实施方式,步骤102,对所述第一处理结果和所述第二处理结果进行比较,根据比较结果输出所述测试软件***的性能分析结果,包括:
1021、监控服务器获取所述第一处理结果中的广告数量和所述第二处理结果中的广告数量;
其中,监控服务器可以自动统计一段时间内的第一处理结果和第二处理结果,从而来获得两种处理结果中的广告数量。
1022、监控服务器根据所述请求消息中指定的广告数量和所述第一处理结果中的广告数量,确定所述测试软件***的广告填充率;
1023、监控服务器根据所述请求消息中指定的广告数量和所述第二处理结果中的广告数量,确定所述已发布软件***的广告填充率;
1024、监控服务器对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,根据比较结果输出所述测试软件***的性能分析结果。
其中,监控服务器对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,根据比较结果输出所述测试软件***的性能分析结果,包括:当所述测试软件***的广告填充率与所述已发布软件***的广告填充率之间的差值小于预设阈值时,输出指示所述测试软件***本次分析不通过的分析结果。
例如,测试软件***的广告填充率为30%,已发布软件***的广告填充率为36%,预设阈值为5%,则测试软件***的广告填充率与已发布软件***的广告填充率之间的差值为6%,小于5%,可以输出指示所述测试软件***本次分析不通过的分析结果;若测试软件***的广告填充率为32%,基与已发布软件***的广告填充率之间的差值为4%,小于5%,可以输出指示所述测试软件***本次分析不通过的分析结果。
在一种示例中,图3是本发明实施例提供的一种获取广告填充率的界面示意图,如图3所示,可以按小时查询广告填充率,其中,广告***是连接广告位、广告主以及用户的***,广告主为在广告***中投放广告的商家;广告位为媒体上展示广告的区域,例如,手机QQ浏览器_头条_列表页1文3图、手机QQ浏览器_push模板左文右图;广告请求数为发现广告***的请求数;监控服务器可以以界面的形式详细的输出每个广告位ID、广告位名称、时间范围等对应的测试软件***的请求消息数量和广告数量,已发布软件***的请求消息数量和广告数量。如图7所示,查询2017-05-05 10:00的广告填充率,则该监控服务器可以输出每个广告位ID的广告位名称在统计时间范围内分析组的请求消息的数量、分析组的广告请求消息的数量、分析组返回的广告数量,对照组的请求消息的数量、对照组的广告请求消息的数量、对照组返回广告数量,从而可以计算出分析组的广告填充率和对照组的广告填充率。其中,分析组为测试软件***,对照组为已发布软件***。
作为另一种实施方式,监控服务器可以在性能分析结果指示本次分析不通过时,通过邮件或即时通信消息的方式将该性能分析结果通知给相关人员,例如,提交代码的开发人员。
可见,该实施方式在***运行状态为正常的情况下,能够根据针对请求消息的处理结果来分析测试软件***是否存在逻辑缺陷,从而更加客观的获知测试软件***的运行情况,获得测试软件***的性能分析结果。
基于图1所示的软件分析***,本发明实施例还提供一种软件分析方法,该软件分析方法除了可以输出性能分析结果,还可以输出状态分析结果,请参阅图4,图4是本发明实施例提供的另一种软件分析方法的流程示意图,如图4所示,图4除了包括图1所示的101和102,还可以包括103、104:
103、监控服务器根据预置的监控程序,监控所述测试软件***的运行状态;
104、监控服务器根据所述运行状态,生成并输出状态分析结果。
在一种实施方式中,所述监控程序包括程序崩溃监控程序,所述运行状态包括是否产生程序崩溃文件;所述根据所述运行状态,生成并输出状态分析结果,包括:当所述运行状态中产生所述程序崩溃文件时,生成并输出程序崩溃记录。可见,该实施方式可以根据程序崩溃文件自动发现发生了崩溃的程序块。其中,该程序崩溃记录可以包括运行所述程序块的服务器信息、所述程序块的信息以及所述提交的代码信息。例如,该程序崩溃记录包括运行该程序块的服务器IP地址、程序块的名称,core文件名以及所提交的代码的标识。
可见,在第一处理结果和第二处理结果均是基于用户请求消息获得的,也就是说,测试软件***需要在线上流量的压力下运行,这样,若提交的代码不稳定时,很容易导致崩溃。因此,该实施方式可以检测测试软件***的稳定性和抗压能力。
在一种示例中,该程序崩溃记录还可以以邮件或即时通讯消息的方式发送给相关人员,例如,提交该标识的代码的开发人员。如图5所示,图5是本发明实施例提供的一种邮件发送程序崩溃记录的示意图。一个程序块崩溃(Onebox COREDUMP!),运行该程序块的服务器IP地址:10.224.129.185;程序块的名称:display;core文件名:/data/coredump/backup/core_display_server,提交的代码的标识ID:1595025。可见,基于这些信息,开发人员可以查找到崩溃的程序块来分析原因。
在另一种实施方式中,所述监控程序包括进程监控程序,所述运行状态包括是否存在异常退出的进程;相应的,根据所述运行状态,生成并输出状态分析结果,可以包括:当所述运行状态中存在异常退出的进程时,生成并输出程序异常退出记录。可选的,该异常退出记录中可以包括所退出的进程的标识信息以及退出时间等。
可见,该实施方式在所提交的代码包含缺陷,造成程序异常退出时,监控程序会自动发现所监控的进程不存在了,从而可以生成并输出程序异常退出记录。
在又一种实施方式中,所述监控程序包括日志监控程序,所述运行状态包括扫描所述测试软件***的程序日志;相应的,根据所述运行状态,生成并输出状态分析结果,可以包括:当所述程序日志出现错误日志时,生成并输出错误日志记录。其中,错误日志记录是用来记录运行时出错信息的文本文件。
可见,该实施方式可以在测试软件***运行过程中,程序没有出现非致命性错误仅打印出错误日志时,及时扫描到该错误日志,并输出该错误日志记录。在一种示例中,如图6所示,图6是本发明实施例提供的一种错误日志的示意图,监控服务器可以以邮件或即时通讯消息的方式将该错误日志发送给相关人员,例如,提交代码的开发人员。
在又一种实施方式中,所述监控程序包括内存监控程序,所述运行状态包括内存使用情况;相应的,根据所述运行状态,生成并输出状态分析结果,可以包括:根据所述内存使用情况,绘制并输出内存使用图。可选的,监控服务器可以将该内存使用图以邮件或即时通讯消息的方式发送给相关人员,例如,提交代码的开发人员。
在一个示例中,图7是本发明实施例提供的一种邮件发送内存使用图的示意图,如图7所示,该内存使用图的横坐标为时长time(小时hour),纵坐标为内存大小Memory Usage(KB),根据内存监控程序获取的测试软件***运行过程中内存使用情况,绘制出图7所示的每天的内存使用图。
综上所述,本发明实施例所述的软件分析方法,不是基于特定的测试用例获得的处理结果,而是基于用户请求消息获得的处理结果,从而使得对该处理结果的分析更加贴合测试软件***运行的实际情况。另外,该测试软件***基于提交的代码进行编译获得,使得开发人员在提交代码时保证提交的代码不会对其他模块产生依赖,因此,该软件分析方法能够推动模块间的解耦。该软件分析方法还可以对测试软件***运行中的关键信息进行监控,能够及时根据监控的运行状态输出状态分析结果,上报给相关人员,从而避免上报不及时导致的流量浪费情况。
请参阅图8,图8是本申请实施例提供的一种软件分析装置的结构示意图,如图8所示,该软件分析装置可以包括以下单元:
获取单元201,用于获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;
比较单元202,用于对所述第一处理结果和所述第二处理结果进行比较,获得比较结果;
输出单元203,用于根据比较结果输出所述测试软件***的性能分析结果,所述性能分析结果用于指示所述测试软件***的性能指标是否符合预期性能指标;
所述测试软件***和所述已发布软件***为同一软件***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
可选的,该软件分析装置还可以包括以下单元:
监控单元204,用于根据预置的监控程序,监控所述测试软件***的运行状态;
所述输出单元203,还用于根据所述运行状态,生成并输出状态分析结果。
可选的,所述监控程序包括程序崩溃监控程序,所述运行状态包括是否产生程序崩溃文件;所述输出单元根据所述运行状态,生成并输出状态分析结果,具体为:当所述运行状态中产生所述程序崩溃文件时,生成并输出程序崩溃记录。
可选的,所述监控程序包括进程监控程序,所述运行状态包括是否存在异常退出的进程;所述输出单元203根据所述运行状态,生成并输出状态分析结果,具体为:当所述运行状态中存在异常退出的进程时,生成并输出程序异常退出记录。
可选的,所述监控程序包括日志监控程序,所述运行状态包括扫描所述测试软件***的程序日志;所述输出单元203根据所述运行状态,生成并输出状态分析结果,具体为:当所述程序日志出现错误日志时,生成并输出错误日志记录。
可选的,所述监控程序包括内存监控程序,所述运行状态包括内存使用情况;所述输出单元203根据所述运行状态,生成并输出状态分析结果,具体为:根据所述内存使用情况,绘制并输出内存使用图。
可选的,所述测试软件***和所述已发布软件***为广告***的不同版本,所述比较单元对所述第一处理结果和所述第二处理结果进行比较,获得比较结果,具体为:获取所述第一处理结果中的广告数量和所述第二处理结果中的广告数量;根据所述请求消息中指定的广告数量和所述第一处理结果中的广告数量,确定所述测试软件***的广告填充率;根据所述请求消息中指定的广告数量和所述第二处理结果中的广告数量,确定所述已发布软件***的广告填充率;对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,获得比较结果。
可选的,输出单元203根据比较结果输出所述测试软件***的性能分析结果,具体为:当所述测试软件***的广告填充率与所述已发布软件***的广告填充率之间的差值小于预设阈值时,输出指示所述测试软件***本次分析不通过的分析结果。
本发明实施例中,所述请求消息为流量转发服务器从线上服务器复制的用户请求消息,所述用户请求消息为用户通过客户端访问所述线上服务器时发送的。
本发明实施例中,获取单元201获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;比较单元202对所述第一处理结果和所述第二处理结果进行比较,获得比较结果;输出单元203根据比较结果输出所述测试软件***的性能分析结果。可见,本发明实施例基于已发布软件***的处理结果作为比较,来确定测试软件***的性能,与采用固定的指标确定测试软件***的性能相比,能够提高软件分析的准确度。
请参见图9,图9为本发明实施例提供的一种软件分析设备的结构示意图,本发明实施例提供的软件分析设备可以用于实施上述发明实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照上述所示的相关内容。
如图9所示,该软件分析设备包括:至少一个处理器301,例如CPU,至少一个输入装置303,至少一个输出装置304,存储器305,至少一个通信总线302。其中,通信总线302用于实现这些组件之间的连接通信。其中,输入装置303、输出装置304具体可以为网络接口,用于与客户端进行交互。其中,存储器305可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器,具体用于存储处理逻辑信息。存储器305可选的可以包含至少一个位于远离前述处理器301的存储装置。处理器301可以结合图8所示的业务优化装置。存储器305中存储一组程序代码,且处理器301、输入装置303以及输出装置304调用存储器305中存储的程序代码,用于执行以下操作:
通过输入装置303获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;
对所述第一处理结果和所述第二处理结果进行比较,根据比较结果通过输出装置304输出所述测试软件***的性能分析结果;
所述测试软件***和所述已发布软件***为同一软件***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
可选的,处理器301还用于执行以下步骤:
根据预置的监控程序,监控所述测试软件***的运行状态;
根据所述运行状态,生成并输出状态分析结果。
可选的,所述监控程序包括程序崩溃监控程序,所述运行状态包括是否产生程序崩溃文件;输出装置304根据所述运行状态,生成并输出状态分析结果,具体为:
当所述运行状态中产生所述程序崩溃文件时,生成并输出程序崩溃记录。
可选的,所述监控程序包括进程监控程序,所述运行状态包括是否存在异常退出的进程;输出装置304根据所述运行状态,生成并输出状态分析结果,具体为:当所述运行状态中存在异常退出的进程时,生成并输出程序异常退出记录。
可选的,所述监控程序包括日志监控程序,所述运行状态包括扫描所述测试软件***的程序日志;输出装置304根据所述运行状态,生成并输出状态分析结果,具体为:
当所述程序日志出现错误日志时,生成并输出错误日志记录。
可选的,所述监控程序包括内存监控程序,所述运行状态包括内存使用情况;输出装置304根据所述运行状态,生成并输出状态分析结果,具体为:
根据所述内存使用情况,绘制并输出内存使用图。
在一种可选的实施例中,所述测试软件***和所述已发布软件***为广告***的不同版本,处理器301对所述第一处理结果和所述第二处理结果进行比较,获得比较结果,具体为:
获取所述第一处理结果中的广告数量和所述第二处理结果中的广告数量;
根据所述请求消息中指定的广告数量和所述第一处理结果中的广告数量,确定所述测试软件***的广告填充率;
根据所述请求消息中指定的广告数量和所述第二处理结果中的广告数量,确定所述已发布软件***的广告填充率;
对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,获得比较结果。
可选的,处理器301对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,获得比较结果,具体为:
当所述测试软件***的广告填充率与所述已发布软件***的广告填充率之间的差值小于预设阈值时,输出指示所述测试软件***本次分析不通过的分析结果。
可见,本发明实施例中,可以通过输入装置303获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的;通过处理器301对所述第一处理结果和所述第二处理结果进行比较,获得比较结果;由输出装置304根据比较结果输出所述测试软件***的性能分析结果,可见,本发明实施例基于已发布软件***的处理结果作为比较,来确定测试软件***的性能,与采用固定的指标确定测试软件***的性能相比,能够提高软件分析的准确度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (9)
1.一种软件分析方法,其特征在于,所述方法包括:
获取第一处理结果和第二处理结果,所述第一处理结果为测试软件***对请求消息进行处理后获得的,所述第二处理结果为已发布软件***对所述请求消息进行处理后获得的,所述测试软件***是通过持续集成的方式获得的,所述请求消息是被持续发送给所述测试软件***和所述已发布软件***的,在持续集成过程中每次部署的测试软件***对应提交的代码和提交人,所述测试软件***和所述已发布软件***为广告***的不同版本;
获取所述第一处理结果中的广告数量和所述第二处理结果中的广告数量;
根据所述请求消息中指定的广告数量和所述第一处理结果中的广告数量,确定所述测试软件***的广告填充率;
根据所述请求消息中指定的广告数量和所述第二处理结果中的广告数量,确定所述已发布软件***的广告填充率;
对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,获得比较结果;
当所述测试软件***的广告填充率与所述已发布软件***的广告填充率之间的差值小于预设阈值时,输出指示所述测试软件***本次分析不通过的分析结果,并将所述分析结果发送给对应的提交人,所述分析结果用于指示所述提交人对所述提交的代码进行改进处理;
所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预置的监控程序,监控所述测试软件***的运行状态;
根据所述运行状态,生成并输出状态分析结果。
3.根据权利要求2所述的方法,其特征在于,所述监控程序包括程序崩溃监控程序,所述运行状态包括是否产生程序崩溃文件;
所述根据所述运行状态,生成并输出状态分析结果,包括:
当所述运行状态中产生所述程序崩溃文件时,生成并输出程序崩溃记录。
4.根据权利要求2所述的方法,其特征在于,所述监控程序包括进程监控程序,所述运行状态包括是否存在异常退出的进程;
所述根据所述运行状态,生成并输出状态分析结果,包括:
当所述运行状态中存在异常退出的进程时,生成并输出程序异常退出记录。
5.根据权利要求2所述的方法,其特征在于,所述监控程序包括日志监控程序,所述运行状态包括扫描所述测试软件***的程序日志;
所述根据所述运行状态,生成并输出状态分析结果,包括:
当所述程序日志出现错误日志时,生成并输出错误日志记录。
6.根据权利要求2所述的方法,其特征在于,所述监控程序包括内存监控程序,所述运行状态包括内存使用情况;
所述根据所述运行状态,生成并输出状态分析结果,包括:
根据所述内存使用情况,绘制并输出内存使用图。
7.一种软件分析***,其特征在于,包括监控服务器、测试服务器和对照服务器;
所述测试服务器,用于运行测试软件***对请求消息进行处理,获得第一处理结果,所述测试软件***是通过持续集成的方式获得的;
所述对照服务器,用于运行已发布软件***对所述请求消息进行处理,获得第二处理结果,所述请求消息是被持续发送给所述测试软件***和所述已发布软件***的,在持续集成过程中每次部署的测试软件***对应提交的代码和提交人;
所述监控服务器,用于获取所述第一处理结果和所述第二处理结果;获取所述第一处理结果中的广告数量和所述第二处理结果中的广告数量;根据所述请求消息中指定的广告数量和所述第一处理结果中的广告数量,确定所述测试软件***的广告填充率;根据所述请求消息中指定的广告数量和所述第二处理结果中的广告数量,确定所述已发布软件***的广告填充率;对所述测试软件***的广告填充率和所述已发布软件***的广告填充率进行比较,获得比较结果;当所述测试软件***的广告填充率与所述已发布软件***的广告填充率之间的差值小于预设阈值时,输出指示所述测试软件***本次分析不通过的分析结果,并将所述分析结果发送给对应的提交人,所述分析结果用于指示所述提交人对所述提交的代码进行改进处理;
所述测试软件***和所述已发布软件***为同一广告***的不同版本,所述测试软件***和所述已发布软件***是基于同一数据库中的源数据对所述请求消息进行处理的。
8.一种软件分析设备,其特征在于,包括处理器和存储器,所述处理器用于调用所述存储器中的程序,执行权利要求1至6任一项所述的软件分析方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有至少一条指令,所述至少一条指令适于由处理器加载并执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810320732.7A CN110362464B (zh) | 2018-04-11 | 2018-04-11 | 软件分析方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810320732.7A CN110362464B (zh) | 2018-04-11 | 2018-04-11 | 软件分析方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362464A CN110362464A (zh) | 2019-10-22 |
CN110362464B true CN110362464B (zh) | 2022-02-11 |
Family
ID=68214202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810320732.7A Active CN110362464B (zh) | 2018-04-11 | 2018-04-11 | 软件分析方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362464B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770002B (zh) * | 2020-06-12 | 2022-02-25 | 南京领行科技股份有限公司 | 测试数据转发控制方法、装置、可读存储介质和电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902619B (zh) * | 2011-07-29 | 2015-09-09 | 阿里巴巴集团控股有限公司 | Web应用程序的回归测试方法和装置 |
CN104268055B (zh) * | 2014-09-01 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 一种程序异常的监控方法和装置 |
WO2016133271A1 (ko) * | 2015-02-16 | 2016-08-25 | 에스케이플래닛 주식회사 | 크래시 리포트 처리 시스템 및 그 시스템에서의 크래시 리포트 처리를 위한 장치 |
CN104765692B (zh) * | 2015-04-29 | 2018-11-06 | 北京嘀嘀无限科技发展有限公司 | 用于自动化测试软件的方法及设备 |
CN106484610B (zh) * | 2015-09-02 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 一种Beta测试方法和装置 |
-
2018
- 2018-04-11 CN CN201810320732.7A patent/CN110362464B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110362464A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
CN111245900B (zh) | 一种分布式消息发送的处理***及其处理方法 | |
CN112241360B (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
Murphy | Automating Software Failure Reporting: We can only fix those bugs we know about. | |
US10795793B1 (en) | Method and system for simulating system failures using domain-specific language constructs | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及*** | |
CN109324968B (zh) | 一种***测试方法及装置 | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN109586989B (zh) | 一种状态检查方法、装置及集群*** | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及*** | |
CN107632909B (zh) | 用于自动测试设备功能的方法及*** | |
CN109299124B (zh) | 用于更新模型的方法和装置 | |
CN110362464B (zh) | 软件分析方法及设备 | |
CN110162982B (zh) | 检测非法权限的方法及装置、存储介质、电子设备 | |
CN111756594B (zh) | 压力测试的控制方法、计算机设备和计算机可读存储介质 | |
CN112100070A (zh) | 版本缺陷的检测方法、装置、服务器及存储介质 | |
CN115269424A (zh) | 生产流量的自动回归测试方法、装置、设备及存储介质 | |
CN112148762A (zh) | 一种实时数据流的统计方法和装置 | |
CN112948195B (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN111741046B (zh) | 数据上报方法、获取方法、装置、设备及介质 | |
CN111708802B (zh) | 网络请求防重处理方法及装置 | |
CN113676356A (zh) | 报警信息处理方法、装置、电子设备及可读存储介质 | |
CN112631929A (zh) | 测试用例生成方法、装置、存储介质及电子设备 | |
CN111737129A (zh) | 服务控制方法、装置、计算机可读介质及电子设备 | |
CN111488236A (zh) | 一种订单异常处理方法、服务器、存储介质及处理装置 |
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 |