CN105701004B - 一种应用测试方法和装置 - Google Patents
一种应用测试方法和装置 Download PDFInfo
- Publication number
- CN105701004B CN105701004B CN201410709913.0A CN201410709913A CN105701004B CN 105701004 B CN105701004 B CN 105701004B CN 201410709913 A CN201410709913 A CN 201410709913A CN 105701004 B CN105701004 B CN 105701004B
- Authority
- CN
- China
- Prior art keywords
- execution
- function
- application
- version
- execution function
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种应用测试方法,所述方法包括:分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息;通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值;根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合;获取被测应用从参考版本至目标版本之间的执行函数变更记录;根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。采用本发明,可提高发现性能疑点执行函数的效率和命中率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用测试方法和装置。
背景技术
在对被测应用进行测试任务过程中,经常会遇到应用卡、慢的情形,应用测试的一个目标就是要定位这些问题的原因,比如是由被测应用的哪一些执行函数占用CPU时间过长导致产生问题。现有技术中只能由测试人员观察被测应用的执行函数的CPU占用时间,若发现某执行函数的CPU的占用时间异常则将其视为性能疑点执行函数,实际测试执行过程中会耗费测试人员的大量时间精力,并且实际命中率不够理想。
发明内容
本发明实施例所要解决的技术问题在于,提供一种应用测试方法和装置,可提高发现性能疑点执行函数的效率和命中率。
为了解决上述技术问题,本发明实施例提供了一种应用测试方法,包括:
分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间;
通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值;
根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合;
获取被测应用从参考版本至目标版本之间的执行函数变更记录;
根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
相应地,本发明实施例还提供了一种应用测试装置,包括:
执行耗时获取模块,用于分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间;
执行耗时比较模块,用于通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值;
函数集合获取模块,用于根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合;
变更记录获取模块,用于获取被测应用从参考版本至目标版本之间的执行函数变更记录;
疑点函数确定模块,用于根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
实施本发明实施例,具有如下有益效果:
本发明实施例根据被测应用从参考版本至目标版本之间的执行函数变更记录,从目标版本各个执行函数的执行时间与参考版本对应执行函数的执行时间的时间差值有异常的执行函数中确定性能疑点执行函数,实现了被测应用中执行函数CPU占用时间异常的准确检测,提高了发现性能疑点执行函数的效率和命中率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用测试方法的流程示意图;
图2是本发明另一实施例提供的一种应用测试方法的流程示意图;
图3是本发明又一实施例提供的一种应用测试方法的流程示意图;
图4是本发明实施例提供的一种应用测试装置的结构示意图;
图5是本发明实施例中图4所示的执行耗时比较模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提及的应用测试方法的应用场景可以包括:某应用软件版本更新后,针对更新版本后应用软件程序代码中执行函数的CPU占用时长进行性能测试。上述应用软件可以包括Android系统应用软件、IOS系统应用软件、塞班系统应用软件或者Windows系统应用软件等。
图1是本发明实施例提供的一种应用测试方法的流程示意图,所述应用测试方法可以包括以下步骤:
S101,分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息。
具体的,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间。上述指定测试用例可以是预设的为完成目标版本被测应用性能测试而编制的一组测试输入、执行条件以及预期结果。
可选的,获取所述目标版本的被测应用运行指定测试用例的运行追踪文件,如Trace文件,所述目标版本的被测应用运行指定测试用例的运行追踪文件包括目标版本的被测应用运行指定测试用例的函数执行耗时信息。相应的,获取所述参考版本的被测应用运行指定测试用例的运行追踪文件,所述参考版本的被测应用运行指定测试用例的运行追踪文件包括参考版本的被测应用运行指定测试用例的函数执行耗时信息。可选的,可以通过调试桥从命令行录制上述运行追踪文件,例如,在Android系统中,可以通过ADB(AndroidDebug Bridge)从命令行直接录入Trace文件。
S102,通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
本步骤中,通过比较步骤S101中获取的目标版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间和参考版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间,进一步获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。在一种可选的实施方式中,本步骤的解析过程具体可包括如下步骤11)和12):
11)、根据执行函数的包名,从目标版本对应的函数执行耗时信息中筛选出所述被测应用的自身执行函数的执行时间。
具体的,上述运行追踪文件包括所述被测应用的自身执行函数的执行时间和系统执行函数的执行时间,根据执行函数的包名,将所述被测应用的自身执行函数和系统执行函数区分开,并将被测应用的自身执行函数的执行时间从目标版本对应的函数执行耗时信息中提取出来。例如,包名为“com/google”或“android/view”的执行函数为系统执行函数,包名为“com/qzone”或“com/tencent”的执行函数为某一被测应用的自身执行函数,可以提取包名为“com/qzone”或“com/tencent”执行函数的执行时间。
12)、获取目标版本对应的函数执行耗时信息中各个自身执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
具体的,分别获取目标版本对应的函数执行耗时信息中自身执行函数在运行指定测试用例过程中的执行时间和参考版本对应的函数执行耗时信息中与上述自身执行函数相同包名的执行函数在运行指定测试用例过程中的执行时间,然后计算两者的差值。例如,目标版本对应的函数执行耗时信息中包名为“com/qzone”的自身执行函数在运行指定用例过程中的执行时间为458000微秒,参考版本对应的函数执行耗时信息中包名为“com/qzone”的自身执行函数的执行时间为450000微秒,得到二者的差值为8000微秒。
S103,根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合。
具体的,可以将步骤S102中获取的所述时间差值中满足预设条件的时间差值对应的目标版本的被测应用中的自身执行函数确定为第一执行函数集合。
可选的,将目标版本的被测应用的执行函数按照步骤S102中获取的差值从大到小的顺序排列,将目标版本的被测应用的执行函数中时间差值最高的预设个数的执行函数组成所述第一执行函数集合。例如,将目标版本的被测应用的执行函数按照时间差值从大到小的顺序排列后,将时间差值最高的20个执行函数组成第一执行函数集合。可选的,将步骤S102中获取的所述时间差值达到预设差值阈值的时间差值对应的执行函数确定为第一执行函数集合。例如,将时间差值达到350000微秒的执行函数组成所述第一执行函数集合。
进一步可选的,由步骤S102中根据执行函数的包名获取的被测应用的自身执行函数的执行时间,获取目标版本对应的函数执行耗时信息中各个自身执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值,将目标版本的被测应用的自身执行函数中时间差值最高的预设个数的自身执行函数组成所述第一执行函数集合。
S104,获取被测应用从参考版本至目标版本之间的执行函数变更记录。
上述被测应用从参考版本至目标版本之间的执行函数变更记录可以包括以下种类:执行函数新增记录、执行函数删除记录、执行函数修改记录等。可选的,获取所述存在执行函数变更记录的执行函数中新增的执行函数或经过修改的执行函数。上述执行函数修改记录可以包括执行函数中类、变量、参数等的变化产生的执行函数修改记录,也可以是用某一执行函数替代另一执行函数产生的执行函数修改记录。
具体实现中,可以将目标版本的被测应用和参考版本的被测应用输入一个用于比较不同版本应用测试差异的单元,得到测试版本的被测应用相对于参考版本的被测应用所有执行函数变更记录各自对应的执行函数的代码起始行和代码终止行,以及每个执行函数变更记录的种类,提取执行函数变更记录的种类为执行函数新增记录和执行函数修改记录的执行函数。
S105,根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
根据所述执行函数变更记录,将步骤S103中获取的所述第一执行函数集合中存在变更记录的执行函数确定为性能疑点执行函数。具体实现中,分别判断所述第一执行函数集合中每个执行函数是否是步骤S104中的得到的新增的执行函数或经过修改的执行函数,将判断结果为是的执行函数确定为疑点执行函数。例如,步骤S103中获取的第一执行函数集合包括执行函数A、执行函数B、执行函数C、执行函数D、执行函数E和执行函数F,步骤S104中获取的执行函数变更记录为:执行函数A,新增记录;执行函数C,新增记录;执行函数F,修改记录;执行函数G,删除记录。则将执行函数A、执行函数C和执行函数F确定为性能疑点执行函数。
本发明实施例根据被测应用从参考版本至目标版本之间的执行函数变更记录,从目标版本各个执行函数的执行时间与参考版本对应执行函数的执行时间的时间差值有异常的执行函数中确定性能疑点执行函数,实现了被测应用中执行函数CPU占用时间异常的准确检测,提高了发现性能疑点执行函数的效率和命中率。
图2是本发明另一实施例提供的一种应用测试方法的结构示意图,如图所示,所述应用测试方法可以包括步骤:
S201,录制目标版本的被测应用运行指定测试用例的目标追踪文件。
具体的,上述目标版本的被测应用运行指定测试用例的追踪文件可以通过调试桥从命令行直接录制,例如,在Android系统中,可以通过ADB(Android Debug Bridge)从命令行直接录入运行追踪文件。上述目标版本的被测应用运行指定测试用例的运行追踪文件包括目标版本的被测应用运行指定测试用例的函数执行耗时信息。上述函数执行耗时信息包括目标版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间。
S202,从所述目标版本的被测应用运行指定测试用例的目标追踪文件中获取目标版本的被测应用运行指定测试用例的函数执行耗时信息。
具体的,提取步骤S201中录制的目标版本的被测应用运行指定测试用例的目标追踪文件中目标版本的被测应用中多个执行函数在运行指定测试用例过程中的执行时间。
S203,获取预存的参考版本的被测应用运行指定测试用例的运行追踪文件。
具体的,被测应用除去目标版本的被测应用外可以包括至少一个版本的被测应用,不同版本的被测应用可以通过被测应用的版本标识区分,例如SVN号,将版本标识按照不同版本的被测应用更新先后顺序排列后,上述目标版本的被测应用的版本标识和参考版本的被测应用的版本标识可以是相邻的,也可以是间隔的。例如,某应用软件由2.2版本依次更新为2.3版本、3.0版本、4.0版本和4.2版本,其中被测应用的目标版本为4.2版本,参考版本可以是2.2版本、2.3版本、3.0版本和4.0版本中的任何一个。从上述至少一个版本的被测应用中确定一个作为参考版本的被测应用后,从预先录制并存储的至少一个版本的被测应用运行指定测试用例的运行追踪文件中选取参考版本的被测应用运行指定测试用例的运行追踪文件。
S204,从所述参考版本的被测应用运行指定测试用例的目标追踪文件中获取参考版本的被测应用运行指定测试用例的函数执行耗时信息。
具体的,上述参考版本的被测应用运行指定测试用例的追踪文件可以通过调试桥从命令行直接录制,上述参考版本的被测应用运行指定测试用例的运行追踪文件包括参考版本的被测应用运行指定测试用例的函数执行耗时信息。上述函数执行耗时信息包括参考版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间。
S205,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
S206,根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合。
S207,获取被测应用从参考版本至目标版本之间的执行函数变更记录。
S208,根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
本发明实施例根据被测应用从参考版本至目标版本之间的执行函数变更记录,从目标版本各个执行函数的执行时间与参考版本对应执行函数的执行时间的时间差值有异常的执行函数中确定性能疑点执行函数,实现了被测应用中执行函数CPU占用时间异常的准确检测,提高了发现性能疑点执行函数的效率和命中率。
图3是本发明又一实施例提供的一种应用测试方法的结构示意图,如图所示,所述应用测试方法可以包括步骤:
S301,分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息。
S302,通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
S303,根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合。
具体的,将目标版本的被测应用的执行函数按照步骤S302中获取的各自对应的时间差值从大到小的顺序排列,将目标版本的被测应用的执行函数中时间差值最高的预设个数的执行函数组成所述第一执行函数集合。
如果经S307确认根据当前的第一执行函数集合得到的所述性能测试疑点的数量为零,或所述性能测试疑点的数量不为零但未达到预设疑点函数阈值,则可以将目标版本的被测应用的多个执行函数中排除了组成当前所述第一执行函数集合的执行函数后时间差值最高的预设个数的执行函数重新确定为第一执行函数集合。举例来说,如果上述预设个数为10个,目标版本的被测应用的多个执行函数按照各自对应的时间差值从高到低排列依次为:函数1、函数2、函数3、…、函数999、函数1000,组成所述第一执行函数集合的执行函数为:函数1、函数2、函数3、…、函数9、函数10,步骤S307将函数1、函数2、函数3、…、函数9、函数10排除后,将剩余执行函数中时间差值最高的10个执行函数:函数11、函数12、函数13、…、函数19、函数20重新确定为第一执行函数集合。
S304,获取被测应用从参考版本至目标版本之间的执行函数变更记录。
具体的,被测应用除去目标版本的被测应用外可以包括至少一个版本的被测应用,不同版本的被测应用可以通过被测应用的版本标识区分,例如SVN号,将版本标识按照不同版本的被测应用更新先后顺序排列后,上述目标版本的被测应用的版本标识和参考版本的被测应用的版本标识可以是相邻的,也可以是间隔的。例如,应用软件由2.2版本依次更新为3.0版本、4.0版本、4.2版本和4.3版本,其中被测应用的目标版本为4.3版本,参考版本是4.0版本,将版本标识4.3和4.0输入一个用于比较不同版本应用测试差异的单元,就可得到4.3版本和4.0版本的被测应用之间的变更记录。
S305,根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
S306,判断所述性能疑点执行函数的数量是否为零且循环次数是否小于预设循环次数阈值,若是,则执行步骤S307,若否,则结束本次应用测试。
具体的,如果预设的应用测试目标为检测出至少一个性能疑点执行函数,若判断所述性能疑点执行函数的数量不为零,则结束本次应用测试,若判断所述性能疑点执行函数的数量为零,且循环次数未达到预设循环次数阈值,则执行步骤S307,若判断所述性能疑点执行函数的数量为零,且循环次数达到预设循环次数阈值,则结束本次应用测试。
可选的,如果预设的应用测试目标为检测出至少为预设疑点函数阈值数量的性能疑点执行函数,则进一步判断所述性能疑点执行函数的数量是否大于预设疑点函数阈值,若是,则结束本次应用测试,若否,且循环次数未达到预设循环次数阈值,则执行步骤S307,若所述性能疑点执行函数的数量小于预设疑点函数阈值,且循环次数达到预设循环次数阈值,则结束本次应用测试。
需要指出的是,上述性能疑点执行函数的数量是针对所述目标版本的被测应用在本次应用测试中累计的性能疑点执行函数的数量,如果本次应用测试至少一次从第一执行函数集合中确定性能疑点执行函数,那么上述性能疑点执行函数的数量是至少一次从第一执行函数集合中得到的总的性能疑点执行函数的数量。
S307,将循环次数加一,并排除组成所述第一执行函数集合的执行函数,之后执行步骤S303,重新确定排除了组成所述第一执行函数集合的执行函数后的第一执行函数集合。
具体的,上述循环次数是针对所述目标版本的被测应用在本次应用测试中的循环次数,一次应用测试结束时循环次数清零。上述排除方法有很多,可以为直接删除,也可以为隐藏等,旨在避免继续执行步骤S303时,重复选取已选取过的时间差值最高的预设个数的执行函数。
本发明实施例根据被测应用从参考版本至目标版本之间的执行函数变更记录,从目标版本各个执行函数的执行时间与参考版本对应执行函数的执行时间的时间差值有异常的执行函数中确定性能疑点执行函数,实现了被测应用中执行函数CPU占用时间异常的准确检测,提高了发现性能疑点执行函数的效率和命中率。
图4是本发明实施例提供的一种应用测试装置的结构示意图,如图所述的应用测试装置可以包括执行耗时获取模块401、执行耗时比较模块402、函数集合获取模块403、变更记录获取模块404、疑点函数确定模块405,其中:
执行耗时获取模块401,用于分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息。
具体的,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间。上述指定测试用例可以是预设的为完成目标版本被测应用性能测试而编制的一组测试输入、执行条件以及预期结果。
可选的,执行耗时获取模块401可以获取所述目标版本的被测应用运行指定测试用例的运行追踪文件,所述目标版本的被测应用运行指定测试用例的运行追踪文件包括目标版本的被测应用运行指定测试用例的函数执行耗时信息。相应的,执行耗时获取模块401获取所述参考版本的被测应用运行指定测试用例的运行追踪文件,所述参考版本的被测应用运行指定测试用例的运行追踪文件包括参考版本的被测应用运行指定测试用例的函数执行耗时信息。可选的,可以通过调试桥从命令行录制上述运行追踪文件,例如在Android系统中,可以通过ADB(Android Debug Bridge)从命令行直接录入运行追踪文件。
执行耗时比较模块402,用于通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
具体的,执行耗时比较模块402通过比较执行耗时获取模块401获取的目标版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间和参考版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间,进一步获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
在一种可选的实施例中,执行耗时比较模块402可以包括:函数筛选单元4201和时间比较单元4202,如图5所示,其中:
函数筛选单元4201,用于根据执行函数的包名,从目标版本对应的函数执行耗时信息中筛选出所述被测应用的自身执行函数的执行时间。
具体的,上述运行追踪文件包括所述被测应用的自身执行函数的执行时间和系统执行函数的执行时间,函数筛选单元4201根据执行函数的包名,将所述被测应用的自身执行函数和系统执行函数区分开,并将被测应用的自身执行函数的执行时间从目标版本对应的函数执行耗时信息中提取出来。例如,包名为“com/google”或“android/view”的执行函数为系统执行函数,包名为“com/qzone”或“com/tencent”的执行函数为某一被测应用的自身执行函数,可以提取包名为“com/qzone”或“com/tencent”执行函数的执行时间。
时间比较单元4202,用于获取目标版本对应的函数执行耗时信息中各个自身执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
具体的,时间比较单元4202分别获取目标版本对应的函数执行耗时信息中自身执行函数在运行指定测试用例过程中的执行时间和参考版本对应的函数执行耗时信息中与上述自身执行函数相同包名的执行函数在运行指定测试用例过程中的执行时间,然后计算两者的差值。例如,目标版本对应的函数执行耗时信息中包名为“com/qzone”的自身执行函数在运行指定用例过程中的执行时间为458000微秒,参考版本对应的函数执行耗时信息中包名为“com/qzone”的自身执行函数的执行时间为450000微秒,得到二者的差值为8000微秒。
函数集合获取模块403,用于根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合。
具体的,函数集合获取模块403可以将执行耗时比较模块402获取的所述时间差值中满足预设条件的时间差值对应的目标版本的被测应用中的自身执行函数确定为第一执行函数集合。
可选的,将目标版本的被测应用的执行函数按照执行耗时比较模块402获取的差值从大到小的顺序排列,函数集合获取模块403将目标版本的被测应用的执行函数中时间差值最高的预设个数的执行函数组成所述第一执行函数集合。例如,将时间差值按照从大到小的顺序排列后,将时间差值最高的20个执行函数组成第一执行函数集合。可选的,将执行耗时比较模块402获取的所述时间差值达到预设阈值的时间差值对应的目标版本的被测应用中的执行函数确定为第一执行函数集合。例如,将时间差值达到350000微秒的执行函数组成所述第一执行函数集合。
进一步可选的,函数集合获取模块403根据执行耗时比较模块402根据执行函数的包名获取的被测应用的自身执行函数的执行时间,获取目标版本对应的函数执行耗时信息中各个自身执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值,将目标版本的被测应用的自身执行函数中时间差值最高的预设个数的自身执行函数组成所述第一执行函数集合。
变更记录获取模块404,用于获取被测应用从参考版本至目标版本之间的执行函数变更记录。
上述被测应用从参考版本至目标版本之间的执行函数变更记录可以包括以下种类:执行函数新增记录、执行函数删除记录、执行函数修改记录等。可选的,变更记录获取模块404获取所述存在执行函数变更记录的执行函数中新增的执行函数或经过修改的执行函数。上述执行函数修改记录可以包括执行函数中类、变量、参数等的变化产生的执行函数修改记录,也可以是用某一执行函数替代另一执行函数产生的执行函数修改记录。
具体实现中,可以将目标版本的被测应用和参考版本的被测应用输入一个用于比较不同版本应用测试差异的单元,得到测试版本的被测应用相对于参考版本的被测应用所有执行函数变更记录各自对应的执行函数的代码起始行和代码终止行,以及每个执行函数变更记录的种类,变更记录获取模块404提取执行函数变更记录的种类为执行函数新增记录和执行函数修改记录的执行函数。
疑点函数确定模块405,用于根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
疑点函数确定模块405根据所述执行函数变更记录,将函数集合获取模块403获取的所述第一执行函数集合中存在变更记录的执行函数确定为性能疑点执行函数。具体实现中,分别判断所述第一执行函数集合中每个执行函数是否是变更记录获取模块404得到的新增的执行函数或经过修改的执行函数,将判断结果为是的执行函数确定为疑点执行函数。例如,函数集合获取模块403获取的第一执行函数集合包括执行函数A、执行函数B、执行函数C、执行函数D、执行函数E和执行函数F,变更记录获取模块404获取的执行函数变更记录为:执行函数A,新增记录;执行函数C,新增记录;执行函数F,修改记录;执行函数G,删除记录。则疑点函数确定模块405将执行函数A、执行函数C和执行函数F确定为性能疑点执行函数。
本发明实施例根据被测应用从参考版本至目标版本之间的执行函数变更记录,从目标版本各个执行函数的执行时间与参考版本对应执行函数的执行时间的时间差值有异常的执行函数中确定性能疑点执行函数,实现了被测应用中执行函数CPU占用时间异常的准确检测,提高了发现性能疑点执行函数的效率和命中率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机应用来指令相关的硬件来完成,所述的应用可存储于一计算机可读取存储介质中,该应用在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (7)
1.一种应用测试方法,其特征在于,所述方法包括:
获取目标版本的被测应用运行指定测试用例的运行追踪文件,以及获取参考版本的被测应用运行指定测试用例的运行追踪文件;
从所述目标版本的被测应用运行指定测试用例的运行追踪文件中获取目标版本的被测应用运行指定测试用例的函数执行耗时信息,从所述参考版本的被测应用运行指定测试用例的运行追踪文件中获取参考版本的被测应用运行指定测试用例的函数执行耗时信息,所述函数执行耗时信息包括对应版本的被测应用中的多个执行函数在运行指定测试用例过程中各个执行函数的执行时间;
根据执行函数的包名,从目标版本对应的函数执行耗时信息中筛选出所述被测应用的自身执行函数的执行时间;所述被测应用的自身执行函数是在所述被测应用包含的多个执行函数中除系统执行函数以外的执行函数;
获取目标版本中各个自身执行函数的执行时间与参考版本中对应执行函数的执行时间的时间差值;
从目标版本的被测应用的自身执行函数中按照时间差值从高到低的顺序选取预设个数的自身执行函数组成第一执行函数集合;
获取被测应用从参考版本至目标版本之间的执行函数变更记录;
根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数;所述性能疑点执行函数属于新增的执行函数或经过修改的执行函数。
2.如权利要求1所述的应用测试方法,其特征在于,所述根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数包括:
根据所述执行函数变更记录,将所述第一执行函数集合中存在变更记录的执行函数确定为性能疑点执行函数。
3.如权利要求2所述的应用测试方法,其特征在于,所述存在变更记录的执行函数包括新增的执行函数或经过修改的执行函数。
4.一种应用测试装置,其特征在于,所述应用测试装置包括:
执行耗时获取模块,用于获取目标版本的被测应用运行指定测试用例的运行追踪文件,以及获取参考版本的被测应用运行指定测试用例的运行追踪文件;
所述执行耗时获取模块,还用于从所述目标版本的被测应用运行指定测试用例的运行追踪文件中获取目标版本的被测应用运行指定测试用例的函数执行耗时信息,从所述参考版本的被测应用运行指定测试用例的运行追踪文件中获取参考版本的被测应用运行指定测试用例的函数执行耗时信息,所述函数执行耗时信息包括对应版本的被测应用中的多个执行函数在运行指定测试用例过程中各个执行函数的执行时间;
执行耗时比较模块,用于根据执行函数的包名,从目标版本对应的函数执行耗时信息中筛选出所述被测应用的自身执行函数的执行时间,所述被测应用的自身执行函数是在所述被测应用包含的多个执行函数中除系统执行函数以外的执行函数;以及获取目标版本中各个自身执行函数的执行时间与参考版本中对应执行函数的执行时间的时间差值;
函数集合获取模块,用于从目标版本的被测应用的自身执行函数中按照时间差值从高到低的顺序选取预设个数的自身执行函数组成第一执行函数集合;
变更记录获取模块,用于获取被测应用从参考版本至目标版本之间的执行函数变更记录;
疑点函数确定模块,用于根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数;所述性能疑点执行函数属于新增的执行函数或经过修改的执行函数。
5.如权利要求4所述的应用测试装置,其特征在于,所述疑点函数确定模块用于:
根据所述执行函数变更记录,将所述第一执行函数集合中存在变更记录的执行函数确定为性能疑点执行函数。
6.如权利要求5所述的应用测试装置,其特征在于,所述存在变更记录的执行函数包括新增的执行函数或经过修改的执行函数。
7.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410709913.0A CN105701004B (zh) | 2014-11-28 | 2014-11-28 | 一种应用测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410709913.0A CN105701004B (zh) | 2014-11-28 | 2014-11-28 | 一种应用测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701004A CN105701004A (zh) | 2016-06-22 |
CN105701004B true CN105701004B (zh) | 2020-12-08 |
Family
ID=56230628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410709913.0A Active CN105701004B (zh) | 2014-11-28 | 2014-11-28 | 一种应用测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105701004B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268366B (zh) * | 2016-12-30 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 测试用例执行方法及装置 |
WO2019047009A1 (zh) * | 2017-09-05 | 2019-03-14 | 深圳欣锐科技股份有限公司 | 一种基于处理器的数据处理方法和装置 |
CN109634822B (zh) * | 2018-11-27 | 2023-04-14 | 平安科技(深圳)有限公司 | 一种函数耗时统计方法、装置、存储介质及终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324566A (zh) * | 2012-03-20 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种网页产品多版本测试方法及装置 |
CN104102560A (zh) * | 2013-04-07 | 2014-10-15 | 深圳市腾讯计算机系统有限公司 | 系统性能测试的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3386232B2 (ja) * | 1994-07-15 | 2003-03-17 | 富士通株式会社 | テスト計算機システム |
CN101477491B (zh) * | 2009-01-16 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种统计函数运行状态的方法和装置 |
-
2014
- 2014-11-28 CN CN201410709913.0A patent/CN105701004B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324566A (zh) * | 2012-03-20 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种网页产品多版本测试方法及装置 |
CN104102560A (zh) * | 2013-04-07 | 2014-10-15 | 深圳市腾讯计算机系统有限公司 | 系统性能测试的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105701004A (zh) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200311271A1 (en) | Method of malware detection and system thereof | |
CN106933733B (zh) | 一种确定内存泄露位置的方法和装置 | |
US10990511B2 (en) | Apparatus and application interface traversing method | |
US20150256552A1 (en) | Imalicious code detection apparatus and method | |
KR101720686B1 (ko) | 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법 | |
CN108491321B (zh) | 测试用例范围确定方法、装置及存储介质 | |
CN103530221B (zh) | 一种Android系统中程序行为与界面操作映射方法 | |
KR102317833B1 (ko) | 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법 | |
CN103365699B (zh) | 基于apk的系统api和运行时字符串的提取方法及系统 | |
CN108459954B (zh) | 应用程序漏洞检测方法和装置 | |
CN109101815B (zh) | 一种恶意软件检测方法及相关设备 | |
KR20160082644A (ko) | 코드 블록 구분을 통한 악성 코드 탐지 방법 및 장치 | |
CN108959071B (zh) | 一种基于RASP的PHP变形webshell的检测方法及系统 | |
CN104375937A (zh) | 一种自动化测试结果持续集成整合方法及系统 | |
CN106997316B (zh) | 内存异常增长的检测系统及方法 | |
CN105701004B (zh) | 一种应用测试方法和装置 | |
CN110688658B (zh) | 未知病毒感染追溯方法、装置及系统 | |
US20170277887A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
CN108399321B (zh) | 基于动态指令依赖图胎记的软件局部抄袭检测方法 | |
US20140310561A1 (en) | Dynamic function-level hardware performance profiling for application performance analysis | |
CN109876446B (zh) | 一种检测游戏贴图和网格在内存中占用分布的方法和装置 | |
CN111090593A (zh) | 确定崩溃归属的方法、装置、电子设备及存储介质 | |
CN107544902B (zh) | 程序测试方法、装置和设备 | |
CN114329452A (zh) | 一种异常行为检测方法、装置及相关设备 | |
KR101308228B1 (ko) | 악성 코드 자동 탐지 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |