CN108920370A - 兼容性问题检测方法、装置及设备 - Google Patents

兼容性问题检测方法、装置及设备 Download PDF

Info

Publication number
CN108920370A
CN108920370A CN201810707991.5A CN201810707991A CN108920370A CN 108920370 A CN108920370 A CN 108920370A CN 201810707991 A CN201810707991 A CN 201810707991A CN 108920370 A CN108920370 A CN 108920370A
Authority
CN
China
Prior art keywords
compatibility issue
compatibility
information
api
application program
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
Application number
CN201810707991.5A
Other languages
English (en)
Other versions
CN108920370B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201810707991.5A priority Critical patent/CN108920370B/zh
Publication of CN108920370A publication Critical patent/CN108920370A/zh
Application granted granted Critical
Publication of CN108920370B publication Critical patent/CN108920370B/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/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明提供一种兼容性问题检测方法、装置及设备。本发明的方法,通过检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树;根据兼容性问题的规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识;检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,无需在真机平台上进行测试,通静态代码扫描即可实现对应用程序的兼容性测试,提到了兼容性测试效率,降低了兼容性测试成本。

Description

兼容性问题检测方法、装置及设备
技术领域
本发明涉及通信技术领域,尤其涉及一种兼容性问题检测方法、装置及设备。
背景技术
Android是由Google和手机开放联盟(Open Handset Alliance,简称OHA)联合开发的开放式操作系统,现如今大量应用于智能手机和平板电脑等移动设备。然而,由于开放操作系统的特性,Android存在着碎片化的问题,即相同的应用程序可能会在不同的设备上存在不同的表现和行为,也即是Android存在兼容性问题。
目前,Android的兼容性问题是Android开发遇到的最重要的问题之一。现有的Android兼容性测试方案多是在大量的真机平台上进行测试来发现隐藏的兼容性问题,兼容性测试的效率低,成本高。
发明内容
本发明提供一种兼容性问题检测方法、装置及设备,用以解决现有的Android兼容性测试方案多是在大量的真机平台上进行测试来发现隐藏的兼容性问题,兼容性测试效率低、成本高的问题。
本发明的第一个方面是提供一种兼容性问题检测方法,包括:
检测设备在接收到对应用程序的兼容性检测指令时,对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;
检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
检测设备将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
本发明的第二个方面是提供一种兼容性问题检测方法,包括:
分析平台建立兼容性问题库,所述兼容性问题库包括多个兼容性问题的描述信息;
分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
本发明的第三个方面是提供一种兼容性问题检测装置,包括:
检测管理模块,用于检测设备在接收到对应用程序的兼容性检测指令时,对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;
代码扫描模块,用于检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
所述检测管理模块,还用于检测设备将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
本发明的第四个方面是提供一种兼容性问题检测装置,包括:
问题库建立模块,用于分析平台建立兼容性问题库,所述兼容性问题库包括多个兼容性问题的描述信息;
接收模块,用于分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
处理模块,用于分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
本发明的第五个方面是提供一种兼容性问题检测设备,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现上述第一方面所述的方法。
本发明的第六个方面是提供一种分析平台,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现上述第二方面所述的方法。
本发明的第七个方面是提供一种计算机可读存储介质,存储有计算机程序,
所述计算机程序被处理器执行时实现上述第一方面所述的方法。
本发明的第八个方面是提供一种计算机可读存储介质,存储有计算机程序,
所述计算机程序被处理器执行时实现上述第二方面所述的方法。
本发明提供的兼容性问题检测方法、装置及设备,通过检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树;根据兼容性问题的规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识;检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,无需在真机平台上进行测试,通静态代码扫描即可实现对应用程序的兼容性测试,提到了兼容性测试效率,降低了兼容性测试成本。
附图说明
图1为本发明实施例一提供的兼容性问题检测方法流程图;
图2为本发明实施例二提供的兼容性问题检测方法流程图;
图3为本发明实施例三提供的兼容性问题检测方法流程图;
图4为本发明实施例五提供的兼容性问题检测装置的结构示意图;
图5为本发明实施例七提供的兼容性问题检测装置的结构示意图;
图6为本发明实施例九提供的兼容性问题检测设备的结构示意图;
图7为本发明实施例十提供的分析平台的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
首先对本发明所涉及的名词进行解释:
Android的碎片化:是指它在发展的过程中,随着自身版本的更迭,以及硬件厂商的自行定制,而带来的一个版本数量爆炸的问题。
应用程序编程接口(Application Programming Interface,简称API):是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
图1为本发明实施例一提供的兼容性问题检测方法流程图。本发明实施例针对现有的Android兼容性测试方案多是在大量的真机平台上进行测试来发现隐藏的兼容性问题,兼容性测试效率低、成本高的问题,提供了兼容性问题检测方法。本实施例中的方法应用于检测设备,该检测设备可以是待检测的应用程序当前所部署的计算机设备,在其他实施例中,该检测设备还可是其他设备,本实施例以计算机设备为例进行示意性说明。如图1所示,该方法具体步骤如下:
步骤S101、检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树。
其中,应用程序可以是应用于基于Android的智能手机、平板电脑等移动终端的软件应用(Application,简称APP)。
本实施例中,技术人员在需要对应用程序进行兼容性测试时,技术人员可以通过命令行等方式向检测设备发送对应用程序的兼容性检测指令。
检测设备上预先部署了用于对应用程序进行静态代码扫描的检测工具,检测工具可以以依赖包的方式集成在应用程序中。其中,该静态代码扫描的检测工具可以是对现有的静态代码检测工具进行二次开发得到的。对现有的静态代码检测工具进行二次开发包括:根据Android现有的兼容性问题,对现有的静态代码检测工具进行代码扫描的规则进行二次开发,得到的检测工具能够针对兼容性问题进行扫描。
其中,现有的静态代码检测工具可以是Android官方提供的静态代码检测工具lint,或者其他静态代码检测工具等。
该步骤中,在接收到对应用程序的兼容性检测指令时,检测设备对应用程序进行静态代码扫描,得到应用程序的抽象语法树,也可以通检测设备调用检测工具提供的接口获取抽象语法树及其节点对象。
步骤S102、检测设备获取兼容性问题的规则信息,根据规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。
本实施例中,兼容性问题的规则信息至少包括兼容性问题的标识、兼容性问题对应的特征API和待扫描的节点类型。另外,兼容性问题的规则信息还可以包括出现该兼容性问题的触发条件、用于描述改兼容性问题其他信息等信息。
例如,以ListView控件的setAdapter API兼容性问题为例,该兼容性问题的在Android 19之前,ListView的addHeader方法和addFooter方法必须在setAdapter方法之前调用,否则就会有异常引。该兼容性问题的规则信息可以包括该兼容性问题对应的特征API:addHeader方法调用API、addFooter方法调用API和setAdapter方法调用API;还可以包括该兼容性问题的触发条件:addHeader方法调用API、addFooter方法调用API和setAdapter方法调用API这三个API在同一个类中的同一个函数中调用,且setAdapter调用行数小于addHeader或addFooter的调用行数。另外,该兼容性问题的规则信息还可以包括:用于描述该兼容性问题的名称“ListView Adapter崩溃问题”等。
可选的,兼容性问题的规则信息可以以兼容性问题对象的方式存储。也即是检测工具中预先建立每个兼容性问题对应的问题对象,该问题对象记录了兼容性问题的规则信息。检测设备在对应用程序进行静态代码扫描运行检测工具时,可以从问题对象中获取兼容性问题的规则信息。
在获取到兼容性问题的规则信息后,检测设备根据规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。
其中,应用程序潜在的兼容性缺陷信息用于表示应用程序中可能存在的兼容性问题的相关信息。
步骤S103、检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题。
分析平台上存储有兼容性问题库,兼容性问题库包括多个兼容性问题的描述信息。兼容性问题库可以包括已知的所有兼容性问题的描述信息。其中兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息。
本实施例中,检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,分析平台可以根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并可以进一步对兼容性问题的描述信息进行展示。
本发明实施例通过检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树;根据兼容性问题的规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识;检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,无需在真机平台上进行测试,通静态代码扫描即可实现对应用程序的兼容性测试,提到了兼容性测试效率,降低了兼容性测试成本。
实施例二
图2为本发明实施例二提供的兼容性问题检测方法流程图。在上述实施例一的基础上,本实施例中,检测设备包括检测管理模块和代码扫描模块,检测管理模块为接入应用程序的插件,代码扫描模块以依赖包的方式集成在应用程序中。检测管理模块用于:接收兼容性检测指令;代码扫描模块用于:对应用程序进行静态代码扫描,得到应用程序的抽象语法树;获取兼容性问题的规则信息,根据规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息;检测管理模块还用于将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台根据兼容性问题库获取兼容性缺陷信息对应的兼容性问题。如图2所示,该方法具体步骤如下:
步骤S201、检测管理模块接收对应用程序的兼容性检测指令。
其中,检测管理模块为接入应用程序的插件,代码扫描模块以依赖包的方式集成在应用程序中。
检测管理模块用于获取用户指定的工程构建信息,并根据工程构建信息调用代码扫描模块,以是检测设备根据工程构建信息运行进行代码扫描模块,实现对应用程序的静态代码扫描。也即是,代码扫描模块通过插件接入应用程序,后续可以通过插件升级的方式进行检测管理模块和代码扫描模块的升级,便于应用程序集成和日后检测工具升级,具有更高的实用性和可维护性。
另外,检测管理模块还用于将扫描结果发送到分析平台。
检测管理模块可以是在检测设备上预先部署的用于对应用程序进行静态代码扫描的检测工具。其中,该静态代码扫描的检测工具可以是对现有的静态代码检测工具进行二次开发得到的。对现有的静态代码检测工具进行二次开发包括:根据Android现有的兼容性问题,对现有的静态代码检测工具进行代码扫描的规则进行二次开发,得到的检测工具能够针对兼容性问题进行扫描。其中,现有的静态代码检测工具可以是Android官方提供的静态代码检测工具lint,或者其他静态代码检测工具等。
步骤S202、检测管理模块获取用户指定的工程构建信息,工程构建信息至少包括:构建类型和渠道。
在实际应用中,由于Android工程存在多个构建类型(buildTypes)和渠道(productflover),其产出组合可达数十种。代码扫描模块(如Android官方提供的静态代码检测工具lint)进行静态代码扫描需要依赖工程编译。通过检测管理模块(插件)获取用户指定的工程构建信息,从而检测设备可以根据不同工程构建信息生成不同的检测任务(task),每一个检测任务与工程构建信息一一对应。检测设备可以针对用户指定的一个工程构建信息,选择执行对应的检测任务进行兼容性问题检测,从而大大缩短了单次检测时间。
检测管理模块获取用户指定的工程构建信息,具体可以采用如下方式实现:
检测管理模块可以接收用户以命令行的方式输入的工程构建信息;或者检测管理模块可以从用户预先设定的配置文件中读取工程构建信息。
步骤S203、代码扫描模块根据工程构建信息对应用程序进行静态代码扫描,得到应用程序的抽象语法树。
该步骤中,在接收到对应用程序的兼容性检测指令时,检测设备对应用程序进行静态代码扫描,得到应用程序的抽象语法树,也可以通检测设备调用检测工具提供的接口获取抽象语法树及其节点对象。
检测设备在对应用程序进行静态代码扫描,得到应用程序的抽象语法树之前,检测设备通过检测管理模块接收用户指定的工程构建信息,工程构建信息至少包括:构建类型和渠道。相应地,检测设备通过代码扫描模块根据工程构建信息对应用程序进行静态代码扫描,得到应用程序的抽象语法树。
本实施例中,通过检测管理模块(插件)获取用户指定的工程构建信息,从而检测设备可以根据不同工程构建信息生成不同的检测任务(task),每一个检测任务与工程构建信息一一对应。检测设备可以针对用户指定的一个工程构建信息,选择执行对应的检测任务进行兼容性问题检测,从而大大缩短了单次检测时间。
在获取到兼容性问题的规则信息后,检测设备通过步骤S204-S206根据规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。
步骤S204、代码扫描模块获取兼容性问题的规则信息,根据兼容性问题的规则信息,确定兼容性问题对应的特征API和待扫描的节点类型。
其中,兼容性问题的规则信息至少包括兼容性问题的标识、兼容性问题对应的特征API和待扫描的节点类型。
本实施例中,特征API至少包括:调用API特征字符串、布局文件特征字符串和清单文件特征字符串。待扫描的节点类型至少包括:方法调用节点、表达式节点和资源文件引用节点。
其中,方法调用节点是最主要的检测节点,对方法调用节点进行检测时,同时需要检测该方法调用参数、方法所属类等属性。表达式节点用于表示赋值表达式、变量定义等。代码扫描模块通过对资源文件引用节点的扫描对工程中的资源文件进行检测。
另外,兼容性问题的规则信息还可以包括出现该兼容性问题的触发条件、用于描述改兼容性问题其他信息等信息。
例如,以ListView控件的setAdapter API兼容性问题为例,该兼容性问题的在Android 19之前,ListView的addHeader方法和addFooter方法必须在setAdapter方法之前调用,否则就会有异常引。该兼容性问题的规则信息可以包括该兼容性问题对应的特征API:addHeader方法调用API、addFooter方法调用API和setAdapter方法调用API;还可以包括该兼容性问题对应的待扫描的节点类型:方法调用节点。
另外,该兼容性问题的规则信息还可以包括该兼容性问题的触发规则:addHeader、addFooter和setAdapter这三个API在同一个类中的同一个函数中调用,且setAdapter调用行数小于addHeader或addFooter的调用行数。另外,该兼容性问题的规则信息还可以包括:用于描述该兼容性问题的名称“ListView Adapter崩溃问题”等。
可选的,兼容性问题的规则信息可以以兼容性问题对象的方式存储。也即是检测工具中预先建立每个兼容性问题对应的问题对象,该问题对象记录了兼容性问题的规则信息。检测设备在对应用程序进行静态代码扫描运行检测工具时,可以从问题对象中获取兼容性问题的规则信息。
步骤S205、代码扫描模块对抽象语法树中的待扫描的节点类型对应的节点对象进行扫描,记录特征API的特征数据。
其中,特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值。
在进行兼容性问题检测的过程中,由于不同的兼容性问题可能对应多类特征API和抽象语法树节点的调用。本实施例中,代码扫描模块对抽象语法树中的待扫描的节点类型对应的节点对象进行扫描,并将所有兼容性问题对应的特征API的特征数据进行存储,以便于在对所有文件扫描结束后,代码扫描模块根据兼容性问题的规则信息对扫描得到的兼容性问题对应的特征API的特征数据进行筛选,得到应用程序潜在的兼容性缺陷信息。
可选的,代码扫描模块可以将记录兼容性问题对应的特征API的特征数据存储到Map表中。
另外,代码扫描模块在存储兼容性问题对应的特征API的特征数据时,将兼容性问题对应的特征API的特征数据与兼容性问题的标识对应存储。
步骤S206、代码扫描模块确定规则信息与特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息。
其中,应用程序潜在的兼容性缺陷信息用于表示应用程序中可能存在的兼容性问题的相关信息。兼容性缺陷信息至少包括兼容性问题的标识和特征API的特征数据。
可选的,代码扫描模块确定规则信息与特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息之后,将兼容性缺陷信息存储在XML等结构化文件的形式存储在文件系统中,以便于分析平台从结构化文件中解析出兼容性缺陷信息。
基于步骤S204中的举例,检测设备在确定setAdapter API兼容性问题对应的特征API,待扫描的节点类型和触发规则等规则信息之后,检测设备对抽象语法树中的该待扫描的节点类型进行扫描,得到特征API的特征数据:addHeader方法调用API、addFooter方法调用API和setAdapter方法调用API这三个API调用及其调用行数,以及这三个API调用对应的类名和函数名。
在得到setAdapter API兼容性问题对应的特征API的特征数据之后,检测设备可以将得到特征API的特征数据与setAdapter API兼容性问题的规则信息中的该兼容性问题的触发规则进行匹配,若得到特征API的特征数据中addHeader方法调用API、addFooter方法调用API和setAdapter方法调用API这三个API在同一个类中的同一个函数中调用,且setAdapter调用行数小于addHeader或addFooter的调用行数,则与setAdapter API兼容性问题的规则信息匹配,检测设备可以确定setAdapter API兼容性问题对应的兼容性缺陷信息,setAdapter API兼容性问题对应的兼容性缺陷信息包括setAdapter API兼容性问题的标识和对应的特征API的特征数据作。
步骤S207、检测管理模块将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息。
本实施例中,在代码扫描模块的静态代码扫描结束后,检测管理模块将应用程序潜在的兼容性缺陷信息发送到分析平台。
分析平台上存储有兼容性问题库,兼容性问题库包括多个兼容性问题的描述信息。兼容性问题库可以包括已知的所有兼容性问题的描述信息。其中兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息。
分析平台接收到检测设备发送的应用程序潜在的兼容性缺陷信息之后,可以根据兼容性缺陷信息中的兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并可以进一步对兼容性问题的描述信息进行展示。
本发明实施例代码扫描模块以依赖包的方式集成在应用程序中,并在应用程序中增加作为检测管理模块的插件,检测管理模块可以获取用户指定的工程构建信息,检测设备可以根据不同工程构建信息生成不同的检测任务(task),针对用户指定的一个工程构建信息,选择执行对应的检测任务进行兼容性问题检测,从而大大缩短了单次检测时间;检测管理模块还可以将代码扫描模块的扫描结果自动发送到分析平台,代码扫描模块通过插件接入应用程序,后续可以通过插件升级的方式进行检测管理模块和代码扫描模块的升级,便于应用程序集成和日后检测工具升级,具有更高的实用性和可维护性。
实施例三
图3为本发明实施例三提供的兼容性问题检测方法流程图。本实施例中的方法应用分析平台,该分析平台可以是服务器等计算机设备。如图3所示,该方法具体步骤如下:
步骤S301、分析平台建立兼容性问题库,兼容性问题库包括多个兼容性问题的描述信息。
兼容性问题库可以包括已知的所有兼容性问题的描述信息。其中兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息。
关联对象至少包括与兼容性问题相关联的ROM、API级别、API类型和机型。
另外,兼容性问题的描述信息还可以包括问题名称、问题标签、注意事项、使用说明、使用建议、推荐测试机型等其他用于详细描述兼容性问题的信息,本实施例对于兼容性问题的描述信息的具体内容不做具体限定。
例如,兼容性问题库中的兼容性问题的描述信息可以如下表1所示:
表1
步骤S302、分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。
检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树;获取兼容性问题的规则信息,根据规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台。
步骤S303、分析平台根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息。
本实施例中,与兼容性缺陷信息对应的兼容性问题也就是应用程序潜在的兼容性问题。例如,应用程序应用于某些机型时会出现这样的兼容性问题。
具体的,分析平台可以将应用程序潜在的兼容性问题的所有的描述信息进行显示,或者可以对部分描述信息进行显示,本实施例此处对于兼容性问题信息展示的具体形式和内容不做具体限定。
可选的,分析平台还可以统计当前的应用程序使用最多的机型,并结合应用程序潜在的兼容性问题出现的机型,显示推荐测试机型,推荐测试机型是应用程序潜在的兼容性问题出现的机型中应用程序使用最多的一个或者几个机型,并可以将推荐测试机型按照应用程序使用量从多到少的顺序排序后显示。
本发明实施例通过分析平台对根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,从而可以将检测到应用程序潜在的兼容性问题的规则信息、关联对象的信息和修复建议信息灯描述信息展示给用户,从而向用户提供参考,以便于用户有针对性的进行进一步的检测,提到了兼容性测试效率,降低了兼容性测试成本。
实施例四
在上述实施例三的基础上,本实施例中,兼容性缺陷信息还包括兼容性问题的特征API的特征数据,特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值。
本实施例中,分析平台根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,具体可以采用如下方式实现:
分析平台根据兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定兼容性问题的问题代码位置;分析平台显示兼容性问题的描述信息和问题代码位置。
其中,兼容性问题的问题代码位置可以是特征API的特征数据中的代码位置,或者也可以是特征API的特征数据中的API被调用类、API所属类、API所属方法等,本实施例此处不做具体限定。
可选的,分析平台还可以将应用程序潜在的兼容性问题的特征API的特征数据全部或者部分地显示,以便于用于查找对应的API。
可选的,分析平台还可以对应用程序潜在的兼容性问题的种类和数量进行统计,并将统计到的应用程序潜在的兼容性问题的种类和数量进行显示,以便于用户对同一类型的兼容性问题进行集中处理,还可以对数量较多的兼容性问题进行优先处理。
本发明实施例通过分析平台根据兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定兼容性问题的问题代码位置;分析平台显示兼容性问题的描述信息和问题代码位置,将兼容性问题对应的问题代码位置进行显示,以便于用户定位和处理该兼容性问题。
实施例五
图4为本发明实施例五提供的兼容性问题检测装置的结构示意图。本发明实施例提供的兼容性问题检测装置可以执行兼容性问题检测方法实施例提供的处理流程。如图4所示,该装置40包括:检测管理模块401和代码扫描模块402。
具体地,检测管理模块401用于检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树。
代码扫描模块402用于检测设备获取兼容性问题的规则信息,根据规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。
检测管理模块401还用于检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息。
本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树;根据兼容性问题的规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识;检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,无需在真机平台上进行测试,通静态代码扫描即可实现对应用程序的兼容性测试,提到了兼容性测试效率,降低了兼容性测试成本。
实施例六
在上述实施例五的基础上,本实施例中,检测管理模块为接入应用程序的插件。代码扫描模块以依赖包的方式集成在应用程序中。
可选的,检测管理模块还用于:
检测设备获取用户指定的工程构建信息,工程构建信息至少包括:构建类型和渠道。
相应地,代码扫描模块还用于:
根据工程构建信息对应用程序进行静态代码扫描,得到应用程序的抽象语法树。
可选的,代码扫描模块还用于:
检测设备根据兼容性问题的规则信息,确定兼容性问题对应的特征API和待扫描的节点类型;检测设备对抽象语法树中的待扫描的节点类型对应的节点对象进行扫描,记录特征API的特征数据,特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;检测设备确定规则信息与特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题的标识和特征API的特征数据。
其中,特征API至少包括:调用API特征字符串、布局文件特征字符串和清单文件特征字符串。
待扫描的节点类型至少包括:方法调用节点、表达式节点和资源文件引用节点。
本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。
本发明实施例代码扫描模块以依赖包的方式集成在应用程序中,并在应用程序中增加作为检测管理模块的插件,检测管理模块可以获取用户指定的工程构建信息,检测设备可以根据不同工程构建信息生成不同的检测任务(task),针对用户指定的一个工程构建信息,选择执行对应的检测任务进行兼容性问题检测,从而大大缩短了单次检测时间;检测管理模块还可以将代码扫描模块的扫描结果自动发送到分析平台,代码扫描模块通过插件接入应用程序,后续可以通过插件升级的方式进行检测管理模块和代码扫描模块的升级,便于应用程序集成和日后检测工具升级,具有更高的实用性和可维护性。
实施例七
图5为本发明实施例七提供的兼容性问题检测装置的结构示意图。本发明实施例提供的兼容性问题检测装置可以执行兼容性问题检测方法实施例提供的处理流程。如图5所示,该装置50包括:问题库建立模块501,接收模块502和处理模块503。
具体的,问题库建立模块501用于分析平台建立兼容性问题库,兼容性问题库包括多个兼容性问题的描述信息。
接收模块502用于分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识。
处理模块503用于分析平台根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息。
本发明实施例提供的装置可以具体用于执行上述实施例三所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过分析平台对根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,从而可以将检测到应用程序潜在的兼容性问题的规则信息、关联对象的信息和修复建议信息灯描述信息展示给用户,从而向用户提供参考,以便于用户有针对性的进行进一步的检测,提到了兼容性测试效率,降低了兼容性测试成本。
实施例八
在上述实施例七的基础上,本实施例中,兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息。
关联对象至少包括与兼容性问题相关联的ROM、API级别、API类型和机型。
兼容性缺陷信息还包括兼容性问题的特征API的特征数据,特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值。
处理模块还用于:
分析平台根据兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定兼容性问题的问题代码位置;分析平台显示兼容性问题的描述信息和问题代码位置。
本发明实施例提供的装置可以具体用于执行上述实施例四所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过分析平台根据兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定兼容性问题的问题代码位置;分析平台显示兼容性问题的描述信息和问题代码位置,将兼容性问题对应的问题代码位置进行显示,以便于用户定位和处理该兼容性问题。
实施例九
图6为本发明实施例九提供的兼容性问题检测设备的结构示意图。如图6所示,该设备60包括:处理器601,存储器602,以及存储在存储器602上并可由处理器601执行的计算机程序。
处理器601在执行存储在存储器602上的计算机程序时实现上述实施例一或者实施例二所提供的兼容性问题检测方法。
本发明实施例通过检测设备在接收到对应用程序的兼容性检测指令时,对应用程序进行静态代码扫描,得到应用程序的抽象语法树;根据兼容性问题的规则信息对抽象语法树中的节点对象进行扫描,得到应用程序潜在的兼容性缺陷信息,兼容性缺陷信息至少包括兼容性问题标识;检测设备将应用程序潜在的兼容性缺陷信息发送到分析平台,以使分析平台确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,无需在真机平台上进行测试,通静态代码扫描即可实现对应用程序的兼容性测试,提到了兼容性测试效率,降低了兼容性测试成本。
实施例十
图7为本发明实施例十提供的分析平台的结构示意图。如图7所示,该分析平台70包括:处理器701,存储器702,以及存储在存储器702上并可由处理器701执行的计算机程序。
处理器701在执行存储在存储器702上的计算机程序时实现上述实施例三或者实施例四所提供的兼容性问题检测方法。
本发明实施例通过分析平台对根据兼容性问题标识,确定兼容性问题库中与兼容性缺陷信息对应的兼容性问题,并展示与兼容性缺陷信息对应的兼容性问题的描述信息,从而可以将检测到应用程序潜在的兼容性问题的规则信息、关联对象的信息和修复建议信息灯描述信息展示给用户,从而向用户提供参考,以便于用户有针对性的进行进一步的检测,提到了兼容性测试效率,降低了兼容性测试成本。
另外,本发明实施例还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一或者实施例二提供的兼容性问题检测方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例三或者实施例四提供的兼容性问题检测方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。

Claims (22)

1.一种兼容性问题检测方法,其特征在于,包括:
检测设备在接收到对应用程序的兼容性检测指令时,对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;
检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
检测设备将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
2.根据权利要求1所述的方法,其特征在于,所述检测设备包括检测管理模块和代码扫描模块,
所述检测管理模块用于:接收所述兼容性检测指令;
所述代码扫描模块用于:对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息;
所述检测管理模块还用于将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台根据兼容性问题库获取所述兼容性缺陷信息对应的兼容性问题。
3.根据权利要求2所述的方法,其特征在于,所述检测管理模块为接入所述应用程序的插件。
4.根据权利要求2所述的方法,其特征在于,所述代码扫描模块以依赖包的方式集成在所述应用程序中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述检测设备对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树之前,还包括:
所述检测设备获取用户指定的工程构建信息,所述工程构建信息至少包括:构建类型和渠道;
相应地,所述检测设备对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树,包括:
根据所述工程构建信息对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树。
6.根据权利要求1所述的方法,其特征在于,所述检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,包括:
所述检测设备根据所述兼容性问题的规则信息,确定所述兼容性问题对应的特征API和待扫描的节点类型;
所述检测设备对所述抽象语法树中的所述待扫描的节点类型对应的节点对象进行扫描,记录所述特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
所述检测设备确定所述规则信息与所述特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息,所述兼容性缺陷信息至少包括所述兼容性问题的标识和所述特征API的特征数据。
7.根据权利要求6所述的方法,其特征在于,所述特征API至少包括:调用API特征字符串、布局文件特征字符串和清单文件特征字符串;
所述待扫描的节点类型至少包括:方法调用节点、表达式节点和资源文件引用节点。
8.一种兼容性问题检测方法,其特征在于,包括:
分析平台建立兼容性问题库,所述兼容性问题库包括多个兼容性问题的描述信息;
分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
9.根据权利要求8所述的方法,其特征在于,所述兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息;
所述关联对象至少包括与所述兼容性问题相关联的ROM、API级别、API类型和机型。
10.根据权利要求8所述的方法,其特征在于,所述兼容性缺陷信息还包括兼容性问题的特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
相应地,所述分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息,包括:
所述分析平台根据所述兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定所述兼容性问题的问题代码位置;
所述分析平台显示所述兼容性问题的描述信息和问题代码位置。
11.一种兼容性问题检测装置,其特征在于,包括:
检测管理模块,用于检测设备在接收到对应用程序的兼容性检测指令时,对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;
代码扫描模块,用于检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
所述检测管理模块,还用于检测设备将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
12.根据权利要求11所述的装置,其特征在于,所述检测管理模块为接入所述应用程序的插件。
13.根据权利要求11所述的装置,其特征在于,所述代码扫描模块以依赖包的方式集成在所述应用程序中。
14.根据权利要求11-13任一项所述的装置,其特征在于,所述检测管理模块还用于:
所述检测设备获取用户指定的工程构建信息,所述工程构建信息至少包括:构建类型和渠道;
相应地,所述代码扫描模块还用于:
根据所述工程构建信息对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树。
15.根据权利要求11所述的装置,其特征在于,所述代码扫描模块还用于:
所述检测设备根据所述兼容性问题的规则信息,确定所述兼容性问题对应的特征API和待扫描的节点类型;
所述检测设备对所述抽象语法树中的所述待扫描的节点类型对应的节点对象进行扫描,记录所述特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
所述检测设备确定所述规则信息与所述特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息,所述兼容性缺陷信息至少包括所述兼容性问题的标识和所述特征API的特征数据。
16.一种兼容性问题检测装置,其特征在于,包括:
问题库建立模块,用于分析平台建立兼容性问题库,所述兼容性问题库包括多个兼容性问题的描述信息;
接收模块,用于分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
处理模块,用于分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
17.根据权利要求16所述的装置,其特征在于,所述兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息;
所述关联对象至少包括与所述兼容性问题相关联的ROM、API级别、API类型和机型。
18.根据权利要求16所述的装置,其特征在于,所述兼容性缺陷信息还包括兼容性问题的特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
所述处理模块还用于:
所述分析平台根据所述兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定所述兼容性问题的问题代码位置;
所述分析平台显示所述兼容性问题的描述信息和问题代码位置。
19.一种兼容性问题检测设备,其特征在于,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
20.一种分析平台,其特征在于,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现如权利要求8-10中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,存储有计算机程序,
所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,存储有计算机程序,
所述计算机程序被处理器执行时实现如权利要求8-10中任一项所述的方法。
CN201810707991.5A 2018-07-02 2018-07-02 兼容性问题检测方法、装置及设备 Active CN108920370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810707991.5A CN108920370B (zh) 2018-07-02 2018-07-02 兼容性问题检测方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810707991.5A CN108920370B (zh) 2018-07-02 2018-07-02 兼容性问题检测方法、装置及设备

