一种基于动静态结合的软件兼容性测试方法技术

技术编号:31927194 阅读:58 留言:0更新日期:2022-01-15 13:12
本发明专利技术公开了一种基于动静态结合的软件兼容性测试方法,通过对测试软件可执行程序进行反汇编得到函数调用图,再通过静态分析技术,获取软件函数调用系统API集合;再通过多个客户端同时执行待测软件动态兼容性测试,结合动态分析技术和HOOK技术,动态获取软件运行时API调用信息以及运行状态记录;最后,将动静态分析出的API调用信息经由缺陷API分析引擎识别其存在兼容性问题的缺陷API,自动生成兼容性测试评估报告,达到测试覆盖范围广、测试效率、精准度高的效果。精准度高的效果。精准度高的效果。

【技术实现步骤摘要】
一种基于动静态结合的软件兼容性测试方法


[0001]本专利技术涉及软件测试
,尤其涉及一种基于动静态结合的软件兼容性测试方法。

技术介绍

[0002]软件兼容性,指的是某个软件能稳定地工作在某操作系统之中,能够与操作系统中的其它各种软件协调工作,互不影响,软件自身不会出现意外的退出、卡死等异常,不会导致操作系统出现卡慢、蓝屏、断网等问题。软件兼容性测试能够进一步提高产品的质量,提高用户体验,它是衡量一个软件质量的重要指标。
[0003]目前,windows软件兼容性测试方法通常是利用人工在不同windows操作系统版本、不同型号的终端设备安装软件,并通过人工识别各个终端在软件运行的过程中出现的兼容性问题,这种人工测试方法耗时比较长、测试效率低、容易出现疏漏和错误,不仅如此,参与测试的设备、服务器数量、算力也有限,一般是单一测试服务器进行多次测试,无法达到较好的软件测试结果。

技术实现思路

[0004]本专利技术的目的就在于为了解决上述问题而提供一种基于动静态结合的软件兼容性测试方法,本专利技术对测试软件可执行程序进行反汇编得到函数调用图,再通过静态分析技术,获取软件函数调用系统API集合;再通过多个客户端同时执行待测软件动态兼容性测试,结合动态分析技术和HOOK技术,动态获取软件运行时API调用信息以及运行状态记录;最后,将动静态分析出的API调用信息经由缺陷API分析引擎识别其存在兼容性问题的缺陷API,自动生成兼容性测试评估报告,达到测试覆盖范围广、测试效率、精准度高的效果。
>[0005]本专利技术通过以下技术方案来实现上述目的:
[0006]一种基于动静态结合的软件兼容性测试方法,包括以下步骤:
[0007]S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;
[0008]S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用系统API集合A1;
[0009]S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;
[0010]S4、各个目标系统的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;
[0011]S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与系统交互行为测试软件,实时记录调用的系统API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
[0012]S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信
息,分析识别目标系统可能存在兼容性问题的缺陷API;
[0013]S7、为各个子测试客户端分别生成目标系统兼容性测试报告。
[0014]进一步方案为,所述步骤S5中,模拟人与系统交互行为的功能是通过c#的windows动态链接库user32.dll实现,在分析过程中使用user32.dll中keybd_event()、FindWindow()、SendMessage()函数,模拟出鼠标的移动、点击、拖拽、滚屏和键盘按键输入、按住操作以及鼠标和键盘的热键同时按住一系列交互操作行为,如果软件出现兼容性异常,则记录异常状态。
[0015]进一步方案为,所述步骤S5中,动态API调用集合的提取采用自动化的动态分析,基于HOOK技术,在真机分析环境中动态运行和监控每个PE文件得到其真实且完整的API调用集合。
[0016]进一步方案为,所述步骤S6中,服务端缺陷API分析引擎,根据动态、静态分析出的API集合,去预先整理好的Windows API兼容性知识库查询其支持的最低系统版本,如果该系统版本不支持当前测试系统,则标记为缺陷API。
[0017]进一步方案为,所述步骤S7中,缺陷API分析引擎会根据软件缺陷API以及异常状态信息,为各个子测试客户端分别生成目标系统兼容性测试报告。
[0018]本专利技术的有益效果在于:
[0019]本专利技术的一种基于动静态结合的软件兼容性测试方法,通过对测试软件可执行程序进行反汇编得到函数调用图,再通过静态分析技术,获取软件函数调用系统API集合;再通过多个客户端同时执行待测软件动态兼容性测试,结合动态分析技术和HOOK技术,动态获取软件运行时API调用信息以及运行状态记录;最后,将动静态分析出的API调用信息经由缺陷API分析引擎识别其存在兼容性问题的缺陷API,自动生成兼容性测试评估报告,达到测试覆盖范围广、测试效率、精准度高的效果。
附图说明
[0020]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为一种基于动静态结合的软件兼容性测试方法示意图;
[0022]图2为一种基于动静态结合的软件兼容性测试方法流程图;
具体实施方式
[0023]为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的技术方案进行详细的描述。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本专利技术所保护的范围。
[0024]在任一实施例中,如图1

2所示,本专利技术的一种基于动静态结合的软件兼容性测试方法,包括:
[0025]一种基于动静态结合的软件兼容性测试方法,包括以下步骤:
[0026]S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;
[0027]S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用系统API集合A1;
[0028]S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;
[0029]S4、各个目标系统的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;
[0030]S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与系统交互行为测试软件,实时记录调用的系统API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
[0031]S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信息,分析识别目标系统可能存在兼容性问题的缺陷API;
[0032]S7、为各个子测试客户端分别生成目标系统兼容性测试报告。
[0033]在一个具体实施例中,如图1

2所示,本专利技术的一种基于动静态结合的软件兼容性测试方法,包括以下步骤:
[0034]S1、部署兼容性测试本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于动静态结合的软件兼容性测试方法,其特征在于,包括以下步骤:S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用系统API集合A1;S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;S4、各个目标系统的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与系统交互行为测试软件,实时记录调用的系统API以及软件异常状态,然后上报至服务端缺陷API识别引擎;S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信息,分析识别目标系统可能存在兼容性问题的缺陷API;S7、为各个子测试客户端分别生成目标系统兼容性测试报告。2.如权利要求1所述的一种基于动静态结合的软件兼容性测试方法,其特征在于,所述步骤S5中,模拟人与系统交互行为的功能是通过c#的windows动态链接库user3...

【专利技术属性】
技术研发人员:周玉廷龚致江佳俊
申请(专利权)人:四川启睿克科技有限公司
类型:发明
国别省市:

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

1