CN113934642A - 一种基于动静态结合的软件兼容性测试方法 - Google Patents
一种基于动静态结合的软件兼容性测试方法 Download PDFInfo
- Publication number
- CN113934642A CN113934642A CN202111391668.XA CN202111391668A CN113934642A CN 113934642 A CN113934642 A CN 113934642A CN 202111391668 A CN202111391668 A CN 202111391668A CN 113934642 A CN113934642 A CN 113934642A
- Authority
- CN
- China
- Prior art keywords
- api
- software
- compatibility
- test
- dynamic
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 83
- 230000003068 static effect Effects 0.000 title claims abstract description 24
- 230000007547 defect Effects 0.000 claims abstract description 31
- 238000005516 engineering process Methods 0.000 claims abstract description 19
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 230000006399 behavior Effects 0.000 claims description 10
- 238000009434 installation Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 7
- 230000005856 abnormality Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 230000007474 system interaction Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 3
- 238000011156 evaluation Methods 0.000 abstract description 3
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于动静态结合的软件兼容性测试方法,通过对测试软件可执行程序进行反汇编得到函数调用图,再通过静态分析技术,获取软件函数调用***API集合;再通过多个客户端同时执行待测软件动态兼容性测试,结合动态分析技术和HOOK技术,动态获取软件运行时API调用信息以及运行状态记录;最后,将动静态分析出的API调用信息经由缺陷API分析引擎识别其存在兼容性问题的缺陷API,自动生成兼容性测试评估报告,达到测试覆盖范围广、测试效率、精准度高的效果。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种基于动静态结合的软件兼容性测试方法。
背景技术
软件兼容性,指的是某个软件能稳定地工作在某操作***之中,能够与操作***中的其它各种软件协调工作,互不影响,软件自身不会出现意外的退出、卡死等异常,不会导致操作***出现卡慢、蓝屏、断网等问题。软件兼容性测试能够进一步提高产品的质量,提高用户体验,它是衡量一个软件质量的重要指标。
目前,windows软件兼容性测试方法通常是利用人工在不同windows操作***版本、不同型号的终端设备安装软件,并通过人工识别各个终端在软件运行的过程中出现的兼容性问题,这种人工测试方法耗时比较长、测试效率低、容易出现疏漏和错误,不仅如此,参与测试的设备、服务器数量、算力也有限,一般是单一测试服务器进行多次测试,无法达到较好的软件测试结果。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于动静态结合的软件兼容性测试方法,本发明对测试软件可执行程序进行反汇编得到函数调用图,再通过静态分析技术,获取软件函数调用***API集合;再通过多个客户端同时执行待测软件动态兼容性测试,结合动态分析技术和HOOK技术,动态获取软件运行时API调用信息以及运行状态记录;最后,将动静态分析出的API调用信息经由缺陷API分析引擎识别其存在兼容性问题的缺陷API,自动生成兼容性测试评估报告,达到测试覆盖范围广、测试效率、精准度高的效果。
本发明通过以下技术方案来实现上述目的:
一种基于动静态结合的软件兼容性测试方法,包括以下步骤:
S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;
S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用***API集合A1;
S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;
S4、各个目标***的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;
S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与***交互行为测试软件,实时记录调用的***API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信息,分析识别目标***可能存在兼容性问题的缺陷API;
S7、为各个子测试客户端分别生成目标***兼容性测试报告。
进一步方案为,所述步骤S5中,模拟人与***交互行为的功能是通过c#的windows动态链接库user32.dll实现,在分析过程中使用user32.dll中keybd_event()、FindWindow()、SendMessage()函数,模拟出鼠标的移动、点击、拖拽、滚屏和键盘按键输入、按住操作以及鼠标和键盘的热键同时按住一系列交互操作行为,如果软件出现兼容性异常,则记录异常状态。
进一步方案为,所述步骤S5中,动态API调用集合的提取采用自动化的动态分析,基于HOOK技术,在真机分析环境中动态运行和监控每个PE文件得到其真实且完整的API调用集合。
进一步方案为,所述步骤S6中,服务端缺陷API分析引擎,根据动态、静态分析出的API集合,去预先整理好的Windows API兼容性知识库查询其支持的最低***版本,如果该***版本不支持当前测试***,则标记为缺陷API。
进一步方案为,所述步骤S7中,缺陷API分析引擎会根据软件缺陷API以及异常状态信息,为各个子测试客户端分别生成目标***兼容性测试报告。
本发明的有益效果在于:
本发明的一种基于动静态结合的软件兼容性测试方法,通过对测试软件可执行程序进行反汇编得到函数调用图,再通过静态分析技术,获取软件函数调用***API集合;再通过多个客户端同时执行待测软件动态兼容性测试,结合动态分析技术和HOOK技术,动态获取软件运行时API调用信息以及运行状态记录;最后,将动静态分析出的API调用信息经由缺陷API分析引擎识别其存在兼容性问题的缺陷API,自动生成兼容性测试评估报告,达到测试覆盖范围广、测试效率、精准度高的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种基于动静态结合的软件兼容性测试方法示意图;
图2为一种基于动静态结合的软件兼容性测试方法流程图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
在任一实施例中,如图1-2所示,本发明的一种基于动静态结合的软件兼容性测试方法,包括:
一种基于动静态结合的软件兼容性测试方法,包括以下步骤:
S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;
S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用***API集合A1;
S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;
S4、各个目标***的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;
S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与***交互行为测试软件,实时记录调用的***API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信息,分析识别目标***可能存在兼容性问题的缺陷API;
S7、为各个子测试客户端分别生成目标***兼容性测试报告。
在一个具体实施例中,如图1-2所示,本发明的一种基于动静态结合的软件兼容性测试方法,包括以下步骤:
S1、部署兼容性测试服务端,该服务端主要包含静态分析模块、缺陷API分析引擎、通信模块以及基础组件。不同子客户端部署在不用windows***版本终端上,通过消息队列与服务端通信。
S2、静态分析模块,主要用于对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用的***API集合A1;
S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端,服务端与客户端采用消息队列下发指令方式通信;
S4、各个目标***的子测试客户端接收测试任务,在通过服务端https接口,下载测试软件安装包,并开始进行兼容性测试;
S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用但不限于安装、卸载、升级、模拟人与***交互行为方式测试软件,实时记录调用的***API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
模拟人与***交互行为的功能是通过c#的windows动态链接库user32.dll实现的,在分析过程中使用user32.dll中keybd_event()、FindWindow()、SendMessage()等函数,模拟出鼠标的移动、点击、拖拽、滚屏和键盘按键输入、按住操作以及鼠标和键盘的热键同时按住等一系列交互操作行为,如果软件出现兼容性异常,则记录异常状态。
动态API调用集合的提取采用自动化的动态分析,基于HOOK技术,在真机分析环境中动态运行和监控每个PE文件得到其真实且完整的API调用集合。
S6、服务端缺陷API分析引擎,根据动态、静态分析出的API集合,去预先整理好的Windows API兼容性知识库查询其支持的最低***版本,如果该***版本不支持当前测试***,则标记为缺陷API。
S7、缺陷API分析引擎会根据软件缺陷API以及异常状态信息,为各个子测试客户端分别生成目标***兼容性测试报告。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (5)
1.一种基于动静态结合的软件兼容性测试方法,其特征在于,包括以下步骤:
S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;
S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用***API集合A1;
S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;
S4、各个目标***的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;
S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与***交互行为测试软件,实时记录调用的***API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信息,分析识别目标***可能存在兼容性问题的缺陷API;
S7、为各个子测试客户端分别生成目标***兼容性测试报告。
2.如权利要求1所述的一种基于动静态结合的软件兼容性测试方法,其特征在于,所述步骤S5中,模拟人与***交互行为的功能是通过c#的windows动态链接库user32.dll实现,在分析过程中使用user32.dll中keybd_event()、FindWindow()、SendMessage()函数,模拟出鼠标的移动、点击、拖拽、滚屏和键盘按键输入、按住操作以及鼠标和键盘的热键同时按住一系列交互操作行为,如果软件出现兼容性异常,则记录异常状态。
3.如权利要求1所述的一种基于动静态结合的软件兼容性测试方法,其特征在于,所述步骤S5中,动态API调用集合的提取采用自动化的动态分析,基于HOOK技术,在真机分析环境中动态运行和监控每个PE文件得到其真实且完整的API调用集合。
4.如权利要求1所述的一种基于动静态结合的软件兼容性测试方法,其特征在于,所述步骤S6中,服务端缺陷API分析引擎,根据动态、静态分析出的API集合,去预先整理好的Windows API兼容性知识库查询其支持的最低***版本,如果该***版本不支持当前测试***,则标记为缺陷API。
5.如权利要求1所述的一种基于动静态结合的软件兼容性测试方法,其特征在于,所述步骤S7中,缺陷API分析引擎会根据软件缺陷API以及异常状态信息,为各个子测试客户端分别生成目标***兼容性测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111391668.XA CN113934642B (zh) | 2021-11-19 | 2021-11-19 | 一种基于动静态结合的软件兼容性测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111391668.XA CN113934642B (zh) | 2021-11-19 | 2021-11-19 | 一种基于动静态结合的软件兼容性测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113934642A true CN113934642A (zh) | 2022-01-14 |
CN113934642B CN113934642B (zh) | 2024-05-14 |
Family
ID=79287333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111391668.XA Active CN113934642B (zh) | 2021-11-19 | 2021-11-19 | 一种基于动静态结合的软件兼容性测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934642B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816772A (zh) * | 2022-06-29 | 2022-07-29 | 统信软件技术有限公司 | 基于兼容层运行的应用的排错方法、排错***及计算设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445810A (zh) * | 2016-08-30 | 2017-02-22 | 福建天晴数码有限公司 | 一种交互式软件与设备兼容性的测试方法及*** |
CN108920370A (zh) * | 2018-07-02 | 2018-11-30 | 北京百度网讯科技有限公司 | 兼容性问题检测方法、装置及设备 |
CN110347587A (zh) * | 2019-05-30 | 2019-10-18 | 平安银行股份有限公司 | App兼容性测试方法、装置、计算机设备及存储介质 |
CN110716874A (zh) * | 2019-09-25 | 2020-01-21 | 北京计算机技术及应用研究所 | 一种国产操作***硬件兼容性测试方法 |
US20200073783A1 (en) * | 2018-09-05 | 2020-03-05 | Amazon Technologies, Inc. | Automated software verification service |
CN111061643A (zh) * | 2019-12-24 | 2020-04-24 | 五八同城信息技术有限公司 | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 |
CN111382070A (zh) * | 2020-03-03 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 兼容性测试方法、装置、存储介质和计算机设备 |
CN111813693A (zh) * | 2020-07-31 | 2020-10-23 | 南方科技大学 | 一种软件兼容性检测方法、智能终端及存储介质 |
-
2021
- 2021-11-19 CN CN202111391668.XA patent/CN113934642B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445810A (zh) * | 2016-08-30 | 2017-02-22 | 福建天晴数码有限公司 | 一种交互式软件与设备兼容性的测试方法及*** |
CN108920370A (zh) * | 2018-07-02 | 2018-11-30 | 北京百度网讯科技有限公司 | 兼容性问题检测方法、装置及设备 |
US20200073783A1 (en) * | 2018-09-05 | 2020-03-05 | Amazon Technologies, Inc. | Automated software verification service |
CN110347587A (zh) * | 2019-05-30 | 2019-10-18 | 平安银行股份有限公司 | App兼容性测试方法、装置、计算机设备及存储介质 |
CN110716874A (zh) * | 2019-09-25 | 2020-01-21 | 北京计算机技术及应用研究所 | 一种国产操作***硬件兼容性测试方法 |
CN111061643A (zh) * | 2019-12-24 | 2020-04-24 | 五八同城信息技术有限公司 | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 |
CN111382070A (zh) * | 2020-03-03 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 兼容性测试方法、装置、存储介质和计算机设备 |
CN111813693A (zh) * | 2020-07-31 | 2020-10-23 | 南方科技大学 | 一种软件兼容性检测方法、智能终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
TAREK MAHMUD等: "Android Compatibility Issue Detection Using API Differences", 《2021 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER)》, 11 May 2021 (2021-05-11), pages 480 * |
郑炜等: "安卓移动应用兼容性测试综述", 《计算机研究与发展》, no. 06, 18 October 2021 (2021-10-18), pages 1370 - 1387 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816772A (zh) * | 2022-06-29 | 2022-07-29 | 统信软件技术有限公司 | 基于兼容层运行的应用的排错方法、排错***及计算设备 |
CN114816772B (zh) * | 2022-06-29 | 2022-09-06 | 统信软件技术有限公司 | 基于兼容层运行的应用的排错方法、排错***及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113934642B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CN106776294B (zh) | 安卓手机自动化测试方法和*** | |
CN109885480B (zh) | 一种基于调试桥的自动化界面兼容性测试方法及装置 | |
CN107302476B (zh) | 一种测试异步交互***的自动化测试方法与*** | |
CN109543417B (zh) | 一种基于Qemu平台的漏洞挖掘方法和装置 | |
CN110865941A (zh) | 接口测试用例生成方法、装置和*** | |
CN114297056A (zh) | 一种自动化测试方法及*** | |
CN111026638A (zh) | 一种网页自动化测试方法、装置、电子设备和存储介质 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
CN115113890A (zh) | 一种终端软件的自动化部署方法、***、设备及介质 | |
CN113934642A (zh) | 一种基于动静态结合的软件兼容性测试方法 | |
CN105760300A (zh) | 一种stk/utk业务的自动化测试方法及测试*** | |
CN113760774B (zh) | 一种ota仿真测试方法、平台及*** | |
CN111651342A (zh) | 基于Charles录制会话的HTTP接口自动化测试框架 | |
CN112256588A (zh) | 应用程序测试的资源配置方法、计算机可读存储介质及测试机 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN110334523B (zh) | 一种漏洞检测方法、装置、智能终端及存储介质 | |
CN110990221A (zh) | 基于内核LKM的Android平台恶意软件自动化检测方法与*** | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
CN112306857A (zh) | 用于测试应用的方法和装置 | |
CN110795330A (zh) | 一种Monkey压力测试的方法和装置 | |
CN112596750B (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN106547686B (zh) | 产品测试方法及装置 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN113836036A (zh) | 浏览器兼容性自动化测试方法、***、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |