[发明专利]一种软件测试方法及装置有效
申请号: | 201380003956.0 | 申请日: | 2013-09-30 |
公开(公告)号: | CN104685473B | 公开(公告)日: | 2018-11-06 |
发明(设计)人: | 严开恩 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 测试 方法 装置 | ||
本发明实施例提供了一种软件测试方法,包括:获取待测软件中目标函数的代码地址区间;运行所述待测软件,并统计预置的测量时间内PC程序计数器指针在所述代码地址区间内的停留时间,所述测量时间为处理器时钟周期的整数倍;根据所述停留时间计算所述目标函数的负载信息。本发明实施例还提供了一种软件测试装置,采用本发明,可以准确的估计待测软件中目标函数的负载情况。
技术领域
本发明涉及测试领域,尤其涉及一种软件测试方法及装置。
背景技术
在软件的开发设计阶段,通常需要测试软件中关注的目标函数的负载情况,以便软件开发人员根据目标函数的负载情况对软件进行优化。
在现有技术中,为了软件中目标函数的负载情况,采用的方案是:1、在目标函数入口和出口插入测试桩代码,计算打点获得的目标函数出口和入口时间差值,可以得到目标函数执行消耗的时间,如此就可以获得目标函数的负载情况。2、提取硬件时钟,计算程序开始目标函数开始时间和结束时间的差值,通过该差值获得目标函数的负载情况。
申请人发现,采用方案1测试目标函数的负载情况,需要在软件中插入测试转代码得专门的测试桩版本软件,因此测试时实现不方便,同时测试桩代码对目标函数的负载有干扰和影响。
采用方案2测试时,如果系统在运行其他的后台程序,可能在运行过程中切换到其他进程中,会影响到最终结果的值,不能准确的反映目标函数的负载情况。
发明内容
本发明实施例提供了一种软件测试方法及装置,可以准确的估计目标函数的负载情况。
本发明实施例第一方面提供了一种软件测试方法,包括:
获取待测软件中目标函数的代码地址区间;
运行所述待测软件,并统计预置的测量时间内PC程序计数器指针在所述代码地址区间内的停留时间,所述测量时间为处理器时钟周期的整数倍;
根据所述停留时间计算所述目标函数的负载信息。
在第一种可能的实现方式中,所述统计预置的测量时间内所述目标函数的代码地址区间的停留时间的步骤包括:
在所述测量时间内检测到每个处理器时钟周期到来时,获取所述PC指针的地址信息;
若所述地址信息位于所述目标函数的代码地址区间内,则将所述停留时间增加一个处理器时钟周期,所述停留时间的初始值为0。
结合第一方面和第一种可能的实现方式,在第二种可能的实现方式中,所述获待测软件中目标函数的代码地址区间的步骤包括:
将所述待测软件编译成汇编代码,根据所述汇编代码获取所述目标函数的代码地址区间。
结合第一方面至第二种可能的实现方式中的任一种,在第三种可能的实现方式中,还包括:
若所述目标函数为IDLE任务函数,根据IDLE函数的停留时间与所述测量时间计算运行所述被测软件的处理器的利用率。
结合第一方面至第三种可能的实现方式中的任一种,在第四种可能的实现方式中,所述获取待测软件中目标函数的代码地址区间的步骤之前,还包括:
通过定时器设置测量时间。
本发明第二方面提供了一种软件测试装置,包括:
获取模块,用于获取被测软件中目标函数的代码地址区间;
统计模块,用于运行所述被测代码,并统计预置的测量时间内PC程序计数器指针在所述代码地址区间内的停留时间,所述测量时间为处理器时钟周期的整数倍;
计算模块,用于根据所述停留时间计算所述目标函数的负载信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380003956.0/2.html,转载请声明来源钻瓜专利网。