CN105468529B - 一种安卓应用ui控件精准遍历方法和装置 - Google Patents

一种安卓应用ui控件精准遍历方法和装置 Download PDF

Info

Publication number
CN105468529B
CN105468529B CN201510940069.7A CN201510940069A CN105468529B CN 105468529 B CN105468529 B CN 105468529B CN 201510940069 A CN201510940069 A CN 201510940069A CN 105468529 B CN105468529 B CN 105468529B
Authority
CN
China
Prior art keywords
activity
controls
click
objects
strategy
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.)
Active
Application number
CN201510940069.7A
Other languages
English (en)
Other versions
CN105468529A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510940069.7A priority Critical patent/CN105468529B/zh
Publication of CN105468529A publication Critical patent/CN105468529A/zh
Application granted granted Critical
Publication of CN105468529B publication Critical patent/CN105468529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Abstract

本发明实施例提供了一种安卓应用UI控件精准遍历方法,涉及计算机技术领域。所述方法包括:由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;根据所述点击操作记录测试结果并输出。本发明解决了先遍历算法适用性不强,对UI界面是随机无序点击,对功能的检测能力较弱,而且不能进行测试策略设置,导致用户主动干预程度较低,取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。

Description

一种安卓应用UI控件精准遍历方法和装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种安卓应用UI控件精准遍历方法和一种安卓应用UI控件精准遍历装置。
背景技术
随着智能手机的发展,出现了多种支持智能手机的系统。比如Android(安卓)系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端。Android平台由操作系统、中间件、用户界面和应用软件组成。
随着Android系统的市场占有率的增加,越来越多的开发者基于Android系统开发APP(Application,应用),使用户使用Android手机更方便。对于开发者而言,在将一个应用提供给用户使用之前,需要测试应用中各UI(User Interface,用户界面)控件的性能,以保证应用的性能良好,因此,在测试过程中需要对每个UI控件都测试到,即实现对UI控件的遍历。
目前已有的遍历技术都是基于Android系统提供的测试工具,如Instrumentation进行实现,首先需要对被测应用进行预处理,主要内容就是生成一个针对被测应用的测试应用,再使用同一签名将测试应用和被测试应用进行签名,然后将被测试应用和测试应用都安装到手机上,然后利用Android Instrumentation的启动方式启动测试。但是上述的方法必须先获取到被测软件的安装文件并进行预处理,操作繁琐,对于手机已经装好的应用则无法实现遍历操作,适用性不强,对UI界面是随机无序点击,对功能的检测能力较弱,而且不能进行测试策略设置,导致用户主动干预程度较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种安卓应用UI控件精准遍历方法和相应的安卓应用UI控件精准遍历装置。
依据本发明的一个方面,提供了一种安卓应用UI控件精准遍历方法,包括:
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。
优选地,所述点击条件策略包括:
禁止测试的UI控件、允许点击的UI控件。
优选地,所述点击条件策略包括:递归点击策略;
进一步的,所述根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作的步骤,包括:
根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;
如果点击完毕,则触发当前Activity对象的上一级Activity对象到Activity栈顶;
如果未点击完毕,则对还未点击的UI控件进行点击操作。
优选地,在由测试进程在监控到目标应用启动之前,还包括:
在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
通过所述第一孵化进程启动所述测试进程并加载所述策略库。
优选地,所述根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略的步骤,包括:
根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
优选地,在由测试进程在监控到目标应用启动之前,还包括:
通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
根据本发明的另一方面,提供了一种安卓应用UI控件精准遍历装置,包括:
Activity名称获取模块,适于由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
点击条件策略获取模块,适于根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
点击操作执行模块,适于根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
测试结果输出模块,适于根据所述点击操作记录测试结果并输出。
优选地,所述点击条件策略包括:
禁止测试的UI控件、允许点击的UI控件。
优选地,所述点击条件策略包括:递归点击策略;
进一步的,所述点击操作执行模块,包括:
判断子模块,适于根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;如果点击完毕,则进入触发子模块;如果未点击完毕,则进入点击操作执行子模块;
触发子模块,适于触发当前Activity对象的上一级Activity对象到Activity栈顶;
点击操作执行子模块,适于对还未点击的UI控件进行点击操作。
优选地,在Activity名称获取模块之前,还包括:
孵化进程替换模块,适于在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
启动加载模块,适于通过所述第一孵化进程启动所述测试进程并加载所述策略库。
优选地,所述点击条件策略获取模块,包括:
点击条件策略确定子模块,适于根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
优选地,在Activity名称获取模块之前,还包括:
快照获取模块,适于通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
点击条件策略配置模块,适于基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
条件策略存入模块,适于以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
根据本发明的另一方面,提供了一种安卓目标应用崩溃统计设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。
根据本发明的一种安卓应用UI控件精准遍历方法可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。由此解决了必须先获取到被测软件的安装文件并进行预处理,操作繁琐,对于手机已经装好的应用则无法实现遍历操作,适用性不强,对UI界面是随机无序点击,对功能的检测能力较弱,而且不能进行测试策略设置,导致用户主动干预程度较低,取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历方法实施例的步骤流程图;
图2示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历方法实施例的步骤流程图;
图3示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历方法实施例的步骤流程图;
图4示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历装置实施例的结构框图;
图5示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历装置实施例的结构框图;
图6示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历装置实施例的结构框图;及
图7示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历设备实施例的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历方法实施例的步骤流程图,具体可以包括如下步骤:
步骤110,由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
Activity是Android组件中最基本也是最为常见用的四大组件之一,Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。在一个Android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。在实际应用中,一个应用中至少包含一个Activity。
在实际应用中,会利用栈存放目标应用中已经启动的Activity对象。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始。在本发明实施例中,将存放Activity对象的的栈称为Activity栈。一般情况下,位于栈顶的Activity组件即代表当前被激活的Activity组件。目标应用启动后,会显示一启动界面,此时该界面对应的Activity处在栈顶位置,包括Activity名称等信息。
上述目标应用包括可以在Android系统中运行的应用,如360安全卫士、360安全浏览器等。测试进程是用以实现测试功能的进程,在本发明实施例中,其作用包括监控目标应用是否启动,以及从Activity栈中获取信息等。
所以在本发明实施例中,由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
步骤120,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略。
在本发明实施例中,可以预设策略库,策略库中存放各个应用的各Activity对应的点击条件策略。具体地,可以在策略库,建立Activity名称与相应Activity的点击条件策略的对应关系。其中的点击条件策略是指对Activity中的各UI控件的点击方案,可以包括点击顺序、可点击控件、不可点击控件等。
例如,对于某一目标应用的某个Activity M,其中包括四个UI控件,分别为A、B、C、D。
则在策略库中,与该Activity M对应的点击条件策略可以为:
A、B、D为可点击控件,D为不可点击控件;点击顺序为A、B、D。
因此,可以在获取Activity名称后,从策略库中获取与Activity名称对应的点击条件策略。
当然,在实际应用中,在点击条件策略中,还可设置各UI控件的点击次数,点击比例等等。那么在相应Activity出现在栈顶时,对各UI控件进行测试时,则可以记录各UI控件的点击次数、点击比例等参数,根据参数调整点击操作。
当然,预设策略库可以在本步骤之前,或者是本步骤之前的任一步骤之前预定,对此,本发明实施例不加以限定。
另外,在本发明实施例中,优选地,所述点击条件策略包括:禁止测试的UI控件、允许点击的UI控件。
在实际应用中,对应某一UI(User Interface,用户界面)控件的可能为一个游戏,或者是一段视频等,在遍历过程中,若要点击上述的UI控件,则会加载一个游戏或一段视频,耗时较长,会影响测试的效率。所以,在本发明实施例中,可以在策略库的点击条件策略中设定UI控件为禁止测试的UI控件或者为允许点击的UI控件,则对于禁止测试的UI控件,不会对其进行点击操作。
步骤130,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作。
如上述,点击条件策略中包括对Activity中的各UI控件的点击方案。所以,在本发明实施例中,在获取了点击条件策略之后,可以根据点击条件策略中包括的对Activity中的各UI控件的点击方案,对Activity中的各UI控件进行点击操作。
例如,对于步骤120中所述的Activity,若从策略库中获取到与之对应的点击条件策略为上述的:A、B、D为可点击控件,D为不可点击控件;点击顺序为A、B、D。
则在本发明实施例中,当Activity栈顶,出现该Activity M的情况下,可按序会对该Activity执行的点击操作:如点击A,点击B,点击D。
步骤140,根据所述点击操作记录测试结果并输出。
在实际应用中,可能会存在目标应用中某Activity的部分UI控件性能不良,如点击无响应、响应时间较长等情况。测试人员需要根据各UI控件的实际的点击情况分析得出性能不良的控件。
因此,在本发明实施例中,会根据点击操作记录测试结果并输出,以供测试人员使用。其中的测试结果是指对应点击操作的结果,具体可以包括是否响应成功、响应时间等信息。
对于具体的输出方式,本发明实施例不加以限定。
在本发明实施例中,可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
实施例二
参照图2,示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历方法实施例的步骤流程图,具体可以包括如下步骤:
步骤210,在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程。
在实际应用中,Android系统的正常启动过程大致为:启动系统—>init进程读取启动init.rc—>init进程创建zygote(孵化器)进程—>zygote进程创建java虚拟机载入zygoteInit类—>通过所述虚拟机注册需要监听的socket—>等待ActivityManagerService向socket写入创建进程的创建消息—>zygote进程根据所述创建消息创建对应进程。
在Android系统中,所有的应用程序进程以及系统服务进程System Server都是由zygote进程孕育(fork)出来的,因此,本发明可通过Android系统初始的zygote进程替换为第一zygote进程实现启动测试进程并加载策略库。
当然,在替换Android系统初始的zygote进程为第一zygote进程后,需要重启Android系统。替换后的第一zygote进程的功能除了包括初始的zygote进程的功能之外,还添加了启动测试进程并加载策略库的功能。
在实际应用中,可以利用Xposed框架实现将Android系统初始的孵化器进程替换为指定的第一孵化器进程。其中,Xposed框架是一款可以在不修改APK(AndroidPackage,安卓安装包)的情况下影响程序运行的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。所以,在本发明实施例中,可以利用Xposed框架,将Android系统初始的孵化器进程替换为指定的第一孵化器进程,但是不会影响Android系统原始的其他任何功能。
步骤220,通过所述第一孵化进程启动所述测试进程并加载所述策略库。
基于前述第一zygote进程的逻辑,可以通过第一zygote进程启动所述的测试进程并加载所述策略库。
步骤230,由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
步骤240,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;所述点击条件策略包括递归点击策略。
在实际应用中,点击某一Activity中的一个UI控件,可能会触发启动一个新的Activity。在本发明实施例中,可以将该新的Activity称为上述UI控件所在Activity的下一级。而且该新的Activity中可能还会包括多个UI控件,则在本发明实施例中,会从策略库中获取对应该新的Activity的点击条件策略,从而实现对该新的Activity的UI控件的遍历。在本发明实施例中,在对该新的Activity中的UI控件实现遍历之后,会返回其上一级Activity,即可以触发启动该新的Activity的UI控件所在的Activity。
在本发明实施例中,点击条件策略包括递归点击策略。所述递归点击策略包括在当前Activity中允许点击的UI控件全部测试完毕之后,再返回上一级Activity。在实际应用中,对于一个目标应用来说,其Activity是以树形结构存在。比如目标应用启动后的Activity是顶级Activity,而在该Activity中点击某个UI控件,如果该UI控件表示跳转到下一个界面,那么则生成下一级的Activity,以此类推。当然,实际应用中,一个Activity中可能包括不跳转的UI控件。因此,当点击了一个父Activity中的一个UI控件后,其可能跳转到下一级的子Activity,此时父Activity的UI控件可能还未测试完毕,那么此时可以先测试子Activity的UI控件,子Activity的UI控件测试完毕之后,返回该子Activity的父Activity,测试该父Activity的下一个UI控件。以此类推,直到各Activity的UI控件测试完毕。
当然,在实际应用中,在递归点击条件策略中,还可设置各UI控件的点击次数,点击比例等等。那么在相应Activity出现在栈顶时,对各UI控件进行测试时,则可以记录各UI控件的点击次数、点击比例等参数,根据参数调整点击操作。
步骤250,根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;如果点击完毕,则进入步骤260;如果未点击完毕,则进入步骤270。
根据上述的递归点击策略,在本发明实施例中,可以判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕。如果点击完毕,则可以进一步对当前Activity对象的上一级Activity对象进行点击操作,首先,需要将显示的界面切换至上一级Activity对象对应的界面,即触发当前Activity对象的上一级Activity对象到Activity栈顶;而如果未点击完毕,则针对未点击的UI控件,继续执行点击操作。
步骤260,触发当前Activity对象的上一级Activity对象到Activity栈顶。
在本发明实施例中,当前Activity对象的上一级Activity对象是指其中包含可以触发当前Activity对象的UI控件的Activity对象。在实际应用中,在一目标应用中,某一Activity对象的上一级Activity对象只有一个。
在执行该步骤之前,当前Activity对象是指当前显示的界面对应的Activity对象,其在Activity栈顶。若触发当前Activity对象的上一级Activity对象到Activity栈顶,则会将上一级Activity对象置于Activity栈顶。
例如,对于应用360安全卫士,当前显示的Activity对象名称为全盘扫描,则该全盘扫描对应的Activity对象位于Activity栈顶。
若在名称为查杀修复的Activity对象中存在一UI控件,点击该控件即可将显示界面切换至名称为全盘扫描的Activity对象,则该名称为全盘扫描的Activity对象即为名称为全盘扫描的Activity对象的上一级。
则在本发明实施例中,会触发名称为全盘扫描的Activity对象到Activity栈顶。
步骤270,对还未点击的UI控件进行点击操作。
在本发明实施例中,会根据各还未点击的UI控件所在的Activity对象对应的点击条件策略,对各还未点击的UI控件进行点击操作。
对于步骤250-步骤270,进一步的,比如一个目标应用I,其顶级Activity M有UI控件A、B、C、D,其UI控件A对应Activity M1,UI控件B对应Activity M2,UI控件C、D还在Activity M中操作。Activity M1中有UI控件A1、A2、A3,均在Activity M1中操作。ActivityM2有UI控件B1、B2、B3,均在Activity M2中操作。
那么测试进程启动目标应用I后,监控到当前Activity栈顶为Activity M,则获取该Activity M的递归点击策略,该递归点击策略允许测试UI控件A、B、C,禁止测试UI控件D,其点击顺序为UI控件C、UI控件A、UI控件B。那么点击UI控件C,记录对Activity M的已点击的UI控件C。此时Activity栈顶为还为Activity M,根据前述记录判断UI控件C已点击,那么继续按序点击UI控件A。
此后Activity栈顶变为Activity M1,那么获取Activity M1的递归点击策略,Activity M1的递归点击策略为UI控件A1、A2可点击,其点击顺序任意,而UI控件A3不允许点击。那么在Activity M1中点击A1、A2进行测试,此时判断Activity M1的UI控件全部测试完毕,则返回其上一级Activity M,此时Activity栈顶为Activity M。那么根据Activity M的递归点击策略,根据记录发现还有UI控件B没有测试,则继续点击Activity M的UI控件B,则Activity栈顶变为Activity M2,获取Activity M2的递归点击策略,其按序点击UI控件B1、B2、B3,那么根据对UI控件B1、B2、B3测试完毕之后,则可返还上一级Activity M。
Activity栈顶变为Activity M,根据Activity M的测试记录和递归点击策略,发现各UI控件都测试完毕,则完成测试。
当然,实际应用中,如果某次点击后,目标应用的应用进程崩溃,则记录当前已测试的进度,在重新启动后,可以重头开始测试,也可以跳转到相应进度,再继续测试。
步骤280,根据所述点击操作记录测试结果并输出。
在实际应用中,对各UI控件的测试包括稳定性、UI控件的响应速度,系统性能参数等等。在根据对UI控件的点击操作获得相应UI控件的测试结果后,可以将该测试结果输出。比如存储到指定位置,或者输出到指定界面中进行展示等等。
在本发明实施例中,同样可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
另外,本发明实施例中的点击条件策略包括递归点击策略,根据递归点击策略,可以判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕,进而可以保证各Activity对象中的UI控件都可以根据点击条件策略被点击,进一步提高了UI遍历的准确性。
实施例三
参照图3,示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历方法实施例的步骤流程图,具体可以包括如下步骤:
步骤310,通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照。
UI Automator工具是一种Android系统的测试工具,利用该工具可以获取各界面的快照,即各Activity对象以及UI控件的快照,从而可以分析得到该Activity对象的布局以及各UI控件的属性等信息,例如可以得知该Activity对象所包含的UI控件、各UI控件的位置以及各UI控件的具体属性等信息。
步骤320,基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略。
如上述,基于每个Activity对象及其UI控件的快照,可以得知本发明所需的每个Activity对象及其UI控件的信息。因此,可以基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略。
当然,在本发明实施例中,具体的配置点击条件策略的原则,针对不同的Activity对象,可以采用同样的原则,也可以由测试人员根据需求人工设定不同的原则,对此,本发明实施例不加以限定。
步骤330,以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
在实际应用中,可能会在不同的应用中,存在相同的Activity对象,即存在相同的界面。所以在本发明实施例中,为了避免引起混乱,以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
在本发明实施例中,对于一个目标应用,可以在配置完该目标应用的各Activity的条件策略之后,再进入步骤340。
步骤340,由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
步骤350,根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
步骤360,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作。
步骤370,根据所述点击操作记录测试结果并输出。
在本发明实施例中,同样可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
另外,本发明实施例可以通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照,基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略,从而可以实现根据测试需求自动化的为各个Activity对象生成点击条件策略,进一步地提高了人工干预的能力,提高了遍历算法灵活性。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例四
参照图4,示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历装置实施例的结构框图,具体可以包括如下模块:
Activity名称获取模块410,适于由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
点击条件策略获取模块420,适于根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略。
点击操作执行模块430,适于根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作。
测试结果输出模块440,适于根据所述点击操作记录测试结果并输出。
在本发明实施例中,可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
实施例五
参照图5,示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历装置实施例的结构框图,具体可以包括如下模块:
孵化进程替换模块510,适于在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程。
启动加载模块520,适于通过所述第一孵化进程启动所述测试进程并加载所述策略库。
Activity名称获取模块530,适于由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
点击条件策略获取模块540,适于根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;所述点击条件策略包括,递归点击策略。
点击操作执行模块550,适于根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作。具体包括:
判断子模块551,适于根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;如果点击完毕,则进入触发子模块552;如果未点击完毕,则进入点击操作执行子模块553。
触发子模块552,适于触发当前Activity对象的上一级Activity对象到Activity栈顶。
点击操作执行子模块553,适于对还未点击的UI控件进行点击操作。
测试结果输出模块560,适于根据所述点击操作记录测试结果并输出。
在本发明实施例中,同样可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
另外,本发明实施例中的点击条件策略包括递归点击策略,根据递归点击策略,可以判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕,进而可以保证各Activity对象中的UI控件都可以根据点击条件策略被点击,进一步提高了UI遍历的准确性。
实施例六
参照图6,示出了根据本发明一个实施例的一种安卓应用UI控件精准遍历装置实施例的结构框图,具体可以包括如下模块:
快照获取模块610,适于通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照。
点击条件策略配置模块620,适于基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略。
条件策略存入模块630,适于以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
Activity名称获取模块640,适于由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称。
点击条件策略获取模块650,适于根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略。具体包括:
点击条件策略确定子模块651,适于根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
点击操作执行模块660,适于根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作。
测试结果输出模块670,适于根据所述点击操作记录测试结果并输出。
在本发明实施例中,同样可以由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称,根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略,根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作,根据所述点击操作记录测试结果并输出。取得了可以对Android系统中全部应用进行遍历操作,提高了适用性,同时可以人工预置对UI界面的点击方案,提高了人工干预程度且功能检测能力的有益效果。
另外,本发明实施例可以通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照,基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略,从而可以实现根据测试需求自动化的为各个Activity对象生成点击条件策略,进一步地提高了人工干预的能力,提高了遍历算法灵活性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
实施例七
参照图7,示出了根据本发明一个实施例的安卓应用UI控件精准遍历设备实施例的结构框图,设备700可以包括如下模块:
存储器710,加载有多条可执行指令。
处理器720,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。
所述的可执行指令包括执行上述任意步骤的方法。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安卓应用UI控件精准遍历设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种安卓应用UI控件精准遍历方法,包括:
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。
A2、如A1所述的方法,所述点击条件策略包括:
禁止测试的UI控件、允许点击的UI控件。
A3、如A1或A2所述的方法,所述点击条件策略包括:递归点击策略;
进一步的,所述根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作的步骤,包括:
根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;
如果点击完毕,则触发当前Activity对象的上一级Activity对象到Activity栈顶;
如果未点击完毕,则对还未点击的UI控件进行点击操作。
A4、如A1所述的方法,在由测试进程在监控到目标应用启动之前,还包括:
在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
通过所述第一孵化进程启动所述测试进程并加载所述策略库。
A5、如A1所述的方法,所述根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略的步骤,包括:
根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
A6、如A1所述的方法,在由测试进程在监控到目标应用启动之前,还包括:
通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
本发明还公开了B7、一种安卓应用UI控件精准遍历装置,包括:
Activity名称获取模块,适于由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
点击条件策略获取模块,适于根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
点击操作执行模块,适于根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
测试结果输出模块,适于根据所述点击操作记录测试结果并输出。
B8、如B7所述的装置,所述点击条件策略包括:
禁止测试的UI控件、允许点击的UI控件。
B9、如B7或B8所述的装置,所述点击条件策略包括:递归点击策略;
进一步的,所述点击操作执行模块,包括:
判断子模块,适于根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;如果点击完毕,则进入触发子模块;如果未点击完毕,则进入点击操作执行子模块;
触发子模块,适于触发当前Activity对象的上一级Activity对象到Activity栈顶;
点击操作执行子模块,适于对还未点击的UI控件进行点击操作。
B10、如B7所述的装置,在Activity名称获取模块之前,还包括:
孵化进程替换模块,适于在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
启动加载模块,适于通过所述第一孵化进程启动所述测试进程并加载所述策略库。
B11、如B7所述的装置,所述点击条件策略获取模块,包括:
点击条件策略确定子模块,适于根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
B12、如B7所述的装置,在Activity名称获取模块之前,还包括:
快照获取模块,适于通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
点击条件策略配置模块,适于基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
条件策略存入模块,适于以目标应用的应用进程名称将各Activity对象的条件策略存入策略库。
本发明还公开了C13、一种安卓目标应用崩溃统计设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。

Claims (13)

1.一种安卓应用UI控件精准遍历方法,包括:
通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
以目标应用的应用进程名称将各Activity对象的条件策略存入策略库;
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。
2.根据权利要求1所述的方法,其特征在于,所述点击条件策略包括:禁止测试的UI控件、允许点击的UI控件。
3.根据权利要求1或2所述的方法,其特征在于,所述点击条件策略包括:递归点击策略;
进一步的,所述根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作的步骤,包括:
根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;
如果点击完毕,则触发当前Activity对象的上一级Activity对象到Activity栈顶;
如果未点击完毕,则对还未点击的UI控件进行点击操作。
4.根据权利要求1所述的方法,其特征在于,在由测试进程在监控到目标应用启动之前,还包括:
在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
通过所述第一孵化进程启动所述测试进程并加载所述策略库。
5.根据权利要求1所述的方法,其特征在于,所述根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略的步骤,包括:
根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
6.一种安卓应用UI控件精准遍历装置,包括:
快照获取模块,适于通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
点击条件策略配置模块,适于基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
条件策略存入模块,适于以目标应用的应用进程名称将各Activity对象的条件策略存入策略库;
Activity名称获取模块,适于由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
点击条件策略获取模块,适于根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
点击操作执行模块,适于根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
测试结果输出模块,适于根据所述点击操作记录测试结果并输出。
7.根据权利要求6所述的装置,其特征在于,所述点击条件策略包括:禁止测试的UI控件、允许点击的UI控件。
8.根据权利要求6或7所述的装置,其特征在于,所述点击条件策略包括:递归点击策略;
进一步的,所述点击操作执行模块,包括:
判断子模块,适于根据所述递归点击策略,判断当前Activity对象的各UI控件,以及当前Activity对象的下面各级Activity对象的各UI控件是否被点击完毕;如果点击完毕,则进入触发子模块;如果未点击完毕,则进入点击操作执行子模块;
触发子模块,适于触发当前Activity对象的上一级Activity对象到Activity栈顶;
点击操作执行子模块,适于对还未点击的UI控件进行点击操作。
9.根据权利要求6所述的装置,其特征在于,在Activity名称获取模块之前,还包括:
孵化进程替换模块,适于在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
启动加载模块,适于通过所述第一孵化进程启动所述测试进程并加载所述策略库。
10.根据权利要求6所述的装置,其特征在于,所述点击条件策略获取模块,包括:
点击条件策略确定子模块,适于根据目标应用的应用进程名称,确定策略库中对应所述目标应用的各点击条件策略。
11.一种安卓目标应用崩溃统计设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:
通过UI Automator工具获取目标应用程序的各Activity对象及其UI控件的快照;
基于每个Activity对象及其UI控件的快照,为各个Activity对象配置点击条件策略;
以目标应用的应用进程名称将各Activity对象的条件策略存入策略库;
由测试进程在监控到目标应用启动后,获取Activity栈顶的Activity对象的Activity名称;
根据所述Activity名称,从策略库中获取对应所述Activity的点击条件策略;
根据所述点击条件策略,对所述Activity对象中的各UI控件进行点击操作;
根据所述点击操作记录测试结果并输出。
12.一种计算机可读介质,其中存储了计算机程序,所述计算机程序包括计算机可读代码,当所述计算机可读代码在设备上运行时,导致所述设备执行根据权利要求1-5中的任一项所述的一种安卓应用UI控件精准遍历方法。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5中任一项所述的一种安卓应用UI控件精准遍历方法。
CN201510940069.7A 2015-12-15 2015-12-15 一种安卓应用ui控件精准遍历方法和装置 Active CN105468529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510940069.7A CN105468529B (zh) 2015-12-15 2015-12-15 一种安卓应用ui控件精准遍历方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510940069.7A CN105468529B (zh) 2015-12-15 2015-12-15 一种安卓应用ui控件精准遍历方法和装置

Publications (2)

Publication Number Publication Date
CN105468529A CN105468529A (zh) 2016-04-06
CN105468529B true CN105468529B (zh) 2018-07-24

Family

ID=55606260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510940069.7A Active CN105468529B (zh) 2015-12-15 2015-12-15 一种安卓应用ui控件精准遍历方法和装置

Country Status (1)

Country Link
CN (1) CN105468529B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107515821B (zh) * 2016-06-17 2021-08-31 百度在线网络技术(北京)有限公司 控件测试方法和装置
CN107977306A (zh) * 2016-10-25 2018-05-01 百度在线网络技术(北京)有限公司 用于测试安卓应用稳定性的方法和装置
CN108628732B (zh) * 2017-03-16 2023-04-18 腾讯科技(深圳)有限公司 一种应用界面控件遍历测试方法及装置
CN106951371B (zh) * 2017-03-20 2019-07-09 南京大学 一种基于依赖注入的安卓应用半自动化测试方法
CN107122295B (zh) * 2017-03-30 2020-12-29 腾讯科技(深圳)有限公司 测试用例脚本的生成方法和装置
CN108733435B (zh) * 2017-04-17 2021-06-18 北京嘀嘀无限科技发展有限公司 避免应用触发anr的方法及装置
CN107562619B (zh) * 2017-08-15 2020-03-31 福建天晴数码有限公司 一种基于神经元模型的自动遍历控件方法及终端
CN107678949B (zh) * 2017-09-20 2021-01-26 福建升腾资讯有限公司 实现嵌入式设备不同通信方式的自动化测试方法
CN109634831A (zh) * 2017-10-09 2019-04-16 飞狐信息技术(天津)有限公司 一种Android应用程序GUI自动遍历测试方法及系统
CN109710506A (zh) * 2017-10-25 2019-05-03 卓望数码技术(深圳)有限公司 一种基于树遍历的终端app覆盖性测试方法和装置
CN107832113A (zh) * 2017-10-26 2018-03-23 青岛海信移动通信技术股份有限公司 一种Android系统应用程序的界面显示方法及装置
CN108090355B (zh) * 2017-11-28 2020-10-27 西安交通大学 一种apk自动触发工具
CN108710570B (zh) * 2018-05-11 2021-10-29 创新先进技术有限公司 一种视图功能测试方法、装置及设备
CN110865851B (zh) * 2019-11-18 2023-12-01 中国民航信息网络股份有限公司 一种Android应用数据自动采集方法及系统
CN111897807A (zh) * 2020-07-01 2020-11-06 拉扎斯网络科技(上海)有限公司 一种数据处理方法以及策略引擎系统
CN112560090B (zh) * 2020-12-15 2023-01-24 建信金融科技有限责任公司 一种数据检测方法和装置
CN112783797A (zh) * 2021-02-26 2021-05-11 中国工商银行股份有限公司 用于测试用户界面的方法和装置、电子设备、及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140033580A (ko) * 2012-09-06 2014-03-19 주식회사 퓨전소프트 안드로이드 어플리케이션의 액티비티 기반 상태도 생성방법
CN104050076A (zh) * 2013-03-12 2014-09-17 阿里巴巴集团控股有限公司 移动终端上的应用软件测试方法、装置及系统
CN104408367A (zh) * 2014-11-28 2015-03-11 北京奇虎科技有限公司 应用程序配置方法与装置
CN104484176A (zh) * 2014-12-16 2015-04-01 北京奇虎科技有限公司 一种安卓系统窗口对象获取方法和装置
CN104834600A (zh) * 2015-04-28 2015-08-12 南京邮电大学 一种测试Android应用控件的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140033580A (ko) * 2012-09-06 2014-03-19 주식회사 퓨전소프트 안드로이드 어플리케이션의 액티비티 기반 상태도 생성방법
CN104050076A (zh) * 2013-03-12 2014-09-17 阿里巴巴集团控股有限公司 移动终端上的应用软件测试方法、装置及系统
CN104408367A (zh) * 2014-11-28 2015-03-11 北京奇虎科技有限公司 应用程序配置方法与装置
CN104484176A (zh) * 2014-12-16 2015-04-01 北京奇虎科技有限公司 一种安卓系统窗口对象获取方法和装置
CN104834600A (zh) * 2015-04-28 2015-08-12 南京邮电大学 一种测试Android应用控件的方法

