CN113934642B - 一种基于动静态结合的软件兼容性测试方法 - Google Patents

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

Info

Publication number
CN113934642B
CN113934642B CN202111391668.XA CN202111391668A CN113934642B CN 113934642 B CN113934642 B CN 113934642B CN 202111391668 A CN202111391668 A CN 202111391668A CN 113934642 B CN113934642 B CN 113934642B
Authority
CN
China
Prior art keywords
test
api
software
compatibility
defect
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.)
Active
Application number
CN202111391668.XA
Other languages
English (en)
Other versions
CN113934642A (zh
Inventor
周玉廷
龚致
江佳俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Qiruike Technology Co Ltd
Original Assignee
Sichuan Qiruike Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Qiruike Technology Co Ltd filed Critical Sichuan Qiruike Technology Co Ltd
Priority to CN202111391668.XA priority Critical patent/CN113934642B/zh
Publication of CN113934642A publication Critical patent/CN113934642A/zh
Application granted granted Critical
Publication of CN113934642B publication Critical patent/CN113934642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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 (4)

1.一种基于动静态结合的软件兼容性测试方法,其特征在于,包括以下步骤:
S1、部署兼容性测试服务端和连接该兼容性测试服务端的基于测试需求的多个子测试客户端;
S2、对测试软件可执行程序进行反编译,得到函数调用图,通过静态分析技术,获取软件函数调用系统API集合A1;
S3、通过兼容性测试服务端批量分发windows软件安装包测试任务到所有子测试客户端;
S4、各个目标系统的子测试客户端接收测试任务,下载软件安装包,并开始进行兼容性测试;
S5、采用HOOK技术对windows API调用情况进行监控,然后测试安装包进行动态分析,采用安装、卸载、升级、模拟人与系统交互行为测试软件,实时记录调用的系统API以及软件异常状态,然后上报至服务端缺陷API识别引擎;
S6、服务端缺陷API分析引擎,根据动态、静态分析出的API调用信息、异常状态信息,分析识别目标系统可能存在兼容性问题的缺陷API;所述步骤S6中,服务端缺陷API分析引擎,根据动态、静态分析出的API集合,去预先整理好的Windows 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所述的一种基于动静态结合的软件兼容性测试方法,其特征在于,所述步骤S7中,缺陷API分析引擎会根据软件缺陷API以及异常状态信息,为各个子测试客户端分别生成目标系统兼容性测试报告。
CN202111391668.XA 2021-11-19 2021-11-19 一种基于动静态结合的软件兼容性测试方法 Active CN113934642B (zh)

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 CN113934642A (zh) 2022-01-14
CN113934642B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816772B (zh) * 2022-06-29 2022-09-06 统信软件技术有限公司 基于兼容层运行的应用的排错方法、排错系统及计算设备

Citations (7)

* Cited by examiner, † Cited by third party
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 北京计算机技术及应用研究所 一种国产操作系统硬件兼容性测试方法
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 南方科技大学 一种软件兼容性检测方法、智能终端及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664379B2 (en) * 2018-09-05 2020-05-26 Amazon Technologies, Inc. Automated software verification service

Patent Citations (7)

* Cited by examiner, † Cited by third party
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 北京计算机技术及应用研究所 一种国产操作系统硬件兼容性测试方法
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)

* Cited by examiner, † Cited by third party
Title
Android Compatibility Issue Detection Using API Differences;Tarek Mahmud等;《2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)》;20210511;第480 - 490页 *
安卓移动应用兼容性测试综述;郑炜等;《计算机研究与发展》;20211018(第06期);第1370-1387页 *

Also Published As

Publication number Publication date
CN113934642A (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
US10372600B2 (en) Systems and methods for automated web performance testing for cloud apps in use-case scenarios
CN107992409B (zh) 测试用例生成方法、装置、计算机设备和存储介质
US8059788B2 (en) Telephone software testing system and method
CN108268371B (zh) 面向Android应用的智能模糊测试方法
CN113760704A (zh) Web UI的测试方法、装置、设备以及存储介质
CN105975856A (zh) 一种移动终端病毒动态检测方法及系统
CN111666217B (zh) 用于测试代码的方法和装置
CN109977012B (zh) 系统的联调测试方法、装置、设备及计算机可读存储介质
CN105653946A (zh) 基于组合事件行为触发的Android恶意行为检测系统及其检测方法
CN111475390A (zh) 日志采集系统部署方法、装置、设备及存储介质
CN113076253A (zh) 一种测试方法和测试装置
CN113934642B (zh) 一种基于动静态结合的软件兼容性测试方法
CN109669851A (zh) 基于Selenium自动化的性能测试脚本录制方法
CN111367768A (zh) 程序的函数响应时间监控方法及装置
CN107122307B (zh) 一种物联网执行系统
CN114661551A (zh) 软件运行状态的监控方法、设备及计算机可读存储介质
CN111651342A (zh) 基于Charles录制会话的HTTP接口自动化测试框架
CN113238935A (zh) 应用测试方法、系统、设备、介质及计算机程序产品
CN110990221A (zh) 基于内核LKM的Android平台恶意软件自动化检测方法与系统
CN112527619A (zh) 一种基于有向无环图结构的分析链路调用方法及系统
CN110334523B (zh) 一种漏洞检测方法、装置、智能终端及存储介质
CN110795330A (zh) 一种Monkey压力测试的方法和装置
CN114676066A (zh) 目标应用的安全测试方法及其装置、电子设备及存储介质
CN108959092B (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