一种软件兼容性检测方法、智能终端及存储介质技术

技术编号:26030968 阅读:38 留言:0更新日期:2020-10-23 21:08
本发明专利技术公开了一种软件兼容性检测方法、智能终端及存储介质,所述方法包括:获取待检测的原始软件,并对所述原始软件进行埋点的预处理,生成测试软件;控制所述测试软件运行预先生成的常规测试用例,并生成各个所述常规测试用例对应的运行日志;根据所述运行日志中是否存在目标API,对所述常规测试用例进行筛选和加工,生成兼容性测试用例;根据所述兼容性测试用例,对所述测试软件进行兼容性检测。本发明专利技术能够有效提高软件的兼容性检测效率。

【技术实现步骤摘要】
一种软件兼容性检测方法、智能终端及存储介质
本专利技术涉及计算机信息
,尤其涉及一种软件兼容性检测方法、智能终端及存储介质。
技术介绍
安卓系统是基于Linux内核研发的移动操作系统,由于它的开源性,大量的厂商在原生的安卓系统基础上开发不同的定制版本,以吸引客户。而开发定制版本会修改底层的系统,因此导致市面上安卓系统碎片化严重。市面上有来自1200多个制造商的24000多种不同设备。此外,随着安卓系统的更新换代,市场上常见运行的应用程序编程接口(ApplicationProgrammingInterface,API)版本有很多种,而且不同的软件调用的API数量巨大,统计发现仅仅是API版本28的软件开发工具包(SoftwareDevelopmentKit,SDK)的源代码中就有220000多个方法,而开发人员在开发一款新软件时,为测试该软件是否在客户的终端正常运行,必须事先在各个不同的版本的系统和终端上进行检测,并验证是否能够正常调用API和工作正常。为解决这一技术问题,研究人员推出了许多用于静态分析软件兼容性的软件,例如FicFinder和CiD,但由于静态分析的局限性,在检测过程中会出现许多错误报警。因此又有人提出了一种动态检测方案,称之为自动化兼容性测试,通过开发的软件在不同设备和不同版本的应用程序编程接口(ApplicationProgrammingInterface,API)重复执行测试,也就是重放,以识别不一致的地方,从而实现对该软件兼容性的测试。但是由于前文所述的设备型号、API版本数量和需要测试的API调用点的数量非常庞大,因此目前的动态检测方案的实用性较差,在真正检测时会消耗大量的人力、时间和金钱。
技术实现思路
本专利技术的主要目的在于提供一种软件兼容性检测方法、智能终端及存储介质,旨在解决现有技术中安卓软件兼容性检测时检测效率低问题。为实现上述目的,本专利技术提供一种软件兼容性检测方法,所述软件兼容性检测方法包括如下步骤:获取待检测的原始软件,并对所述原始软件进行埋点的预处理,生成测试软件;控制所述测试软件运行预先生成的常规测试用例,并生成各个所述常规测试用例对应的运行日志;根据所述运行日志中是否存在目标API,对所述常规测试用例进行筛选和加工,生成兼容性测试用例;根据所述兼容性测试用例,对所述测试软件进行兼容性检测。可选地,所述的软件兼容性检测方法,其中,所述获取待检测的原始软件,并对所述原始软件进行预处理,生成测试软件,具体包括:获取待检测的原始软件;对所述原始软件中的目标API进行插桩,生成中间软件;对所述中间软件进行签名,生成测试软件。可选地,所述的软件兼容性检测方法,其中,所述根据所述运行日志中是否存在目标API,对所述常规测试用例进行筛选和加工,生成兼容性测试用例,具体包括:根据所述运行日志中是否存在目标API,将包含所述目标API的运行日志对应的常规测试用例作为候选测试用例;将所述候选测试用例剪切,生成中间测试用例;将所述中间测试用例添加用于获取屏幕界面的记录序列,生成包含所述目标API的兼容性测试用例。可选地,所述的软件兼容性检测方法,其中,所述根据所述兼容性测试用例,对所述测试软件进行兼容性检测,具体包括:控制所述测试软件在预先设定的测试设备池中运行所述兼容性测试用例;基于所述记录序列,获取同一所述兼容性测试用例在所述测试设备池中的不同设备运行时的目标屏幕界面;根据所述目标屏幕界面,确定所述测试软件对应的兼容性信息。可选地,所述的软件兼容性检测方法,其中,所述兼容性信息包括所述原始软件是否存在兼容性问题及引发所述兼容性问题的原因,所述根据所述目标屏幕界面,确定所述测试软件对应的兼容性信息,具体包括:根据所述目标屏幕界面,判断所述目标屏幕界面是否存在崩溃或闪退;若所述目标屏幕界面存在崩溃或闪退,则确定所述原始软件存在兼容性问题,且存在崩溃或闪退的目标屏幕界面所对应的目标API为引发兼容性问题的原因;若所述目标屏幕界面不存在崩溃或闪退,则根据所述目标屏幕界面之间的差异,确定所述原始软件对应的兼容性信息。可选地,所述的软件兼容性检测方法,其中,所述若所述目标屏幕界面不存在崩溃或闪退,则根据所述目标屏幕界面之间的差异,确定所述原始软件对应的兼容性信息,具体包括:计算各个所述目标屏幕界面之间的相似度值;根据所述相似度值,判断所述目标屏幕界面中是否存在满足预设的差异判断规则的差异屏幕界面;若是,则确定所述原始软件存在兼容性问题,且所述差异屏幕界面所对应的目标API为引发兼容性问题的原因。可选地,所述的软件兼容性检测方法,其中,所述目标API包括第一目标API和与第二目标API,所述兼容性测试用例包括第一兼容性测试用例和第二兼容性测试用例,其中,所述第一目标API为与厂商定制有关的API,所述第二目标API为与安卓系统演化有关的API,所述第一兼容性测试用例对应的目标API为第一目标API,所述第二兼容性测试用例对应的目标API为第二目标API。可选地,所述的软件兼容性检测方法,其中,所述基于所述记录序列,获取同一所述兼容性测试用例在所述测试设备池中的不同设备运行时的目标屏幕界面,具体包括:当所述兼容性测试用例为所述第一兼容性测试用例时,基于所述记录序列,获取同一所述第一兼容性测试用例在所述测试设备池中的第一设备池中运行时的第一目标界面,其中,所述第一设备池包含多种厂商定制的设备;当所述兼容性测试用例为所述第二兼容性测试用例时,基于所述记录序列,获取同一所述第二兼容性测试用例在所述测试设备池中的第二设备池中运行时的第二目标界面,其中,所述第二设备池包含多种版本API的设备。此外,为实现上述目的,本专利技术还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件兼容性检测程序,所述软件兼容性检测程序被所述处理器执行时实现如上所述的软件兼容性检测方法的步骤。此外,为实现上述目的,本专利技术还提供一种存储介质,其中,所述存储介质存储有软件兼容性检测程序,所述软件兼容性检测程序被处理器执行时实现如上所述的软件兼容性检测方法的步骤。本专利技术将API中与厂商定制和安卓平台演化有关的API作为目标API。对待检测的原始软件预处理,生成可记录运行日志的测试软件,然后控制测试软件运行常规测试用例,生成运行日志。由于测试软件在运行常规测试用例时,会触发或调用不同API,因此可根据运行日志中是否存在目标API,对常规测试用例进行筛选和加工,生成数量更少的兼容性测试用例,从而减少后续测试软件进行兼容性检测的耗时,提高检测效率。此外,本专利技术在对常规测试用例进行筛选和加工中,采用了修剪和添加纪录序列的方式。修剪是将常规测试用例中触发目标API之后的序列删除,从而缩短了兼容性测试用例的长度,提高了检测效率,添加纪录序列是用于获取触发本文档来自技高网
...