Also Published As

Publication number Publication date
CN105468529A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN105468529B (zh) 一种安卓应用ui控件精准遍历方法和装置
CN109683899B (zh) 一种软件集成方法及装置
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
US20210081308A1 (en) Generating automated tests based on user interaction with an application
US9535823B2 (en) Method and apparatus for detecting software bugs
US10157121B2 (en) Method of, and apparatus for, testing computer hardware and software
US11449370B2 (en) System and method for determining a process flow of a software application and for automatically generating application testing code
CN105512015B (zh) 一种安卓目标应用崩溃统计方法和装置
US20160283353A1 (en) Automated software testing
US11507496B2 (en) Method of, and apparatus for, testing computer hardware and software
CN108038054B (zh) 一种自动化测试方法及装置、计算机可读存储介质
US11507494B2 (en) Method of, and apparatus for, testing computer hardware and software
US20100031248A1 (en) Installation Sequence Manager
CN105740144B (zh) 一种Android移动终端的自动化测试方法及系统
CN112395616A (zh) 漏洞处理的方法、装置及计算机设备
US20160275000A1 (en) System and method of automated application screen flow generation for detecting aberration in mobile application
JP2019028913A (ja) テスト実行制御プログラム、テスト実行制御方法、およびテスト実行制御装置
CN114546738A (zh) 服务器通用测试方法、系统、终端及存储介质
CN104484176B (zh) 一种安卓系统窗口对象获取方法和装置
CN107678969B (zh) 测试版本发布方法、装置、版本控制设备和测试机
US10042638B2 (en) Evaluating documentation coverage
JP7015625B2 (ja) プロセスアプリケーションを開発及び診断するためのステップバック機構
CN110990289B (zh) 一种自动提交bug的方法、装置、电子设备及存储介质
CN110928777A (zh) 测试用例的处理方法、装置、设备及存储介质
CN114706767A (zh) 一种代码覆盖率采集方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220727

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.