Publications (2)

Publication Number Publication Date
CN108920370A true CN108920370A (zh) 2018-11-30
CN108920370B CN108920370B (zh) 2022-08-16

Family

ID=64423526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810707991.5A Active CN108920370B (zh) 2018-07-02 2018-07-02 兼容性问题检测方法、装置及设备

Country Status (1)

Country Link
CN (1) CN108920370B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710531A (zh) * 2018-12-29 2019-05-03 北京奇安信科技有限公司 应用程序的审计方法、装置、系统、电子设备及存储介质
CN110716866A (zh) * 2019-09-06 2020-01-21 中国平安财产保险股份有限公司 代码质量扫描方法、装置、计算机设备及存储介质
CN112270110A (zh) * 2020-11-16 2021-01-26 国家工业信息安全发展研究中心 面向工业互联网平台组件的兼容性测试方法及系统
CN112748930A (zh) * 2021-01-19 2021-05-04 广州虎牙科技有限公司 编译检测方法、装置、设备及存储介质
CN112988561A (zh) * 2019-12-18 2021-06-18 腾讯科技(深圳)有限公司 检测显示配置代码的方法、装置、服务器和存储介质
CN113515465A (zh) * 2021-09-14 2021-10-19 广州卓远虚拟现实科技有限公司 基于区块链技术的软件兼容性测试方法及系统
CN113934642A (zh) * 2021-11-19 2022-01-14 四川启睿克科技有限公司 一种基于动静态结合的软件兼容性测试方法
CN115658374A (zh) * 2022-12-23 2023-01-31 深圳市明源云科技有限公司 平台兼容性问题修复方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217302A1 (en) * 2008-02-27 2009-08-27 Accenture Global Services Gmbh Test script transformation architecture
US7836346B1 (en) * 2007-06-11 2010-11-16 Oracle America, Inc. Method and system for analyzing software test results
CN102073589A (zh) * 2010-12-29 2011-05-25 北京邮电大学 一种基于代码静态分析的数据竞争检测方法及系统
US20110302347A1 (en) * 2010-06-04 2011-12-08 Apple Inc. Class-Based Compatibility Testing and Notification
CN103440337A (zh) * 2013-09-09 2013-12-11 百度在线网络技术(北京)有限公司 Api兼容性扫描方法和api兼容性扫描装置
CN103853659A (zh) * 2012-12-06 2014-06-11 阿里巴巴集团控股有限公司 浏览器兼容性的检测方法及装置
CN104156307A (zh) * 2014-07-03 2014-11-19 安徽景行信息科技有限公司 一种浏览器兼容性检测方法和系统
CN105843614A (zh) * 2016-03-22 2016-08-10 东南大学 一种面向软件演化的代码可兼容性评估方法
US20160335168A1 (en) * 2015-05-15 2016-11-17 Microsoft Technology Licensing, Llc Real-time analysis of application programming interfaces

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836346B1 (en) * 2007-06-11 2010-11-16 Oracle America, Inc. Method and system for analyzing software test results
US20090217302A1 (en) * 2008-02-27 2009-08-27 Accenture Global Services Gmbh Test script transformation architecture
US20110302347A1 (en) * 2010-06-04 2011-12-08 Apple Inc. Class-Based Compatibility Testing and Notification
CN102073589A (zh) * 2010-12-29 2011-05-25 北京邮电大学 一种基于代码静态分析的数据竞争检测方法及系统
CN103853659A (zh) * 2012-12-06 2014-06-11 阿里巴巴集团控股有限公司 浏览器兼容性的检测方法及装置
CN103440337A (zh) * 2013-09-09 2013-12-11 百度在线网络技术(北京)有限公司 Api兼容性扫描方法和api兼容性扫描装置
CN104156307A (zh) * 2014-07-03 2014-11-19 安徽景行信息科技有限公司 一种浏览器兼容性检测方法和系统
US20160335168A1 (en) * 2015-05-15 2016-11-17 Microsoft Technology Licensing, Llc Real-time analysis of application programming interfaces
CN105843614A (zh) * 2016-03-22 2016-08-10 东南大学 一种面向软件演化的代码可兼容性评估方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
程勇 等: "针对JavaScript浏览器兼容性的变异测试方法", 《计算机应用》 *
高传平 等: "基于抽象语法树的代码静态自动测试方法研究", 《北京化工大学学报(自然科学版)》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710531A (zh) * 2018-12-29 2019-05-03 北京奇安信科技有限公司 应用程序的审计方法、装置、系统、电子设备及存储介质
CN110716866A (zh) * 2019-09-06 2020-01-21 中国平安财产保险股份有限公司 代码质量扫描方法、装置、计算机设备及存储介质
CN112988561A (zh) * 2019-12-18 2021-06-18 腾讯科技(深圳)有限公司 检测显示配置代码的方法、装置、服务器和存储介质
CN112988561B (zh) * 2019-12-18 2023-09-08 腾讯科技(深圳)有限公司 检测显示配置代码的方法、装置、服务器和存储介质
CN112270110A (zh) * 2020-11-16 2021-01-26 国家工业信息安全发展研究中心 面向工业互联网平台组件的兼容性测试方法及系统
CN112748930A (zh) * 2021-01-19 2021-05-04 广州虎牙科技有限公司 编译检测方法、装置、设备及存储介质
CN112748930B (zh) * 2021-01-19 2024-03-01 广州虎牙科技有限公司 编译检测方法、装置、设备及存储介质
CN113515465A (zh) * 2021-09-14 2021-10-19 广州卓远虚拟现实科技有限公司 基于区块链技术的软件兼容性测试方法及系统
CN113515465B (zh) * 2021-09-14 2021-12-07 广州卓远虚拟现实科技有限公司 基于区块链技术的软件兼容性测试方法及系统
CN113934642A (zh) * 2021-11-19 2022-01-14 四川启睿克科技有限公司 一种基于动静态结合的软件兼容性测试方法
CN113934642B (zh) * 2021-11-19 2024-05-14 四川启睿克科技有限公司 一种基于动静态结合的软件兼容性测试方法
CN115658374A (zh) * 2022-12-23 2023-01-31 深圳市明源云科技有限公司 平台兼容性问题修复方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN108920370B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN108920370A (zh) 兼容性问题检测方法、装置及设备
CN109117363B (zh) 一种测试用例生成方法、装置及服务器
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN105302710B (zh) 一种确定需要回归测试的测试用例的方法和装置
CN109302522A (zh) 测试方法、装置以及计算机系统和介质
CN109360550A (zh) 语音交互系统的测试方法、装置、设备和存储介质
CN109726108B (zh) 基于模拟数据的前端代码测试方法、装置、系统和介质
CN110147317A (zh) 代码测试方法及装置、电子设备和存储介质
WO2019169723A1 (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
CN107832217A (zh) 一种自动化测试方法及装置
CN108595187A (zh) 安卓安装包集成软件开发工具包的法、装置及存储介质
CN113489593B (zh) Json报文的核对方法和json报文的核对装置
CN114741070A (zh) 代码生成方法、装置、电子设备及存储介质
CN109840210A (zh) 一种测试方法、装置及电子设备
CN108733557A (zh) 一种测试点生成方法及装置
CN108958890A (zh) 容器镜像检测方法、装置及电子设备
CN112069052A (zh) 一种异常对象检测方法、装置、设备及存储介质
CN103955425A (zh) 网页web探索测试装置及方法
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN110659204B (zh) 一种代码检测方法、设备及介质
CN109324973A (zh) 一种软件测试方法、装置、设备及计算机可读存储介质
CN108959294A (zh) 一种访问搜索引擎的方法和装置
CN115292178A (zh) 测试数据搜索方法、装置、存储介质以及终端
CN110297754A (zh) 一种测试信息反馈方法及系统
CN111078548B (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