CN115794619A - 一种基于语义匹配和录制重放的安卓应用测试方法及装置 - Google Patents
一种基于语义匹配和录制重放的安卓应用测试方法及装置 Download PDFInfo
- Publication number
- CN115794619A CN115794619A CN202211425356.0A CN202211425356A CN115794619A CN 115794619 A CN115794619 A CN 115794619A CN 202211425356 A CN202211425356 A CN 202211425356A CN 115794619 A CN115794619 A CN 115794619A
- Authority
- CN
- China
- Prior art keywords
- interactive
- playback
- recording
- event
- new
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于语义匹配和录制重放的安卓应用测试方法及装置,其中包括获取人工操作信息,将所述人工操作信息录制生成交互事件;将多个所述交互事件收录生成交互序列集,通过自回放将所述交互事件形成新的交互事件;获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。将测试者在移动设备上的操作信息收录生成交互事件,可以在不同目标应用测试中进行测试回放。将交互时涉及到的交互控件的有用信息提取出来,在回放时与目标应用的同类信息进行匹配,实现“跨应用”、“跨版本”和“跨设备”的测试回放,提高了可重复利用率,进而降低了应用的测试成本。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种基于语义匹配和录制重放的安卓应用测试方法及装置。
背景技术
在应用软件开发过程中,由于开发人员的疏漏或经验不足等因素,导致用户设备卡顿、应用闪退、数据流失等各种缺陷和漏洞。极大影响了用户的使用体验。
软件测试可以有效的测试出应用软件各种缺陷和漏洞并进行改进。为了提高测试效率,许多测试方法被提出:其中包括模糊测试(Fuzzy Test)、自动化输入生成(AutomatedInput Generation)、测试迁移(Test Migration)、录制重放(Record and Replay)等。然而现有的安卓应用测试技术仍然存在如下问题:
不同应用之间,测试相似功能的测试用例不能夸应用回放,需要重复编写相似的测试用例,提高了测试成本。安卓应用更新迭代迅速,容易导致原有的大量测试用例失效。更新和维护这些测试用例需要巨大成本。同一个测试用例在不同硬件配置和不同软件版本上不能通用,导致测试用例的可重复利用率低,增加了测试编写和维护的成本。
发明内容
针对现有技术的不足,本发明提供一种基于语义匹配和录制重放的安卓应用测试方法及装置,提高了可重复利用率,进而降低了应用的测试成本。
为了解决上述技术问题,本申请实施例第一方面提供了一种基于语义匹配和录制重放的安卓应用测试方法,所述方法包括:
获取人工操作信息,将所述人工操作信息录制生成交互事件;
将多个所述交互事件收录生成交互序列集,通过自回放将所述交互事件形成新的交互事件;
获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。
所述基于语义匹配和录制重放的安卓应用测试方法,其中,所述获取人工操作信息,将所述人工操作信息录制生成交互事件,具体包括:
通过安卓调试桥工具在源应用上获取所述人工操作信息,将所述人工操作信息录制生成所述交互事件,其中所述源应用用于录制所述交互事件。
所述基于语义匹配和录制重放的安卓应用测试方法,其中,所述通过自回放将所述交互事件形成新的交互事件,具体包括:
将所述交互序列集内的所述交互事件在所述源应用上进行至少一次所述自回放;
通过所述自回放得到新的交互事件,其中所述交互事件和所述新的交互事件均包括交互的控件。
所述基于语义匹配和录制重放的安卓应用测试方法,其中,所述通过所述自回放得到新的交互事件,具体包括:
根据每个所述交互事件的所述交互的控件,确定每个所述交互事件对应的交互控件;
获取所述交互控件在当前用户界面层次结构对应的可扩展标记语言文件中的第一文本信息;
通过所述第一文本信息形成测试预言和所述新的交互事件。
所述基于语义匹配和录制重放的安卓应用测试方法,其中,所述获取所述交互控件在当前用户界面层次结构对应的可扩展标记语言文件中的第一文本信息之后,所述方法还包括:
若所述交互控件存在非文字图标,则通过图像描述技术获取所述非文字图标的文字描述,并将所述文字描述添加到所述第一文本信息中。
所述基于语义匹配和录制重放的安卓应用测试方法,其中,所述获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放,具体包括:
获取所述目标应用需要回放的所述新的交互事件和所述目标应用当前图形化用户界面上的第二文本信息,其中所述第二文本信息从所述交互控件在所述目标应用的当前用户界面层次结构对应的可扩展标记语言文件中提取得到;
通过词移距离算法得到所述第一文本信息和所述第二文本信息之间的语义相似度;
若所述语义相似度大于预设的语义相似度阈值,则判定所述交互控件匹配成功,通过对应的所述新的交互事件对所述目标应用进行测试回放;
在每个所述新的交互事件回放之后,降低所述新的交互事件对应的所述预设的语义相似度阈值;
所述测试回放完成之后,提取所述目标应用在当前图形化用户界面中的关键文本信息,通过词移距离算法比较所述关键文本信息与所述测试预言的语义相似度,判断测试是否通过。
所述基于语义匹配和录制重放的安卓应用测试方法,其中,所述若所述语义相似度大于预设的语义相似度阈值,则判定所述交互控件匹配成功,通过对应的所述新的交互事件对所述目标应用进行测试回放,所述方法还包括:
若所述交互控件匹配失败,则通过广度优先搜索法在所述目标应用中寻找匹配的所述交互控件或优先跳过,在后续匹配中检测优先跳过的所述新的交互事件是否与当前图形化用户界面上的所述交互控件匹配。
本申请实施例第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的基于语义匹配和录制重放的安卓应用测试方法中的步骤。
本申请实施例第三方面提供了一种基于语义匹配和录制重放的安卓应用测试装置,其包括:
录制模块,用于获取人工操作信息,将所述人工操作信息录制生成交互事件;
增强模块,用于将多个所述交互事件收录生成交互序列集,通过自回放将所述交互事件形成新的交互事件;
测试回放模块,用于获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。
本申请实施例第四方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的基于语义匹配和录制重放的安卓应用测试方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种基于语义匹配和录制重放的安卓应用测试方法及装置,所述方法包括获取人工操作信息,将所述人工操作信息录制生成交互事件;将多个所述交互事件收录生成交互序列集,通过自回放将所述交互事件形成新的交互事件;获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。将测试者在移动设备上的人工操作信息收录生成交互事件,可以在不同目标应用测试中进行测试回放。将交互时涉及到的交互控件的有用信息提取出来,在回放时与目标应用的同类信息进行匹配,实现“跨应用”、“跨版本”和“跨设备”的测试回放,提高了可重复利用率,进而降低了应用的测试成本。
附图说明
图1为本发明提供的基于语义匹配和录制重放的安卓应用测试方法的流程图;
图2为图1中步骤S20的流程示意图;
图3为图2中步骤S22的流程示意图;
图4为图1中步骤S30的流程示意图;
图5为部分事件和对应负载的类型的表格;
图6为本发明提供的基于语义匹配和录制重放的安卓应用测试方法的另一工作流程图;
图7为本发明提供的测试回放的流程图;
图8为本发明提供的基于语义匹配和录制重放的安卓应用测试装置的结构示意图;
图9为本发明提供的终端设备的结构原理图。
具体实施方式
本发明提供一种基于语义匹配和录制重放的安卓应用测试方法及装置,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
本实施例提供的一种基于语义匹配和录制重放的安卓应用测试方法,如图6所示。整个工作流程由四个阶段组成:分别为录制(record)阶段、处理(process)阶段、增强(augment)阶段和回放(replay)阶段,每个阶段的任务由对应的模块完成。其中源应用(source application)表示录制事件发生的应用,目标应用(target application)表示重放事件发生的应用。
该基于语义匹配和录制重放的安卓应用测试方法的执行主体可以为服务器端的应用测试装置,或者集成应用测试装置的服务器设备,其中,应用测试装置可以采用硬件或者软件的方式实现。可以理解的时,本实施例的执行主体可以是诸如智能手机、平板电脑或服务器主机等之类的设置有应用测试装置的智能终端。例如,服务器获取数据请求,基于数据请求确定数据请求的主数据源和多个备用数据源,备用数据源与主数据源为同一类数据;获取主数据源的主数据源状态数据和备用数据源的备用数据源状态数据;根据主数据源状态数据和备用数据源状态数据对主数据源和备用数据源进行流量分发。即本发明一种基于语义匹配和录制重放的安卓应用测试方法及装置,只要求测试者在移动设备上进行一次人工操作,测试者的一系列操作被录制下来后即可在将来的测试中多次回放。不需要测试者重新编写测试代码,具有低学习成本的优点。
需要注意的是,上述应用场景仅是为了便于理解本发明而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
进一步,为了对发明内容作进一步说明,下面结合附图,通过对实施例进行具体描述。
本实施例提供的基于语义匹配和录制重放的安卓应用测试方法,如图1所示,所述方法具体包括:
步骤S10,获取人工操作信息,将人工操作信息录制生成交互事件。
具体地,录制重放测试方法只要求测试人员在移动设备上进行一次人工操作,将测试者的一系列操作(人工操作信息)录制下来后,并将人工操作信息打包生成交互事件,并对这些交互事件进行分类。在将来的目标应用测试中可以多次回放。测试时,录制重放技术只要求测试者手动的在应用上进行测试,不需要编写测试代码,因此本技术具有低学习成本的优点
步骤S20,将多个交互事件收录生成交互序列集,通过自回放(self-replay)将交互事件形成新的交互事件。
需要说明的是,如果将录制得到的一次交互事件记为E,则一次测试所需的操作序列可表示为由不同时刻的交互事件组成的序列<E0,E1,E2,…,Ek>,而每一次交互事件E可以表示为一个具有三个元素的元组<a,p,w>,其中a表示事件的类别,p表示事件的载荷,w表示交互的控件。例如,在“用户通过键盘在输入框中输入若干文字”这一事件对应的元组中,a代表键盘输入,p代表用户输入的内容,w代表用户输入文字的输入框;而在“点击按钮”这一事件对应的元组中,a代表点击事件,p代表点击事件的坐标,w代表被点击的按钮。
步骤S30,获取目标应用的控件信息,根据控件信息匹配对应的新的交互事件,通过新的交互事件对目标应用进行测试回放。
具体地,在录制时,将一个事件E对应的控件w在当前用户界面层次结构(UIhierarchy)对应的可扩展标记语言(XML)文件中的文本信息(如resource-id,text,content-desc等)提取出来。将每个控件的描述性的文本信息记为d,并用它替换原来的控件w,从而得到新的元组<a,p,d>。在回放时,以用相同的方法获取当前可交互控件的文本信息d’,并利用词嵌入(word embedding)技术获得这些d’与d的相似度,找出相似度最高的控件,从而实现匹配。
特别地,对于拥有图像信息的控件,使用图像描述(image captioning)的方法,为控件的图标添加一段文本描述,并将它与该控件的文本信息d一起在回放时进行匹配。当通过图像和可扩展标记语言(XML)文件中的文本信息都无法获得可用于匹配的信息时,控件在用户界面层次结构中的相对位置会被用来辅助进行匹配。
进一步的,获取人工操作信息,将人工操作信息录制生成交互事件,具体包括:
通过安卓调试桥工具(ADB,Android Debug Bridge)在源应用上获取人工操作信息,将人工操作信息录制生成交互事件,其中源应用用于录制交互事件。
具体地,录制阶段中,测试者需要在源应用上手动完成测试功能,与此同时,本发明将通过安卓调试桥工具(ADB,Android Debug Bridge)工具获取用户交互事件的相关信息,如动作的基本类型(点击、松开或滑动)、交互的坐标、动作发生的时间等人工操作信息。这些信息会被记录在一个文件中生成交互事件,并在之后的阶段使用。
为了获得用户事件的类型,本发明需要对录制阶段记录的用户输入进行分析和分类(如根据点击和松开的时间间隔来判断是否为长按)。处理后的事件可以表示为一个具有三个元素的元组<a,p,w>,其中a表示事件的类别,p表示事件的载荷,w表示交互的控件(用该控件的类型、坐标、长度、宽度记录)。优选的,图5列举了部分事件和对应负载的类型。
进一步的,如图2所示,通过自回放(self-replay)将交互事件形成新的交互事件,具体包括:
需要说明的是,录制阶段的只是记录了交互事件的坐标,为了在测试回放的时候可以匹配测试的目标应用的控件,需要通过自回放阶段提取源应用上控件的文本描述等属性,将收录的交互事件与控件一一对应收录。
步骤S21,将交互序列集内的交互事件在源应用上进行至少一次自回放(self-replay)。
具体地,在增强阶段中,本发明会将处理后的事件序列<E0,E1,E2,…,Ek>在源应用上先进行一次自回放(self-replay)。
步骤S22,通过自回放(self-replay)得到新的交互事件,其中交互事件和新的交互事件均包括交互的控件。
进一步的,如图3所示,通过自回放(self-replay)得到新的交互事件,具体包括:
步骤S221,根据每个交互事件交互的控件,确定每个交互事件对应的交互控件。
步骤S222,获取交互控件在当前用户界面层次结构(UI hierarchy,UserInterface hierarchy)对应的可扩展标记语言可扩展标记语言(XML)文件中的第一文本信息。
具体地,在自回放过程中的,我们会将每一个事件E对应的控件w在当前用户界面层次结构(UI hierarchy,User Interface hierarchy)对应的可扩展标记语言(XML)文件中的属性提取出来,包括resource-id,text,content-desc,对于输入框控件相邻控件的text也会被提取,这些文本信息会作为之后匹配用的文本信息d。
步骤S223,通过第一文本信息形成测试预言和新的交互事件。
具体地,如果该控件存在非文字图标,通过图像描述(image captioning)技术获取该图标的文字描述,并将其添加到文本信息d中。之后用文本信息d替换掉元组中的控件w,从而得到新的元组<a,p,d>。在自回放完成后,将测试结果显示在屏幕上。比如在发邮件事件完成后,应用会显示“发送成功”的弹出,若发送失败则不会显示。提取最终图形化用户界面(GUI,Graphic User Interface)上的文本信息,并用这些文字信息组成测试的测试预言(oracle),即测试的预计输出。
进一步的,获取交互控件在当前用户界面层次结构对应的可扩展标记语言文件中的第一文本信息之后,方法还包括:
若交互控件存在非文字图标,则通过图像描述(image captioning)技术获取非文字图标的文字描述,并将文字描述添加到第一文本信息中。
进一步的,如图4所示,获取目标应用的控件信息,根据控件信息匹配对应的新的交互事件,通过新的交互事件对目标应用进行测试回放,具体包括:
步骤S31,获取目标应用需要回放的新的交互事件和目标应用当前图形化用户界面(GUI,Graphic User Interface)上的第二文本信息,其中第二文本信息从交互控件在目标应用的当前用户界面层次结构(UI hierarchy,User Interface hierarchy)对应的可扩展标记语言可扩展标记语言(XML)文件中提取得到。
具体地,图7为本发明提供的测试回放的流程图,其中获取当前需要回放的交互事件以及当前图形化用户界面(GUI,Graphic User Interface)上的控件的文本信息d’(由控件在可扩展标记语言(XML)文件中的文本信息以及通过图像描述方法获得的文字描述组成)
步骤S32,通过词移距离(Word Mover’s Distance)算法得到第一文本信息和第二文本信息之间的语义相似度。
具体地,利用词移距离(Word Mover’s Distance)算法,本发明可以获得事件E对应的d与屏幕上各个控件的d’之间的语义相似度。在这些控件中,本发明将获取语义相似度最高的控件用于匹配。
步骤S33,若语义相似度大于预设的语义相似度阈值,则判定交互控件匹配成功,通过对应的新的交互事件对目标应用进行测试回放。
具体地,基于提前设定好的阈值,可以判定控件是否成功匹配。如果相似度高于阈值,说明匹配成功,交互事件E会在目标应用上重放。
步骤S34,在每个新的交互事件回放之后,降低新的交互事件对应的预设的语义相似度阈值。
具体地,对于不同应用中同类功能的实现步骤,差异通常出现在前几步,而后几步关键操作往往是相同,因此本发明会在每个事件回放后降低阈值,从而增加匹配成功率,避免死循环的产生。
步骤S35,测试回放完成之后,提取目标应用在当前图形化用户界面(GUI,GraphicUser Interface)中的关键文本信息,通过词移距离(Word Mover’s Distance)算法比较关键文本信息与测试预言的语义相似度,判断测试是否通过。
进一步的,若语义相似度大于预设的语义相似度阈值,则判定交互控件匹配成功,通过对应的新的交互事件对目标应用进行测试回放,方法还包括:
若交互控件匹配失败,则通过广度优先搜索(BFS,Breath First Search)法在目标应用中寻找匹配的交互控件或优先跳过,在后续匹配中检测优先跳过的新的交互事件是否与当前图形化用户界面(GUI,Graphic User Interface)上的交互控件匹配。
具体地,对于匹配不成功的控件,本发明会通过广度优先搜索(BFS,Breath FirstSearch)的方法在应用中寻找。考虑到在不同应用完成相同功能时,有些点击事件的数量和在序列<E0,E1,E2,…,Ek>中的位置,可能存在差异,因此,对于匹配不成功的点击事件,优先跳过,但是为了避免因为顺序不一样而跳过了重要的事件,在之后的匹配中本发明还会在检测之前跳过的事件是否能与当前图形化用户界面(GUI,Graphic User Interface)上的控件匹配。倘若通过可扩展标记语言(XML)文件和控件图标无法获得任何可用于匹配的信息,本发明会根据控件的类型以及其在用户界面层次结构中的位置来实现匹配。
综上,本实施例提供了一种基于语义匹配和录制重放的安卓应用测试方法及装置,方法包括获取人工操作信息,将所述人工操作信息录制生成交互事件;将多个所述交互事件收录生成交互序列集,通过自回放(self-replay)将所述交互事件形成新的交互事件;获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。将测试者在移动设备上的人工操作信息收录生成交互事件,可以在不同目标应用测试中进行测试回放。将交互时涉及到的交互控件的有用信息提取出来,在回放时与目标应用的同类信息进行匹配,实现“跨应用”、“跨版本”和“跨设备”的测试回放,提高了可重复利用率,进而降低了应用的测试成本。
为了更好地实施以上方法,本申请实施例还提供一种基于语义匹配和录制重放的安卓应用测试装置100,该装置具体可以集成在电子设备中,该电子设备可以为终端、服务器、个人电脑等设备。比如,在本实施例中,该装置可以包括:录制模块101、增强模块102和测试回放模块103,具体如下(如图8):
(1)录制模块101,用于获取人工操作信息,将所述人工操作信息录制生成交互事件;
(2)增强模块102,用于将多个所述交互事件收录生成交互序列集,通过自回放(self-replay)将所述交互事件形成新的交互事件;
(3)测试回放模块103,用于获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。
在一些实施例中,一种基于语义匹配和录制重放的安卓应用测试装置100包括录制模块101、增强模块102和测试回放模块103,录制模块101获取人工操作信息,将所述人工操作信息录制生成交互事件;增强模块102将多个所述交互事件收录生成交互序列集,通过自回放(self-replay)将所述交互事件形成新的交互事件;测试回放模块103获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于计算机可读存储介质中,并由处理器进行加载和执行。
基于上述基于语义匹配和录制重放的安卓应用测试方法,本实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例的基于语义匹配和录制重放的安卓应用测试方法中的步骤。例如,执行以上描述的图1中的方法步骤S10至S30、图2中的方法步骤S21至S22、图3中的方法步骤S221至S223、图4中的方法步骤S31至S35。具体步骤如下:
步骤S10,获取人工操作信息,将人工操作信息录制生成交互事件;
步骤S20,将多个交互事件收录生成交互序列集,通过自回放(self-replay)将交互事件形成新的交互事件;
步骤S30,获取目标应用的控件信息,根据控件信息匹配对应的新的交互事件,通过新的交互事件对目标应用进行测试回放。
在一些实施例中,获取人工操作信息,将人工操作信息录制生成交互事件,具体包括:
通过安卓调试桥工具(ADB,Android Debug Bridge)在源应用上获取人工操作信息,将人工操作信息录制生成交互事件,其中源应用用于录制交互事件。
在一些实施例中,通过自回放(self-replay)将交互事件形成新的交互事件,具体包括:
步骤S21,将交互序列集内的交互事件在源应用上进行至少一次自回放(self-replay);
步骤S22,通过自回放(self-replay)得到新的交互事件,其中交互事件和新的交互事件均包括交互的控件。
在一些实施例中,通过自回放(self-replay)得到新的交互事件,具体包括:
步骤S221,根据每个交互事件的交互的控件,确定每个交互事件对应的交互控件;
步骤S222,获取交互控件在当前用户界面层次结构(UI hierarchy,UserInterface hierarchy)对应的可扩展标记语言可扩展标记语言(XML)文件中的第一文本信息;
步骤S223,通过第一文本信息形成测试预言和新的交互事件。
在一些实施例中,获取交互控件在当前用户界面层次结构对应的可扩展标记语言文件中的第一文本信息之后,方法还包括:
若交互控件存在非文字图标,则通过图像描述(image captioning)技术获取非文字图标的文字描述,并将文字描述添加到第一文本信息中。
在一些实施例中,获取目标应用的控件信息,根据控件信息匹配对应的新的交互事件,通过新的交互事件对目标应用进行测试回放,具体包括:
步骤S31,获取目标应用需要回放的新的交互事件和目标应用当前图形化用户界面(GUI,Graphic User Interface)上的第二文本信息,其中第二文本信息从交互控件在目标应用的当前用户界面层次结构(UI hierarchy,User Interface hierarchy)对应的可扩展标记语言可扩展标记语言(XML)文件中提取得到;
步骤S32,通过词移距离(Word Mover’s Distance)算法得到第一文本信息和第二文本信息之间的语义相似度;
步骤S33,若语义相似度大于预设的语义相似度阈值,则判定交互控件匹配成功,通过对应的新的交互事件对目标应用进行测试回放;
步骤S34,在每个新的交互事件回放之后,降低新的交互事件对应的预设的语义相似度阈值;
步骤S35,测试回放完成之后,提取目标应用在当前图形化用户界面(GUI,GraphicUser Interface)中的关键文本信息,通过词移距离(Word Mover’s Distance)算法比较关键文本信息与测试预言的语义相似度,判断测试是否通过。
在一些实施例中,若语义相似度大于预设的语义相似度阈值,则判定交互控件匹配成功,通过对应的新的交互事件对目标应用进行测试回放,方法还包括:
若交互控件匹配失败,则通过广度优先搜索(BFS,Breath First Search)法在目标应用中寻找匹配的交互控件或优先跳过,在后续匹配中检测优先跳过的新的交互事件是否与当前图形化用户界面(GUI,Graphic User Interface)上的交互控件匹配。
基于上述基于语义匹配和录制重放的安卓应用测试方法,本发明还提供了一种终端设备,如图9所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及移动终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
综上所述,与现有技术相比,本发明具有以下有益效果:一种基于语义匹配和录制重放的安卓应用测试方法及装置,所述方法包括获取人工操作信息,将所述人工操作信息录制生成交互事件;将多个所述交互事件收录生成交互序列集,通过自回放(self-replay)将所述交互事件形成新的交互事件;获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。将测试者在移动设备上的人工操作信息收录生成交互事件,可以在不同目标应用测试中进行测试回放。将交互时涉及到的交互控件的有用信息提取出来,在回放时与目标应用的同类信息进行匹配,实现“跨应用”、“跨版本”和“跨设备”的测试回放,提高了可重复利用率,进而降低了应用的测试成本。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述方法包括:
获取人工操作信息,将所述人工操作信息录制生成交互事件;
将多个所述交互事件收录生成交互序列集,通过自回放将所述交互事件形成新的交互事件;
获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。
2.根据权利要求1所述的基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述获取人工操作信息,将所述人工操作信息录制生成交互事件,具体包括:
通过安卓调试桥工具在源应用上获取所述人工操作信息,将所述人工操作信息录制生成所述交互事件,其中所述源应用用于录制所述交互事件。
3.根据权利要求2所述的基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述通过自回放将所述交互事件形成新的交互事件,具体包括:
将所述交互序列集内的所述交互事件在所述源应用上进行至少一次所述自回放;
通过所述自回放得到新的交互事件,其中所述交互事件和所述新的交互事件均包括交互的控件。
4.根据权利要求3所述的基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述通过所述自回放得到新的交互事件,具体包括:
根据每个所述交互事件的所述交互的控件,确定每个所述交互事件对应的交互控件;
获取所述交互控件在当前用户界面层次结构对应的可扩展标记语言文件中的第一文本信息;
通过所述第一文本信息形成测试预言和所述新的交互事件。
5.根据权利要求4所述的基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述获取所述交互控件在当前用户界面层次结构对应的可扩展标记语言文件中的第一文本信息之后,所述方法还包括:
若所述交互控件存在非文字图标,则通过图像描述技术获取所述非文字图标的文字描述,并将所述文字描述添加到所述第一文本信息中。
6.根据权利要求5所述的基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放,具体包括:
获取所述目标应用需要回放的所述新的交互事件和所述目标应用当前图形化用户界面上的第二文本信息,其中所述第二文本信息从所述交互控件在所述目标应用的当前用户界面层次结构对应的可扩展标记语言文件中提取得到;
通过词移距离算法得到所述第一文本信息和所述第二文本信息之间的语义相似度;
若所述语义相似度大于预设的语义相似度阈值,则判定所述交互控件匹配成功,通过对应的所述新的交互事件对所述目标应用进行测试回放;
在每个所述新的交互事件回放之后,降低所述新的交互事件对应的所述预设的语义相似度阈值;
所述测试回放完成之后,提取所述目标应用在当前图形化用户界面中的关键文本信息,通过词移距离算法比较所述关键文本信息与所述测试预言的语义相似度,判断测试是否通过。
7.根据权利要求6所述的基于语义匹配和录制重放的安卓应用测试方法,其特征在于,所述若所述语义相似度大于预设的语义相似度阈值,则判定所述交互控件匹配成功,通过对应的所述新的交互事件对所述目标应用进行测试回放,所述方法还包括:
若所述交互控件匹配失败,则通过广度优先搜索法在所述目标应用中寻找匹配的所述交互控件或优先跳过,在后续匹配中检测优先跳过的所述新的交互事件是否与当前图形化用户界面上的所述交互控件匹配。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~7任意一项所述的一种基于语义匹配和录制重放的安卓应用测试方法中的步骤。
9.一种基于语义匹配和录制重放的安卓应用测试装置,其特征在于,包括:
录制模块,用于获取人工操作信息,将所述人工操作信息录制生成交互事件;
增强模块,用于将多个所述交互事件收录生成交互序列集,通过自回放将所述交互事件形成新的交互事件;
测试回放模块,用于获取目标应用的控件信息,根据所述控件信息匹配对应的所述新的交互事件,通过所述新的交互事件对所述目标应用进行测试回放。
10.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-7任意一项所述的基于语义匹配和录制重放的安卓应用测试方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211425356.0A CN115794619A (zh) | 2022-11-15 | 2022-11-15 | 一种基于语义匹配和录制重放的安卓应用测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211425356.0A CN115794619A (zh) | 2022-11-15 | 2022-11-15 | 一种基于语义匹配和录制重放的安卓应用测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794619A true CN115794619A (zh) | 2023-03-14 |
Family
ID=85437610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211425356.0A Pending CN115794619A (zh) | 2022-11-15 | 2022-11-15 | 一种基于语义匹配和录制重放的安卓应用测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794619A (zh) |
-
2022
- 2022-11-15 CN CN202211425356.0A patent/CN115794619A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8627296B1 (en) | Unified unit and integration test with automatic mock creation | |
CN110275834B (zh) | 用户界面自动化测试系统及方法 | |
Soltani et al. | A guided genetic algorithm for automated crash reproduction | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
CN111209185B (zh) | 基于关键词的自动化测试方法及计算机可读存储介质 | |
US10509719B2 (en) | Automatic regression identification | |
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
US11436133B2 (en) | Comparable user interface object identifications | |
CN112052169A (zh) | 测试管理方法、系统、设备以及计算机可读存储介质 | |
CN108446224B (zh) | 移动端上应用程序的性能分析方法、存储介质 | |
CN107622017B (zh) | 一种通用自动化软件测试的解析方法 | |
Wendland et al. | Andror2: A dataset of manually-reproduced bug reports for android apps | |
Sun et al. | Ui components recognition system based on image understanding | |
WO2021061185A1 (en) | Test automation of application | |
CN113032279A (zh) | 一种基于语义路径搜索的Web应用测试修复方法 | |
US11036478B2 (en) | Automated determination of transformation objects | |
CN115794619A (zh) | 一种基于语义匹配和录制重放的安卓应用测试方法及装置 | |
US9489284B2 (en) | Debugging method and computer program product | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN114676436A (zh) | 一种基于结构化变异的安卓应用多媒体解析库漏洞挖掘系统及方法 | |
CN113468050A (zh) | 基于画布的测试方法、装置、计算机设备及存储介质 | |
CN115705297A (zh) | 代码调用检测方法、装置、计算机设备以及存储介质 | |
CN113849415A (zh) | 控件测试方法、装置、存储介质及电子设备 | |
CN112559377A (zh) | 一种首次测试用例的生成方法和装置 | |
von Mayrhauser et al. | Efficient testing of software modifications |
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 |