软件的测试方法和装置制造方法及图纸

技术编号:15982540 阅读:41 留言:0更新日期:2017-08-12 05:36
本发明专利技术公开了一种软件的测试方法和装置。其中,该方法包括:获取待测软件的函数信息列表,函数信息列表包括:待测软件中的待测函数的函数地址;根据每个待测函数的函数地址对每个待测函数设置处理函数,处理函数用于在测试过程中对每个待测函数被运行的次数进行统计;在对待测软件进行的测试过程中通过处理函数获取每个待测函数被运行的次数。本发明专利技术解决了由于采用现有的软件测试方法所导致的测试准确性较低的技术问题。

【技术实现步骤摘要】
软件的测试方法和装置
本专利技术涉及计算机领域,具体而言,涉及一种软件的测试方法和装置。
技术介绍
目前,在对无源代码的软件进行测试时,现有技术常常采用周期测试方法来获知在测试过程中软件中的哪些函数被运行到。具体而言,将测试用例输入到上述软件中进行测试,在测试过程中每隔预定的采样周期T查看函数栈中当前运行的函数的名称,例如,在时间点T0上查看到函数栈中当前运行的函数的名称为函数f1、函数f2和函数f3的名称,在时间点T0+T上查看到函数栈中当前运行的函数的名称为函数f2、函数f6和函数f7的名称。这样可以统计出在测试过程中软件中运行到的函数包括:函数f1、函数f2、函数f3、函数f6和函数f7。然而,上述的周期方法存在一定的问题,即,会遗漏在采样周期之外运行的函数。例如,在时间点T0至时间点T0+T之间若函数f4和函数f5也被运行到,且在时间点T0+T之前完成运行,这样,将无法在时间点T0+T上通过查看函数栈中当前运行的函数的名称来获知函数f4和函数f5也被运行到了。这样的采样结果就无法真实体现被测的软件的运行状况,无法获知函数f4和函数f5是否被运行到,从而导致测试准确性较低。针对现有的软件测试方法所导致的测试准确性较低的技术问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种软件的测试方法和装置,以至少解决由于采用现有的软件测试方法所导致的测试准确性较低的技术问题。根据本专利技术实施例的一个方面,提供了一种软件的测试方法,包括:获取待测软件的函数信息列表,上述函数信息列表包括:上述待测软件中的待测函数的函数地址;根据每个上述待测函数的函数地址对每个上述待测函数设置处理函数,上述处理函数用于在测试过程中对每个上述待测函数被运行的次数进行统计;在对上述待测软件进行的上述测试过程中通过上述处理函数获取每个上述待测函数被运行的次数。根据本专利技术实施例的另一方面,还提供了一种软件的测试装置,包括:第一获取单元,用于获取待测软件的函数信息列表,上述函数信息列表包括:上述待测软件中的待测函数的函数地址,并将每个上述待测函数的函数地址发送至设置单元;上述设置单元,用于接收上述第一获取单元发送的每个上述待测函数的函数地址,根据每个上述待测函数的函数地址对每个上述待测函数设置处理函数,上述处理函数用于在测试过程中对每个上述待测函数被运行的次数进行统计,将上述处理函数发送至测试单元;上述测试单元,用于接收上述设置单元发送的上述处理函数,在对上述待测软件进行的上述测试过程中通过上述处理函数获取每个上述待测函数被运行的次数。在本专利技术实施例中,在从待测软件的程序数据库文件中获取待测软件的函数信息列表后,通过根据函数信息列表中每个待测函数的函数地址对每个待测函数设置处理函数,以便于在使用测试用例对待测软件进行测试的过程中,利用与每个待测函数对应的处理函数,分别获取每个待测函数被运行的次数,以准确统计待测软件中每个待测函数在测试过程中实际运行的次数。从而避免现有技术中由于定时采样而遗漏在采样周期之外运行的函数的所导致的测试准确性较低的技术问题,达到了提高测试准确性的技术效果。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本发明的不当限定。在附图中:图1是根据本专利技术实施例的一种可选的软件的测试方法的应用场景示意图;图2是根据本专利技术实施例的一种可选的软件的测试方法的流程图;图3是根据本专利技术实施例的一种可选的软件的测试方法的结果显示界面示意图;图4是根据本专利技术实施例的一种可选的软件的测试方法的示意图;图5是根据本专利技术实施例的另一种可选的软件的测试方法的结果显示界面示意图;图6是根据本专利技术实施例的又一种可选的软件的测试方法的结果显示界面示意图;图7是根据本专利技术实施例的又一种可选的软件的测试方法的结果显示界面示意图;图8是根据本专利技术实施例的一种可选的软件的测试装置的示意图;图9是根据本专利技术实施例的另一种可选的软件的测试装置的示意图;图10是根据本专利技术实施例的又一种可选的软件的测试装置的示意图;图11是根据本专利技术实施例的又一种可选的软件的测试装置的示意图;图12是根据本专利技术实施例的又一种可选的软件的测试装置的示意图;图13是根据本专利技术实施例的又一种可选的软件的测试装置的示意图;以及图14是根据本专利技术实施例的一种可选的测试服务器的示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本专利技术实施例,提供了一种软件的测试方法的实施例,上述软件的测试方法可以但不限于应用于如图1所示的网络环境中,待测软件所在的待测服务器102获取的函数信息列表,通过网络发送给测试服务器104,测试服务器104根据每个待测函数的函数地址对每个待测函数设置处理函数,进一步,在对待测软件进行的测试过程中,测试服务器104将通过上述处理函数获取每个待测函数被运行的次数,也就是说,通过上述处理函数实现准确监控每个待侧软件中每个待测函数的运行次数,以克服现有技术中由定时采样测试所导致的遗漏待测函数的问题,进而实现提高软件测试的准确性的效果。可选地,在本专利技术实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述只是一种示例,本专利技术实施例对此不做任何限定。根据本专利技术实施例,提供了一种软件的测试方法,如图2所示,该方法包括:S202,获取待测软件的函数信息列表,函数信息列表包括:待测软件中的待测函数的函数地址;S204,根据每个待测函数的函数地址对每个待测函数设置处理函数,处理函数用于在测试过程中对每个待测函数被运行的次数进行统计;S206,在对待测软件进行的测试过程中通过处理函数获取每个待测函数被运行的次数。可选地,在本专利技术实施例中,上述软件的测试方法可以但不限于应用于利用测试用例对待测软件进行测试时,获取待测软件中被测试用例测试到的函数的函数覆盖率的过程中。其中,上述待测软件可以包括但不限于任意一种有源码软件,或任意一种无源码软件,尤其是对于无源码软件,例如,代理游戏,由于无源码软件无法获知执行源码,因而,现有技术还尚未提供针对无源码软件的函数覆盖率的测试方式。在本专利技术实施例中,在从待测软件的程序数据库文件中获取待测软件的函数信息列表后,通过根据函数信息列表中每个待测函本文档来自技高网
...

【技术保护点】
一种软件的测试方法,其特征在于,所述方法包括:获取待测软件的函数信息列表,所述函数信息列表包括:所述待测软件中的待测函数的函数地址;根据每个所述待测函数的函数地址对每个所述待测函数设置处理函数,所述处理函数用于在测试过程中对每个所述待测函数被运行的次数进行统计;在对所述待测软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数。

【技术特征摘要】
1.一种软件的测试方法,其特征在于,所述方法包括:获取待测软件的函数信息列表,所述函数信息列表包括:所述待测软件中的待测函数的函数地址;根据每个所述待测函数的函数地址对每个所述待测函数设置处理函数,所述处理函数用于在测试过程中对每个所述待测函数被运行的次数进行统计;在对所述待测软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数。2.根据权利要求1所述的方法,其特征在于,所述根据每个所述待测函数的函数地址对每个所述待测函数设置处理函数包括:将所述待测函数在所述函数地址上的原始指令替换成跳转指令,其中,所述跳转指令用于跳转到所述处理函数的函数地址。3.根据权利要求2所述的方法,其特征在于,所述在对所述待测软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数包括:根据所述跳转指令从所述待测函数的所述函数地址跳转到所述处理函数的函数地址;将所述待测函数使用到的寄存器入栈,以便对所述待测函数进行现场保护;将所述处理函数的输入参数入栈,所述处理函数的输入参数用于指示当前测试的为所述待测函数;调用所述处理函数获取所述待测函数被运行的次数;将所述待测函数使用到的所述寄存器出栈,以便对所述待测函数进行现场恢复;运行所述原始指令;跳转到所述待测函数中位于所述原始指令之后的后续指令,以执行所述后续指令。4.根据权利要求1所述的方法,其特征在于,在对所述待测软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数之后,还包括:根据所述次数和所述待测软件中所述待测函数的总数获取所述待测软件的函数覆盖率,所述函数覆盖率用于指示所述待测软件中被运行的待测函数的数量与所述待测函数的总数的比值。5.根据权利要求4所述的方法,其特征在于,根据所述次数和所述待测软件中所述待测函数的总数获取所述待测软件的函数覆盖率包括:获取被运行的次数大于0的所述待测函数的个数N;通过以下公式获取所述待测软件的函数覆盖率P:P=N/Sum,其中,Sum表示所述待测软件中所述待测函数的总数。6.根据权利要求1所述的方法,其特征在于,在对所述待测软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数之后,还包括:输出次数大于预定阈值的所述待测函数的函数名和对应的被运行的次数。7.一种软件的测试装置,其特征在于,所述装置包括:第一获取单元,用于获取待测软件的函数信息列表,所述函数信息列表包括:所述...

【专利技术属性】
技术研发人员:朱德飞
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1