CN111008154A - 一种基于强化学习的Android应用自动测试方法及系统 - Google Patents

一种基于强化学习的Android应用自动测试方法及系统 Download PDF

Info

Publication number
CN111008154A
CN111008154A CN201911402274.2A CN201911402274A CN111008154A CN 111008154 A CN111008154 A CN 111008154A CN 201911402274 A CN201911402274 A CN 201911402274A CN 111008154 A CN111008154 A CN 111008154A
Authority
CN
China
Prior art keywords
state
action
value
android application
current
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
CN201911402274.2A
Other languages
English (en)
Other versions
CN111008154B (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201911402274.2A priority Critical patent/CN111008154B/zh
Publication of CN111008154A publication Critical patent/CN111008154A/zh
Application granted granted Critical
Publication of CN111008154B publication Critical patent/CN111008154B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本发明公开一种基于强化学习的Android应用自动测试方法及系统,在测试过程中,自动测试工具自动运行Android APK,获取当前界面控件布局情况并推测出可执行交互事件,采用Q‑learning算法,交互事件第一次被探索到时会有一个初始价值,自动测试工具依据交互事件价值选择并执行交互事件。每次执行交互事件后都会产生一个奖赏对交互事件的价值进行更新。奖赏给定主要以新状态与过往状态的差异为判定标准。本发明引入神经网络对状态进行比较,可以判定两状态是否处在同一功能场景。基于该神经网络判定结果给定的奖赏,可以引导自动测试工具优先对Android应用中的各个场景进行探索,以此提升测试效率,同时发现更多代码中存在的缺陷。

Description

一种基于强化学习的Android应用自动测试方法及系统
技术领域
本发明涉及Android应用自动测试,具体涉及一种基于强化学习的Android应用自动测试方法及系统。
背景技术
随着智能手机的普及,移动应用给我们的生活带来了巨大的变化。然而,由于状态空间大等问题,对移动应用进行较完善测试需要耗费大量的人力和时间,这种需求在如今各大互联网公司快速推出应用快速版本迭代的情况下难以被满足。因此,针对移动的自动测试工具,尤其是高效的自动测试工具具有重要价值。其中Android系统在移动端操作系统中占比达到70%以上,因此,针对Android应用进行自动测试显得尤为重要。
目前已有一些面向Android应用的自动测试方法,但实践证明它们的效果仍然有待提升。以Monkey等为代表的随机自动测试工具采用伪随机数的方式生成交互事件,随机点击屏幕上的区域进行测试。这种方式会产生大量冗余的无用数据,影响测试效率。同时因为缺少有效探索策略或者探索策略过于简单,导致测试不均匀,一些较容易到达的界面被过度测试,而另外一些界面测试不充分。
以Stoat等为代表的基于模型的自动测试工具首先利用静态或者动态分析的方式构建模型对Android应用的行为进行描述。然后基于模型生成测试用例对应用进行自动测试。因为Android应用的行为十分灵活,静态或动态分析得到的模型往往不能完全准确地描述应用的行为,如果模型与应用的真实行为存在偏差,生成的测试用例就不能对应用进行有效测试。
以Sapienz、ACTEve等为代表的系统测试工具利用符号执行和进化算法生成特定的测试用例对Android应用进行测试。这类方法受限于符号执行等技术,在对特定代码进行覆盖的场景中表现良好,不适用于要求整体代码覆盖率的场景。
发明内容
为解决现有技术中存在的不足,本发明的目的是:提供一种基于强化学习的Android应用自动测试方法和系统,结合了随机测试和基于模型测试的优点。通过记录Android应用的部分行为信息来更好地指导测试,同时不完全依赖于模型,避免了模型与应用真实行为不一致带来的问题。
为了实现上述目的,本发明采用的技术方案为:一种基于强化学习的Android应用自动测试方法,包括以下步骤:
S1:在Android虚拟机或者物理机上自动运行APK;
S2:获取Android应用当前的控件布局情况;
S3:推测可执行的用户交互事件;
S4:选择当前状态下价值最高的动作进行执行;
S5:采用神经网络将新状态与过往的部分状态进行比较,并以此给定奖赏;
S6:对被执行事件的价值进行更新;
S7:判定当前界面是否跳转到被测应用以外的状态;
S8:重复执行S2~S7,直到达到设定的测试时长;
S9:得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线。
优选的是,上述S2中,使用UIAutomator工具获取Android应用当前的控件布局情况,以树形结构的形式描述各类控件的包含关系,同时记录了各个控件当前的属性值,包括位置、可见性和可点击性。
优选的是,上述S3中,采用Q-learning算法,且采用表格结构记录各个事件的价值,如果交互事件第一次被探索到,则会以状态动作对为关键字将其记录到表格中,并给定一个较大的初始值,引导自动测试工具优先触发未执行事件。
优选的是,上述S4中,根据上一步中推断得到的当前可执行事件,在动作价值表中查询得到各动作的价值,选择价值最高的动作进行执行。
优选的是,上述S5:上一步执行相关事件后,Android应用界面发生变化,采用神经网络将新状态与已探索到的部分状态进行比较,该神经网络通过大量样本对的训练,能够准确地判断两个状态是否属于同一个功能场景,基于神经网络的判定结果,给定执行动作应该获得的奖赏;如果新状态与过去探索到的状态都不在同一场景,即来到了新的场景,那么就给定一个较大的奖赏,并将该状态记录下来用于与接下来探索到的状态进行场景比较;否则给定一个较少的奖赏,并不记录该状态。
优选的是,上述S6:通过上述步骤给定奖赏后,采用Q-learning算法的动作价值更新公式对被执行动作的价值进行更新,所述公式通过动作的当前价值、新状态下最优动作的价值和神经网络的判定结果计算得到被执行动作新的价值,并保存到表格结构中。
优选的是,上述S7:判定当前界面状态是否在被测应用范围内;如果不在,表明已经跳转到其他应用,不应该继续在此应用中进行测试,执行重启操作,回到S2;否则继续执行S8。
优选的是,上述S8中的测试时长为测试开始前人为设定的测试时间,此外,如果测试前对Android应用进行了插桩,可以实时获取当前的代码覆盖度,如果一定时间内代码覆盖度没有提升且也没有发现新的缺陷,那么测试自动结束。
优选的是,上述S9具体为:测试结束后可以获得两个文件,一个文件记录了代码覆盖度信息;另一个记录了测试过程中发现的缺陷信息,包括异常的栈追踪信息及相关的执行动作,方便进行缺陷定位,同时自动测试工具会根据测试过程中定时收集的代码覆盖度相关文件,计算得到每一段时间内的总体代码覆盖度情况,进而得到代码覆盖度随时间变化的曲线。
本发明的目的还可以进一步由一种用于基于强化学习的Android应用自动测试方法的测试系统来实现,该系统包括以下模块:
M1,用于:在Android虚拟机或者物理机上自动运行被测试Android应用的APK;
M2,用于:获取Android应用当前的控件布局情况;
M3,用于:推测出当前可执行的用户交互事件;根据控件树结构、控件类型及控件的相关属性可以推断得出控件当前的可执行事件;
M4,用于:选择当前状态下价值最高的动作进行执行;根据上一步中推断得到的当前可执行事件,在动作价值表中查询得到各动作的价值,选择价值最高的动作进行执行;
M5,用于:执行动作后界面状态会发生变化,采用神经网络将新状态与过往的部分状态进行比较,如果判定新状态为一个新的场景,则将该状态记录下来用于后续的状态比较,并给定一个较大的奖赏;否则不保存状态,并给定一个较小的奖赏;
M6,用于:采用Q-learning算法对被执行事件的价值进行更新,并将结果保存到表格结构中;
M7,用于:判定当前界面状态是否在被测应用范围内;如果不在,表明已经跳转到其他应用,不应该继续在此应用中进行测试,执行重启操作,回到M2步骤;否则继续执行M8动作;
M8,用于:重复执行上述步骤,直到达到设定的测试时长;
M9,用于:得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线。
本发明所能实现的有益效果是:
1、通过样本训练得到神经网络,可以高效、准确地判定两个Android应用状态是否属于同一功能场景。
2、本发明结合了随机测试和基于模型测试的优点,通过记录Android应用的部分行为信息来更好地指导测试,同时不完全依赖于模型,避免了模型与应用真实行为不一致带来的问题。
附图说明
图1为本实施例的自动测试的方法中强化学习过程的简单示意图。
图2为本实施例的自动测试的方法中Q-leaning算法动作价值更新公式示意图。
图3为本实施例的基于强化学习的Android应用自动测试方法流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。
如图3所示,本实施例的基于强化学习的Android应用自动测试方法流程示意图,包括以下步骤:
S1:在Android虚拟机或者物理机上自动运行APK;
S2:获取Android应用当前的控件布局情况;
S3:推测可执行的用户交互事件;
S4:选择当前状态下价值最高的动作进行执行;
S5:采用神经网络将新状态与过往的部分状态进行比较,并以此给定奖赏;
S6:采用Q-learning算法对被执行事件的价值进行更新;
S7:判定当前界面是否跳转到被测应用以外的状态;
S8:重复执行S2~S7,直到达到设定的测试时长;
S9:得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线;
步骤S1在Android虚拟机或者物理机上自动运行APK。首先需要获取被测Android应用的APK文件。如果需要获取覆盖度信息,还需要使用Jacoco等工具对Android应用进行字节码插桩,如果测试的目的只是发现应用中的缺陷,则直接使用APK文件即可。在正式开始自动测试前,可以通过参数设定测试时间。完成准备工作之后,就可以开始自动测试过程,这里可以通过参数配置指定Android应用运行在Android虚拟机还是物理机上。
步骤S2获取Android应用当前的控件布局情况。在运行被测Android应用的过程中,可以通过UIAutomator获取Android虚拟机或者实体机当前屏幕的控件布局情况。该布局文件为xml格式,每一个元素表示一个控件,其中可能包含许多子控件,表示子控件被包含在父控件中,布局文件整体上可以看作一棵控件树。每一个元素还有相应的属性(包括bounds、checkable、package、resource-id等),它们表明了控件当前的状态(包括在屏幕上的位置、当前是否可点击、控件所属的项目包、控件id等)。
步骤S3推测出当前可执行的用户交互事件。自动测试工具首先遍历整棵控件树,然后主要针对叶子节点的控件进行可执行事件的推断。可执行事件推断综合考虑了控件的属性、其父节点的属性等信息。如果当前状态不是第一次被探索到,那么可以直接通过当前的状态信息在表格中查询得到当前的可执行事件,省去推断步骤。推断得到当前的可执行事件后,会判断它们在测试过程中是否是第一次推断得到,如果是(例如刚启动测试过程时的应用启动界面),会将该动作保存到表格结构中,且会给每一个动作赋一个较大的初始价值,目的是让自动测试工具优先执行那些从未被执行过的动作。
步骤S4选择当前状态下价值最高的动作进行执行。如果存在价值相同的时间,会随机选择其中一个进行执行。自动测试工具还有一定概率执行随机动作或者注入系统事件。随机执行动作符合Q-learning算法要求,在算法中引入随机性可以让探索过程更加发散。引入系统事件可以提升代码的覆盖度。部分代码和缺陷只有在执行特定的系统事件后才能覆盖和触发,通过随机注入一些常见的系统事件,可以提升测试效果。除此之外自动测试工具还会获取当前运行应用的包信息,以此判断是否跳转到被测应用以外的应用中,如果检测到已经跳转到其他应用中,会自动重新启动被测应用。通过这种方式可以避免浪费时间在对其他应用的测试上。
步骤S5执行动作后界面状态会发生变化,采用神经网络将新状态与过往的部分状态进行比较,如果判定新状态为一个新的场景,则将该状态记录下来用于后续的状态比较,并给定一个较大的奖赏;否则不保存状态,并给定一个较小的奖赏。这里神经网络是通过大量样本训练得到的。这里的输入是两个状态的控件布局文件,首先通过人工特征抽取的方式得到两个向量,然后将两个向量输入神经网络,通过神经网络进一步进行特征抽取、距离度量后,输出两个状态属于统一场景的概率,如果概率大于人为设定的阈值,那么就可以判定两个状态属于同一场景。这里场景没有十分明确的定义,主要通过状态所属的功能模块进行判定,Android应用常见的功能模块包括登陆注册、导航界面、信息浏览、详情查看、设置界面等。
如图2所示,本实施例的自动测试的方法中Q-leaning算法动作价值更新公式示意图,步骤S6采用公式对被执行事件的价值进行更新。通过上述步骤给定奖赏后,采用Q-learning算法的动作价值更新公式对被执行动作的价值进行更新。公式通过动作的当前价值、新状态下最优动作的价值、神经网络的判定结果计算得到被执行动作新的价值,并保存到表格结构中。
步骤S7判定当前界面状态是否在被测应用范围内;如果不在,表明已经跳转到其他应用,不应该继续在此应用中进行测试,执行重启操作,回到S2;否则继续执行S8。
步骤S8重复执行S2~S7,直到达到设定的测试时长。这里的测试时长即为测试开始前人为设定的测试时间。除此之外,如果测试前对Android应用进行了插桩,可以实时获取当前的代码覆盖度,如果一定时间内代码覆盖度没有提升且也没有发现新的缺陷,那么测试也可以自动结束。
步骤S9得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线。测试结束后可以获得两个文件,一个文件记录了代码覆盖度信息;另一个记录了测试过程中发现的缺陷信息,包括异常的栈追踪信息及相关的执行动作,方便进行缺陷定位。同时自动测试工具会根据测试过程中定时收集的代码覆盖度相关文件,计算得到每一段时间内的总体代码覆盖度情况,进而得到代码覆盖度随时间变化的曲线。
本发明还提供了一种用于基于强化学习的Android应用自动测试方法的测试系统,包括以下模块:
M1,用于:在Android虚拟机或者物理机上自动运行被测试Android应用的APK;
M2,用于:获取Android应用当前的控件布局情况;使用UIAutomator工具获取Android应用当前的控件布局情况。相关布局文件为XML格式,以树形结构的形式描述了各类控件的包含关系,同时记录了各个控件当前的属性值,包括位置、可见性、可点击性等;
M3,用于:推测出当前可执行的用户交互事件;根据控件树结构、控件类型及控件的相关属性可以推断得出控件当前的可执行事件。方法采用Q-learning算法,且采用表格结构记录各个事件的价值,如果交互事件第一次被探索到,则会以状态动作对为关键字将其记录到表格中,并给定一个较大的初始值,引导自动测试工具优先触发未执行事件;
M4,用于:选择当前状态下价值最高的动作进行执行;根据上一步中推断得到的当前可执行事件,在动作价值表中查询得到各动作的价值,选择价值最高的动作进行执行。自动测试工具还有一定概率执行随机事件或者注入系统事件,以此覆盖部分特殊代码,提升测试效率;
M5,用于:执行动作后界面状态会发生变化,采用神经网络将新状态与过往的部分状态进行比较,如果判定新状态为一个新的场景,则将该状态记录下来用于后续的状态比较,并给定一个较大的奖赏;否则不保存状态,并给定一个较小的奖赏;上一步执行相关事件后,Android应用界面通常会发生变化,采用神经网络将新状态与已探索到的部分状态进行比较。该神经网络通过大量样本对的训练,能够较准确地判断两个状态是否属于同一个功能场景(如登陆、浏览条目、查看详情等)。基于神经网络的判定结果,给定执行动作应该获得的奖赏。如果新状态与过去探索到的状态都不在同一场景,即来到了新的场景,那么就给定一个较大的奖赏,并将该状态记录下来用于与接下来探索到的状态进行场景比较;否则给定一个较少的奖赏,并不记录该状态;
M6,用于:采用Q-learning算法对被执行事件的价值进行更新;通过上述步骤给定奖赏后,采用Q-learning算法的动作价值更新公式对被执行动作的价值进行更新。公式通过动作的当前价值、新状态下最优动作的价值、神经网络的判定结果计算得到被执行动作新的价值,并保存到表格结构中;
M7,用于:判定当前界面状态是否在被测应用范围内;如果不在,表明已经跳转到其他应用,不应该继续在此应用中进行测试,执行重启操作,回到M2步骤;否则继续执行M8动作;
M8,用于:重复执行上述步骤,直到达到设定的测试时长;这里的测试时长即为测试开始前人为设定的测试时间。除此之外,如果测试前对Android应用进行了插桩,可以实时获取当前的代码覆盖度,如果一定时间内代码覆盖度没有提升且也没有发现新的缺陷,那么测试也可以自动结束;
M9,用于:得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线;测试结束后可以获得两个文件,一个文件记录了代码覆盖度信息;另一个记录了测试过程中发现的缺陷信息,包括异常的栈追踪信息及相关的执行动作,方便进行缺陷定位。同时自动测试工具会根据测试过程中定时收集的代码覆盖度相关文件,计算得到每一段时间内的总体代码覆盖度情况,进而得到代码覆盖度随时间变化的曲线。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (10)

1.一种基于强化学习的Android应用自动测试方法,其特征在于,包括以下步骤:
S1:在Android虚拟机或者物理机上自动运行APK;
S2:获取Android应用当前的控件布局情况;
S3:推测可执行的用户交互事件;
S4:选择当前状态下价值最高的动作进行执行;
S5:采用神经网络将新状态与过往的部分状态进行比较,并以此给定奖赏;
S6:对被执行事件的价值进行更新;
S7:判定当前界面是否跳转到被测应用以外的状态;
S8:重复执行S2~S7,直到达到设定的测试时长;
S9:得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线。
2.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于:所述S2中,使用UIAutomator工具获取Android应用当前的控件布局情况,以树形结构的形式描述各类控件的包含关系,同时记录了各个控件当前的属性值,包括位置、可见性和可点击性。
3.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于:所述S3中,采用Q-learning算法,且采用表格结构记录各个事件的价值,如果交互事件第一次被探索到,则会以状态动作对为关键字将其记录到表格中,并给定一个较大的初始值,引导自动测试工具优先触发未执行事件。
4.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于:所述S4中,根据上一步中推断得到的当前可执行事件,在动作价值表中查询得到各动作的价值,选择价值最高的动作进行执行。
5.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于,所述S5:上一步执行相关事件后,Android应用界面发生变化,采用神经网络将新状态与已探索到的部分状态进行比较,该神经网络通过大量样本对的训练,能够准确地判断两个状态是否属于同一个功能场景,基于神经网络的判定结果,给定执行动作应该获得的奖赏;如果新状态与过去探索到的状态都不在同一场景,即来到了新的场景,那么就给定一个较大的奖赏,并将该状态记录下来用于与接下来探索到的状态进行场景比较;否则给定一个较少的奖赏,并不记录该状态。
6.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于,所述S6:通过上述步骤给定奖赏后,采用Q-learning算法的动作价值更新公式对被执行动作的价值进行更新,所述公式通过动作的当前价值、新状态下最优动作的价值和神经网络的判定结果计算得到被执行动作新的价值,并保存到表格结构中。
7.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于,所述S7:判定当前界面状态是否在被测应用范围内;如果不在,表明已经跳转到其他应用,不应该继续在此应用中进行测试,执行重启操作,回到S2;否则继续执行S8。
8.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于:所述S8中的测试时长为测试开始前人为设定的测试时间,此外,如果测试前对Android应用进行了插桩,可以实时获取当前的代码覆盖度,如果一定时间内代码覆盖度没有提升且也没有发现新的缺陷,那么测试自动结束。
9.根据权利要求1所述的基于强化学习的Android应用自动测试方法,其特征在于,所述S9具体为:测试结束后可以获得两个文件,一个文件记录了代码覆盖度信息;另一个记录了测试过程中发现的缺陷信息,包括异常的栈追踪信息及相关的执行动作,方便进行缺陷定位,同时自动测试工具会根据测试过程中定时收集的代码覆盖度相关文件,计算得到每一段时间内的总体代码覆盖度情况,进而得到代码覆盖度随时间变化的曲线。
10.一种用于基于强化学习的Android应用自动测试方法的测试系统,其特征在于,包括以下模块:
M1,用于:在Android虚拟机或者物理机上自动运行被测试Android应用的APK;
M2,用于:获取Android应用当前的控件布局情况;
M3,用于:推测出当前可执行的用户交互事件;根据控件树结构、控件类型及控件的相关属性可以推断得出控件当前的可执行事件;
M4,用于:选择当前状态下价值最高的动作进行执行;根据上一步中推断得到的当前可执行事件,在动作价值表中查询得到各动作的价值,选择价值最高的动作进行执行;
M5,用于:执行动作后界面状态会发生变化,采用神经网络将新状态与过往的部分状态进行比较,如果判定新状态为一个新的场景,则将该状态记录下来用于后续的状态比较,并给定一个较大的奖赏;否则不保存状态,并给定一个较小的奖赏;
M6,用于:采用Q-learning算法对被执行事件的价值进行更新,并将结果保存到表格结构中;
M7,用于:判定当前界面状态是否在被测应用范围内;如果不在,表明已经跳转到其他应用,不应该继续在此应用中进行测试,执行重启操作,回到M2步骤;否则继续执行M8动作;
M8,用于:重复执行上述步骤,直到达到设定的测试时长;
M9,用于:得到覆盖度文件、缺陷相关信息文件并计算得到覆盖度随时间变化的曲线。
CN201911402274.2A 2019-12-31 2019-12-31 一种基于强化学习的Android应用自动测试方法及系统 Active CN111008154B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911402274.2A CN111008154B (zh) 2019-12-31 2019-12-31 一种基于强化学习的Android应用自动测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911402274.2A CN111008154B (zh) 2019-12-31 2019-12-31 一种基于强化学习的Android应用自动测试方法及系统

Publications (2)

Publication Number Publication Date
CN111008154A true CN111008154A (zh) 2020-04-14
CN111008154B CN111008154B (zh) 2021-09-28

Family

ID=70119692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911402274.2A Active CN111008154B (zh) 2019-12-31 2019-12-31 一种基于强化学习的Android应用自动测试方法及系统

Country Status (1)

Country Link
CN (1) CN111008154B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694755A (zh) * 2020-07-31 2020-09-22 北京字节跳动网络技术有限公司 应用程序测试方法、装置、电子设备及介质
CN111694753A (zh) * 2020-07-30 2020-09-22 北京字节跳动网络技术有限公司 一种应用程序测试方法、装置及计算机存储介质
CN111857719A (zh) * 2020-07-31 2020-10-30 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及介质
CN115687115A (zh) * 2022-10-31 2023-02-03 上海计算机软件技术开发中心 一种移动应用程序自动化测试方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3182286A1 (fr) * 2015-12-18 2017-06-21 Airbus DS SLC Procede de verification de fonctionnalites d'un logiciel destine a etre embarque dans un composant cryptographique, systeme
CN109901994A (zh) * 2019-01-21 2019-06-18 阿里巴巴集团控股有限公司 一种基于强化学习的测试脚本生成方法和装置
CN109992514A (zh) * 2019-04-01 2019-07-09 国家计算机网络与信息安全管理中心 基于可视化内容的移动应用动态分析方法
CN110221959A (zh) * 2019-04-16 2019-09-10 阿里巴巴集团控股有限公司 应用程序的测试方法、设备以及计算机可读介质
CN110442515A (zh) * 2019-07-12 2019-11-12 阿里巴巴集团控股有限公司 应用测试方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3182286A1 (fr) * 2015-12-18 2017-06-21 Airbus DS SLC Procede de verification de fonctionnalites d'un logiciel destine a etre embarque dans un composant cryptographique, systeme
CN109901994A (zh) * 2019-01-21 2019-06-18 阿里巴巴集团控股有限公司 一种基于强化学习的测试脚本生成方法和装置
CN109992514A (zh) * 2019-04-01 2019-07-09 国家计算机网络与信息安全管理中心 基于可视化内容的移动应用动态分析方法
CN110221959A (zh) * 2019-04-16 2019-09-10 阿里巴巴集团控股有限公司 应用程序的测试方法、设备以及计算机可读介质
CN110442515A (zh) * 2019-07-12 2019-11-12 阿里巴巴集团控股有限公司 应用测试方法、装置、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MINXUE PAN ET AL: "GUI-Guided Repair of Mobile Test Scripts", 《2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS》 *
刘天驰: "基于Activity隔离的Android应用多层测试技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694753A (zh) * 2020-07-30 2020-09-22 北京字节跳动网络技术有限公司 一种应用程序测试方法、装置及计算机存储介质
CN111694753B (zh) * 2020-07-30 2023-04-11 北京字节跳动网络技术有限公司 一种应用程序测试方法、装置及计算机存储介质
CN111694755A (zh) * 2020-07-31 2020-09-22 北京字节跳动网络技术有限公司 应用程序测试方法、装置、电子设备及介质
CN111857719A (zh) * 2020-07-31 2020-10-30 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及介质
CN115687115A (zh) * 2022-10-31 2023-02-03 上海计算机软件技术开发中心 一种移动应用程序自动化测试方法及系统
CN115687115B (zh) * 2022-10-31 2023-07-28 上海计算机软件技术开发中心 一种移动应用程序自动化测试方法及系统

Also Published As

Publication number Publication date
CN111008154B (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
CN111008154B (zh) 一种基于强化学习的Android应用自动测试方法及系统
CN109739755B (zh) 一种基于程序追踪和混合执行的模糊测试系统
CN110442511B (zh) 可视化埋点测试方法及装置
CN109375945B (zh) 物联网设备的固件版本探测方法及漏洞修复率评估方法
Li et al. ATOM: Automatic maintenance of GUI test scripts for evolving mobile applications
US10509719B2 (en) Automatic regression identification
US11436133B2 (en) Comparable user interface object identifications
Sacramento et al. Web application model generation through reverse engineering and UI pattern inferring
CN110554962A (zh) 回归测试的流程覆盖方法、服务器及计算机可读存储介质
CN111190827A (zh) 接口自动化测试方法、装置、存储介质及电子设备
CN111382070A (zh) 兼容性测试方法、装置、存储介质和计算机设备
CN110908895A (zh) 页面自动化测试方法、装置、计算机设备及存储介质
EP3693860B1 (en) Generation of test models from behavior driven development scenarios based on behavior driven development step definitions and similarity analysis using neuro linguistic programming and machine learning mechanisms
CN114706734A (zh) 业务应用的监控方法和监控系统
US8676774B2 (en) Min-repro framework for database systems
CN109359045B (zh) 一种测试方法、装置、设备和存储介质
CN107038117B (zh) 一种基于事件处理函数间定义-引用的web自动化测试方法
CN112486811A (zh) 一种接口测试方法、装置、设备及介质
CN112631704A (zh) 一种界面元素识别方法、装置、存储介质及电子设备
JP2009277110A (ja) ソフトウェア試験及び開発支援装置並びに当該装置用プログラム
US20140245159A1 (en) Transport script generation based on a user interface script
CN112084117B (zh) 一种测试方法和装置
CN113220564A (zh) 页面的自动化测试方法、装置、设备以及存储介质
CN113326193A (zh) 一种小程序测试方法及装置
CN113515455A (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