一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种移动应用程序自动化测试方法及系统与流程

2023-02-04 18:24:52 来源:中国专利 TAG:

技术特征:
1.一种移动应用程序自动化测试方法,其特征在于,包括:获取待测移动应用程序的业务交互流程图,并利用不同格式表示每个页面中表单的页面表单属性;所述页面表单属性包括输入属性、输出属性、业务流属性以及输入输出属性约束信息;所述输入属性包括输入的长度范围、字段以及正则表达式;所述输出属性包括对所述输入属性进行逻辑处理后的输出结果;所述输入输出属性约束信息包括输入流流向的方向以及对所述输入属性进行的逻辑处理;以多条状态-动作对序列表示所述业务交互流程图,并通过行为克隆利用监督学习算法从所述状态-动作对中学习不同状态下采用不同的动作分布;通过自动化测试工作获取所述待测移动应用程序当前页面的控件布局信息,对每个控件的控件布局信息进行编码,并将编码结果、所述业务交互流程图以及所述页面表单属性共同作为神经网络的输入,根据输出的策略执行当前状态下最高价值的控件对应的动作;所述控件布局信息包括控件相对位置、文本、可交互性以及类名信息;在执行过程中包括输入事件、随机事件以及系统事件;若执行的是输入事件,检索页面库中所述最高价值的控件的输入规则,生成启发式文本,执行动作后,按照所述状态-动作对序列的顺序进入下一状态;所述启发式文本包括正确文本以及错误文本;在所述下一状态下,根据所述业务流属性、所述输入输出属性约束信息以及页面新颖性给予奖励,并根据行为克隆结果在所述奖励中加入惩罚项;行为克隆结果为不同状态下采用不同的动作分布;当探索的状态-动作对达到设定数据后,随机抽取多个所述状态-动作对更新所述神经网络,返回步骤“以多条状态-动作对序列表示所述业务交互流程图,并通过行为克隆利用监督学习算法从所述状态-动作对中学习不同状态下采用不同的动作分布”,直到达到设定测试时长,结束测试并获取整个测试过程中的异常日志文件以及代码覆盖率;根据所述异常日志文件以及代码覆盖率评估所述待测移动应用程序的性能。2.根据权利要求1所述的移动应用程序自动化测试方法,其特征在于,所述以多条状态-动作对序列表示所述业务交互流程图,并通过行为克隆利用监督学习算法从所述状态-动作对中学习不同状态下采用不同的动作分布,之后还包括:通过adb命令以调试桥方式连接设备,对待测移动应用程序在源代码级别进行插桩,构建源代码生成apk文件并在所述设备中安装;所述设备为虚拟机或实体机。3.根据权利要求1所述的移动应用程序自动化测试方法,其特征在于,所述不同的动作分布为:其中,π
e
为业务属性的动作分布;e为专家expert的首字母,表示用户作为专家进行业务属性提取;a为动作;s为状态;d
e
为人为提取的业务属性。4.根据权利要求1所述的移动应用程序自动化测试方法,其特征在于,所述奖励为:其中,为奖励,s
t
为当前状态;a
t
为在当前状态s
t
下执行的动作;reward(s
t
,a
t
)为总奖励;d

θ
,(
·
|s
t
),π
e
(
·
|s
t
))为kl散度;π
e
(
·
|s
t
)为行为克隆神经网络学习到的动作概率分布;π
θ