【技术保护点】
1.一种软件兼容性检测方法,其特征在于,所述软件兼容性检测方法包括:/n获取待检测的原始软件,并对所述原始软件进行埋点的预处理,生成测试软件;/n控制所述测试软件运行预先生成的常规测试用例,并生成各个所述常规测试用例对应的运行日志;/n根据所述运行日志中是否存在目标API,对所述常规测试用例进行筛选和加工,生成兼容性测试用例;/n根据所述兼容性测试用例,对所述测试软件进行兼容性检测。/n

【技术特征摘要】
1.一种软件兼容性检测方法,其特征在于,所述软件兼容性检测方法包括:
获取待检测的原始软件,并对所述原始软件进行埋点的预处理,生成测试软件;
控制所述测试软件运行预先生成的常规测试用例,并生成各个所述常规测试用例对应的运行日志;
根据所述运行日志中是否存在目标API,对所述常规测试用例进行筛选和加工,生成兼容性测试用例;
根据所述兼容性测试用例,对所述测试软件进行兼容性检测。


2.根据权利要求1所述的软件兼容性检测方法,其特征在于,所述获取待检测的原始软件,并对所述原始软件进行预处理,生成测试软件,具体包括:
获取待检测的原始软件;
对所述原始软件中的目标API进行插桩,生成中间软件;
对所述中间软件进行签名,生成测试软件。


3.根据权利要求1所述的软件兼容性检测方法,其特征在于,所述根据所述运行日志中是否存在目标API,对所述常规测试用例进行筛选和加工,生成兼容性测试用例,具体包括:
根据所述运行日志中是否存在目标API,将包含所述目标API的运行日志对应的常规测试用例作为候选测试用例;
将所述候选测试用例剪切,生成中间测试用例;
将所述中间测试用例添加用于获取屏幕界面的记录序列,生成包含所述目标API的兼容性测试用例。


4.根据权利要求3所述的软件兼容性检测方法,其特征在于,所述根据所述兼容性测试用例,对所述测试软件进行兼容性检测,具体包括:
控制所述测试软件在预先设定的测试设备池中运行所述兼容性测试用例;
基于所述记录序列,获取同一所述兼容性测试用例在所述测试设备池中的不同设备运行时的目标屏幕界面;
根据所述目标屏幕界面,确定所述测试软件对应的兼容性信息。


5.根据权利要求4所述的软件兼容性检测方法,其特征在于,所述兼容性信息包括所述原始软件是否存在兼容性问题及引发所述兼容性问题的原因,所述根据所述目标屏幕界面,确定所述测试软件对应的兼容性信息,具体包括:
根据所述目标屏幕界面,判断所述目标屏幕界面是否存在崩溃或闪退;
若所述目标屏幕界面存在崩溃或闪退,则确定所述原始软件存在兼容性问题,且存在崩溃或闪退的目标屏幕界面所对应的目标API为引发兼容性问题的原因;
若所述目...

【专利技术属性】
技术研发人员:李琳琳刘烨庞卢之睿余添诚张艺凡
申请(专利权)人:南方科技大学
类型:发明
国别省市:广东;44

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

1