一种应用测试方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种应用测试方法和装置。
【背景技术】
[0002]在对被测应用进行测试任务过程中,经常会遇到应用卡、慢的情形,应用测试的一个目标就是要定位这些问题的原因,比如是由被测应用的哪一些执行函数占用CPU时间过长导致产生问题。现有技术中只能由测试人员观察被测应用的执行函数的CPU占用时间,若发现某执行函数的CPU的占用时间异常则将其视为性能疑点执行函数,实际测试执行过程中会耗费测试人员的大量时间精力,并且实际命中率不够理想。
【发明内容】
[0003]本发明实施例所要解决的技术问题在于,提供一种应用测试方法和装置,可提高发现性能疑点执行函数的效率和命中率。
[0004]为了解决上述技术问题,本发明实施例提供了一种应用测试方法,包括:
[0005]分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间;
[0006]通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值;
[0007]根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合;
[0008]获取被测应用从参考版本至目标版本之间的执行函数变更记录;
[0009]根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
[0010]相应地,本发明实施例还提供了一种应用测试装置,包括:
[0011]执行耗时获取模块,用于分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间;
[0012]执行耗时比较模块,用于通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值;
[0013]函数集合获取模块,用于根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合;
[0014]变更记录获取模块,用于获取被测应用从参考版本至目标版本之间的执行函数变更记录;
[0015]疑点函数确定模块,用于根据所述执行函数变更记录,从所述第一执行函数集合中确定性能疑点执行函数。
[0016]实施本发明实施例,具有如下有益效果:
[0017]本发明实施例根据被测应用从参考版本至目标版本之间的执行函数变更记录,从目标版本各个执行函数的执行时间与参考版本对应执行函数的执行时间的时间差值有异常的执行函数中确定性能疑点执行函数,实现了被测应用中执行函数CPU占用时间异常的准确检测,提高了发现性能疑点执行函数的效率和命中率。
【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1是本发明实施例提供的一种应用测试方法的流程示意图;
[0020]图2是本发明另一实施例提供的一种应用测试方法的流程示意图;
[0021]图3是本发明又一实施例提供的一种应用测试方法的流程示意图;
[0022]图4是本发明实施例提供的一种应用测试装置的结构示意图;
[0023]图5是本发明实施例中图4所示的执行耗时比较模块的结构示意图。
【具体实施方式】
[0024]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]本发明提及的应用测试方法的应用场景可以包括:某应用软件版本更新后,针对更新版本后应用软件程序代码中执行函数的CPU占用时长进行性能测试。上述应用软件可以包括Android系统应用软件、1S系统应用软件、塞班系统应用软件或者Windows系统应用软件等。
[0026]图1是本发明实施例提供的一种应用测试方法的流程示意图,所述应用测试方法可以包括以下步骤:
[0027]S101,分别获取目标版本的被测应用和参考版本的被测应用运行指定测试用例的函数执行耗时信息。
[0028]具体的,所述函数执行耗时信息包括所述对应版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间。上述指定测试用例可以是预设的为完成目标版本被测应用性能测试而编制的一组测试输入、执行条件以及预期结果。
[0029]可选的,获取所述目标版本的被测应用运行指定测试用例的运行追踪文件,如Trace文件,所述目标版本的被测应用运行指定测试用例的运行追踪文件包括目标版本的被测应用运行指定测试用例的函数执行耗时信息。相应的,获取所述参考版本的被测应用运行指定测试用例的运行追踪文件,所述参考版本的被测应用运行指定测试用例的运行追踪文件包括参考版本的被测应用运行指定测试用例的函数执行耗时信息。可选的,可以通过调试桥从命令行录制上述运行追踪文件,例如,在Android系统中,可以通过ADB (Android Debug Bridge)从命令行直接录入Trace文件。
[0030]S102,通过比较目标版本对应的函数执行耗时信息和参考版本对应的函数执行耗时信息,获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
[0031]本步骤中,通过比较步骤SlOl中获取的目标版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间和参考版本的被测应用中的多个执行函数在运行指定测试用例过程中的执行时间,进一步获取目标版本对应的函数执行耗时信息中各个执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。在一种可选的实施方式中,本步骤的解析过程具体可包括如下步骤11)和12):
[0032]11)、根据执行函数的包名,从目标版本对应的函数执行耗时信息中筛选出所述被测应用的自身执行函数的执行时间。
[0033]具体的,上述运行追踪文件包括所述被测应用的自身执行函数的执行时间和系统执行函数的执行时间,根据执行函数的包名,将所述被测应用的自身执行函数和系统执行函数区分开,并将被测应用的自身执行函数的执行时间从目标版本对应的函数执行耗时信息中提取出来。例如,包名为“com/google”或“android/view”的执行函数为系统执行函数,包名为“com/qzone”或“com/tencent”的执行函数为某一被测应用的自身执行函数,可以提取包名为“ com/qzone ”或“ com/tencent ”执行函数的执行时间。
[0034]12)、获取目标版本对应的函数执行耗时信息中各个自身执行函数的执行时间与于在参考版本对应的函数执行耗时信息中对应执行函数的执行时间的时间差值。
[0035]具体的,分别获取目标版本对应的函数执行耗时信息中自身执行函数在运行指定测试用例过程中的执行时间和参考版本对应的函数执行耗时信息中与上述自身执行函数相同包名的执行函数在运行指定测试用例过程中的执行时间,然后计算两者的差值。例如,目标版本对应的函数执行耗时信息中包名为“com/qzone”的自身执行函数在运行指定用例过程中的执行时间为458000微秒,参考版本对应的函数执行耗时信息中包名为“ com/qzone”的自身执行函数的执行时间为450000微秒,得到二者的差值为8000微秒。
[0036]S103,根据所述时间差值,获取所述目标版本的被测应用中的第一执行函数集合。
[0037]具体的,可以将步骤S102中获取的所述时间差值中满足预设条件的时间差值对应的目标版本的被测应用中的自身执行函数确定为第一执行函