(
·
|s
t
)为神经网络的分布;p为当前状态;|p|为当前状态涉及的业务逻辑的路径的数量;g(p)为当前页面已经测试过的逻辑路径。5.根据权利要求4所述的移动应用程序自动化测试方法,其特征在于,所述总奖励为:reward(s
t
,a
t
)=αreward1 βreward2 γreward3;其中,α为业务流属性校验奖励占总奖励中的比重;β为数据校验奖励占总奖励中的比重;γ为新颖性判定奖励占总奖励中的比重;reward1为页面的业务流属性校验奖励,unexplored
action
为在s
t
下执行动作a
t
后到达下一个状态中未执行的动作数量,total
action
为在s
t
下执行动作a
t
后到达下一个状态中拥有动作的总数量,s
t 1
为在s
t
下执行动作a
t
后到达的下一个状态,graph(s
t
,a
t
)表示在所述被测移动应用程序的业务流下,在s
t
下执行a
t
要到达的页面;reward2为页面的数据校验奖励,reward2为页面的数据校验奖励,expect_data为初始数据经过逻辑处理后期望得到的数据表示,raw
data
为初始数据,f(raw
data
)为经过业务逻辑处理后的数据;reward3为页面新颖性判定的奖励,)为经过业务逻辑处理后的数据;reward3为页面新颖性判定的奖励,total
simlartity
为控件位置和文本的综合相似度,frequence(s
t
,a
t
)为在s
t
下执行动作a
t
的次数。6.一种移动应用程序自动化测试系统,其特征在于,包括:业务交互流程图以及页面表单属性确定模块,用于获取待测移动应用程序的业务交互流程图,并利用不同格式表示每个页面中表单的页面表单属性;所述页面表单属性包括输入属性、输出属性、业务流属性以及输入输出属性约束信息;所述输入属性包括输入的长度范围、字段以及正则表达式;所述输出属性包括对所述输入属性进行逻辑处理后的输出结果;所述业务流属性包括当前页面和能从当前页面跳转到的其它页面;所述输入输出属性约束信息包括输入流流向的方向以及对所述输入属性进行的逻辑处理;行为克隆模块,用于以多条状态-动作对序列表示所述业务交互流程图,并通过行为克隆利用监督学习算法从所述状态-动作对中学习不同状态下采用不同的动作分布;强化学习模块,用于通过自动化测试工作获取所述待测移动应用程序当前页面的控件布局信息,对每个控件的控件布局信息进行编码,并将编码结果、所述业务交互流程图以及所述页面表单属性共同作为神经网络的输入,根据输出的策略执行当前状态下最高价值的控件对应的动作;所述控件布局信息包括控件相对位置、文本、可交互性以及类名信息;在执行过程中包括输入事件、随机事件以及系统事件;动作执行模块,用于若执行的是输入事件,检索页面库中所述最高价值的控件的输入规则,生成启发式文本,执行动作后,按照所述状态-动作对序列的顺序进入下一状态;所述启发式文本包括正确文本以及错误文本;奖励模块,用于在所述下一状态下,根据所述业务流属性、所述输入输出属性约束信息
以及页面新颖性给予奖励,并根据行为克隆结果在所述奖励中加入惩罚项;行为克隆结果为不同状态下采用不同的动作分布;神经网络更新模块,用于当探索的状态-动作对达到设定数据后,随机抽取多个所述状态-动作对更新所述神经网络,返回步骤“以多条状态-动作对序列表示所述业务交互流程图,并通过行为克隆利用监督学习算法从所述状态-动作对中学习不同状态下采用不同的动作分布”,直到达到设定测试时长,结束测试并获取整个测试过程中的异常日志文件以及代码覆盖率;性能评估模块,用于根据所述异常日志文件以及代码覆盖率评估所述待测移动应用程序的性能。7.根据权利要求6所述的移动应用程序自动化测试系统,其特征在于,还包括:安装模块,用于通过adb命令以调试桥方式连接设备,对待测移动应用程序在源代码级别进行插桩,构建源代码生成apk文件并在所述设备中安装;所述设备为虚拟机或实体机。8.根据权利要求6所述的移动应用程序自动化测试系统,其特征在于,所述不同的动作分布为:其中,π
e
为业务属性的动作分布;e为专家expert的首字母,表示用户作为专家进行业务属性提取;a为动作;s为状态;d
e
为人为提取的业务属性。9.根据权利要求6所述的移动应用程序自动化测试系统,其特征在于,所述奖励为:其中,为奖励,s
t
为当前状态;a
t
为当前状态下执行的动作;reward(s
t
,a
t
)为总奖励;d(π
θ

(
·
|s
t
),π
e
(
·
|s
t
))为kl散度;π
e
(
·
|s
t
)为行为克隆神经网络学习到的动作概率分布,s
t
为当前状态;π
θ

(
·
|s
t
)为神经网络的分布;p为当前状态;|p|为当前状态涉及的业务逻辑的路径的数量;g(p)为当前页面已经测试过的逻辑路径。10.根据权利要求9所述的移动应用程序自动化测试系统,其特征在于,所述总奖励为:reward(s
t
,a
t
)=αreward1 βreward2 γreward3;其中,α为业务流属性校验奖励占总奖励中的比重;β为数据校验奖励占总奖励中的比重;γ为新颖性判定奖励占总奖励中的比重;reward1为页面的业务流属性校验奖励,unexplored
action
为在s
t
下执行动作a
t
后到达下一个状态中未执行的动作数量,total
action
为在s
t
下执行动作a
t
后到达下一个状态中拥有动作的总数量,s
t 1
为在s
t
下执行动作a
t
后到达的下一个状态,graph(s
t
,a
t
)表示在所述被测移动应用程序的业务流下,在s
t
下执行a
t
要到达的页面;reward2为页面的数据校验奖励,reward2为页面的数据校验奖励,expect_data为初始数据经过逻辑处理后期望得到的数据表示,raw
data
为初始数据,f(raw
data
)为经过业务逻辑处理后的数据;reward3为页面新颖性判定的奖励,
total
simlartity
为控件位置和文本的综合相似度,frequence(s
t
,a
t
)为在s
t
下执行动作a
t
的次数。

技术总结
本发明涉及一种移动应用程序自动化测试方法及系统。该方法包括:获取待测移动应用程序的业务交互流程图,并利用不同格式表示每个页面中表单的页面表单属性;业务交互流程图中输入输出属性约束信息包括输入流流向的方向以及对所述输入属性进行的逻辑处理;通过行为克隆利用监督学习算法从所述状态-动作对中学习不同状态下采用不同的动作分布;基于深度强化学习算法结合应用的业务逻辑流,更有效的理解业务需求,快速触及到复杂的核心业务场景中,检测页面本身的异常,从而获取整个测试过程中的异常日志文件以及代码覆盖率,评估待测移动应用程序的性能。本发明能够提高测试大型应用程序时的测试效率。应用程序时的测试效率。应用程序时的测试效率。


技术研发人员:蔡立志 王晋 胡芸 沈颖 宋巍 龚家瑜 赵毅 王超 葛建新
受保护的技术使用者:上海计算机软件技术开发中心
技术研发日:2022.10.31
技术公布日:2023/2/3
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献