用于应用程序的封装方法、测试方法、电子设备及存储介质技术

技术编号:37453945 阅读:16 留言:0更新日期:2023-05-06 09:25
本申请公开一种用于应用程序的封装方法、测试方法、电子设备及存储介质。该用于应用程序的封装方法包括:获取所述应用程序的原始的第一应用程序代码;通过AOP在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码;编译已插入所述异常激发代码的第二应用程序代码以得到用于测试的应用程序安装包。这样的应用程序封装及其测试解决方案能够以对应用程序原始代码干扰最小化的方式注入异常激发代码,增大了异常问题出现的概率,从而促成异常问题更早暴露,以免影响用户的使用体验。该解决方案的可配置性强、可迁移性高,显著降低配置、迁移难度并节省配置、迁移成本,而且还避免因注入异常激发代码而引起其他的潜在问题。其他的潜在问题。其他的潜在问题。

【技术实现步骤摘要】
用于应用程序的封装方法、测试方法、电子设备及存储介质


[0001]本申请涉及计算机
,特别是涉及一种用于应用程序的封装方法、测试方法、电子设备及存储介质。

技术介绍

[0002]随着计算机技术、尤其是移动终端技术的发展,出现了大量的应用程序。这样的应用程序在交付后可能会产生各种不同的问题。为此,在应用程序交付正式使用之前,应用程序提供商会进行大量的测试,从而尽可能避免应用程序在被用户使用时出现异常或错误等问题。
[0003]当前,提出对于安装后的应用程序进行人工测试或自动化测试。然而,对于人工测试而言,一方面受限于终端机型、网络环境等外界因素,另一方面需要投入大量的测试人员成本并花费大量的测试时间,而无法稳定地、可追溯地触发这些异常问题,降低了开发人员在发布应用程序之前将其修复的可能性。对于自动化测试而言,通常需要针对性地铺设自动化测试用例,它对于相对固定的用户界面布局具有较强的针对性,但是在非标准用户界面的设计和布局、例如特定的视图的插入等情况,难以准确识别、捕获这些异常问题。尤其是针对边缘场景下出现的异常,无论是人工测试或自动化测试都难以准确地识别、捕获或稳定地重现。
[0004]因此,希望提供针对应用程序测试的解决方案,它能够在测试时有效提升识别应用程序异常的可能性,从而使得异常问题暴露前置于测试阶段,降低正常使用的用户遇到异常问题的概率。
[0005]本
技术介绍
描述的内容仅为了便于了解本领域的相关技术,不视作对现有技术的承认。

技术实现思路

[0006]基于此,有必要针对上述技术问题,提供一种用于应用程序的封装方法、测试方法、电子设备及存储介质,其能够以对应用程序原始代码干扰最小化的方式注入异常激发代码,增大了测试过程中异常问题出现的概率,从而促成异常问题更早暴露,以免影响用户的使用体验。
[0007]在第一方面,提供一种用于应用程序的封装方法,其包括:
[0008]获取所述应用程序的原始的第一应用程序代码;
[0009]通过面向切面编程(AOP)在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码;
[0010]编译已插入所述异常激发代码的第二应用程序代码以得到用于测试的应用程序安装包。
[0011]在一些实施例中,所述通过面向切面编程(AOP)在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码,包括:
[0012]利用ASM框架在所述多个切面插入所述异常激发代码。
[0013]在一些实施例中,所述异常激发代码用于增大给定的可视化控件出现异常的概率。
[0014]在一些实施例中,所述通过面向切面编程在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码,包括:
[0015]确定用于进行异常测试的可视化控件;
[0016]基于所确定的可视化控件,确定与所述可视化控件的异常测试关联的目标类;
[0017]基于所确定的可视化控件,确定与所述可视化控件的异常测试关联的目标类的目标函数;
[0018]基于所述异常,确定所述异常激发代码相对于所述目标函数的相对插入位置。
[0019]在一些实施例中,所述相对插入位置包括所述异常激发代码在所述目标函数之前、在所述目标函数之后和分别在所述目标函数之前和之后。
[0020]在一些实施例中,所述基于所述异常,确定所述异常激发代码相对于所述目标函数的相对插入位置,包括:
[0021]将用于随机生成延时的异常激发代码插入到目标函数之前,所述目标函数为与所述可视化控件向父控件传递尺寸信息相关联的函数。
[0022]在一些实施例中,所述目标类为所述可视化控件的父控件类,所述目标类的目标函数为所述父控件类的创建函数。
[0023]在一些实施例中,所述异常激发代码用于在被执行时基于随机种子生成随机延时。
[0024]在第二方面,提供一种用于应用程序的测试方法,其包括:
[0025]利用根据本申请任一实施例所述的用于应用程序的封装方法封装得到所述用于测试的应用程序安装包;
[0026]在终端中安装所述应用程序安装包以得到安装好的应用程序;
[0027]对安装好的应用程序进行测试,得到所述应用程序的测试结果。
[0028]在一些实施例中,所述对安装好的应用程序进行测试,包括:
[0029]在安装所述应用程序的终端执行一个或多个给定的人工测试动作。
[0030]在一些实施例中,所述对安装好的应用程序进行测试,包括:
[0031]由安装所述应用程序的终端加载并执行自动化测试脚本来自动执行一个或多个自动测试动作,其中所述自动化测试脚本中记载所述一个或多个自动化执行动作、执行时间、执行顺序。
[0032]在一些实施例中,所述对安装好的应用程序进行测试,包括:
[0033]所述对安装好的应用程序进行测试,包括:
[0034]触发所述可视化控件的创建;
[0035]响应于创建所述可视化控件的触发,通过类名查询在所述应用程序的所有类中筛选出所述目标类;
[0036]响应于创建所述可视化控件的触发,通过函数名查询在所述目标类中筛选出所述目标函数;
[0037]根据所述相对插入位置,相应地执行所述异常激发代码和所述目标类的目标函
数。
[0038]在进一步的实施例中,所述对安装好的应用程序进行测试,包括:
[0039]多次触发所述可视化控件的创建;
[0040]响应于创建所述可视化控件的每次触发,所述可视化控件向其父控件传递所述可视化控件的尺寸信息;
[0041]通过所述异常激发代码随机生成延时,从而随机地延迟或不延迟所述尺寸信息的传递;
[0042]所述父控件分配用于所述可视化控件的绘制空间;
[0043]基于所述绘制空间绘制所述可视化控件;
[0044]其中,在至少一部分创建所述可视化控件的触发中,所述异常激发代码随机生成的延时使得所述尺寸信息的传递在所述绘制空间的分配或所述可视化控件的绘制之后完成。
[0045]在第三方面,提供一种用于应用程序的封装装置,其包括:
[0046]获取单元,配置成获取所述应用程序的原始的第一应用程序代码;
[0047]插入单元,配置成通过面向切面编程在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码;
[0048]编译单元,配置成编译已插入所述异常激发代码的第二应用程序代码以得到用于测试的应用程序安装包。
[0049]在第四方面,提供一种用于应用程序的测试装置,其包括:
[0050]封装单元,配置成利用根据本申请任一实施例所述的用于应用程序的封装方法封装得到所述用于测试的应用程序安装包;
[0051]安装单元,配置成在终端中安装所述应用程序安装包以得到安装好的应用程序;
[0052]测试单元,配置成对安装好的应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于应用程序的封装方法,其特征在于,包括:获取所述应用程序的原始的第一应用程序代码;通过面向切面编程在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码;编译已插入所述异常激发代码的第二应用程序代码以得到用于测试的应用程序安装包。2.根据权利要求1所述的应用程序封装方法,其特征在于,所述通过面向切面编程在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码,包括:利用ASM框架在所述多个切面插入所述异常激发代码。3.根据权利要求1或2所述的用于应用程序的封装方法,其特征在于,所述异常激发代码用于增大给定的可视化控件出现异常的概率。4.根据权利要求3所述的用于应用程序的封装方法,其特征在于,所述通过面向切面编程在所述原始的第一程序代码的多个切面插入异常激发代码以得到第二应用程序代码,包括:确定用于进行异常测试的可视化控件;基于所确定的可视化控件,确定与所述可视化控件的异常测试关联的目标类;基于所确定的可视化控件,确定与所述可视化控件的异常测试关联的目标类的目标函数;基于所述异常,确定所述异常激发代码相对于所述目标函数的相对插入位置。5.根据权利要求4所述的用于应用程序的封装方法,其特征在于,所述相对插入位置包括所述异常激发代码在所述目标函数之前、在所述目标函数之后和分别在所述目标函数之前和之后。6.根据权利要求3所述的用于应用程序的封装方法,其特征在于,所述基于所述异常,确定所述异常激发代码相对于所述目标函数的相对插入位置,包括:将用于随机生成延时的异常激发代码插入到目标函数之前,所述目标函数为与所述可视化控件向父控件传递尺寸信息相关联的函数。7.根据权利要求6所述的用于应用程序的封装方法,其特征在于,所述目标类为所述可视化控件的父控件类,所述目标类的目标函数为所述父控件类的创建函数。8.根据权利要求6或7所述的用于应用程序的封装方法,其特征在于,所述异常激发代码用于在被执行时基于随机种子生成随机延时。9.一种用于应用程序的测试方法,其特征在于,包括:利用根据权利要求1至8中任一项所述的用于应用程序的封装方法封装得到所述用于测试的应用程序安装包;在终端中安装所述应用程序安装包以得到安...

【专利技术属性】
技术研发人员:曾彬
申请(专利权)人:腾讯音乐娱乐科技深圳有限公司
类型:发明
国别省市:

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

1