CN112765028A - 基于群控机制的Android应用程序测试方法及系统 - Google Patents

基于群控机制的Android应用程序测试方法及系统 Download PDF

Info

Publication number
CN112765028A
CN112765028A CN202110088425.2A CN202110088425A CN112765028A CN 112765028 A CN112765028 A CN 112765028A CN 202110088425 A CN202110088425 A CN 202110088425A CN 112765028 A CN112765028 A CN 112765028A
Authority
CN
China
Prior art keywords
android
test
application program
tested
environment
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
CN202110088425.2A
Other languages
English (en)
Other versions
CN112765028B (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.)
University of Jinan
Original Assignee
University of Jinan
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 University of Jinan filed Critical University of Jinan
Priority to CN202110088425.2A priority Critical patent/CN112765028B/zh
Publication of CN112765028A publication Critical patent/CN112765028A/zh
Application granted granted Critical
Publication of CN112765028B publication Critical patent/CN112765028B/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
    • 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/3692Test management for test results analysis
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了基于群控机制的Android应用程序测试方法及系统,建立待测试的应用程序测试队列,扫描并启动通过USB线缆与PC端连接的Android实体机、通过网络与PC端连接的Android实体机和部署在PC端的Android模拟器;清空Android实体机测试环境内的残留数据;向Android实体机和Android模拟器,载入待测试的应用程序文件的辅助可执行文件;扫描待测试的应用程序测试队列,向Android实体机和Android模拟器,载入待测试的应用程序文件;启动待测试的应用程序文件,注入待测的输入事件;停止输入事件,清理测试环境,输出测试报告。

Description

基于群控机制的Android应用程序测试方法及系统
技术领域
本申请涉及软件测试技术领域,特别是涉及基于群控机制的Android应用程序测试方法及系统。
背景技术
本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。
使用特定的软硬件环境运行软件、对其进行动态测试与分析,是软件开发过程中的一个关键步骤。只有将软件执行起来,开发团队才可以寻找出软件中通过分析源代码所不能发现的问题,并发现软件与具体平台的兼容性问题。此外,在安全研究领域,研究人员也需要在特定环境中运行目标软件,收集各种数据并分析具体行为。开发者或研究人员可以在测试平台上对应用程序注入多种输入事件,对应用程序进行整体的流程测试、专门的功能测试以及压力测试。
在Android平台的移动应用开发领域,进行软件测试的方法主要分为两类。其中一类基于Android模拟器,另一类则基于真实Android设备。
基于Android模拟器的测试方法可以在开发用的PC机内部直接模拟一个预装了关键软件组件的Android环境。这种方法可以脱离实体Android设备,在开发环境中对应用程序进行快速的测试,抓取更加详细的日志输出,并且可以使用较大规模的虚拟机集群进行并行与大规模的测试。但是,这种方法却难以模拟复杂多变的软硬件环境,无法发现特殊环境导致的软件崩溃与漏洞,且运行模拟器时需要耗费PC机较多的资源,难以大量扩展。
基于真实Android设备的测试方法经常被用于发现对真实设备适配不充分而导致的问题。
在实现本申请的过程中,发明人发现现有技术中存在以下技术问题:融合了“群控”技术的测试平台,可以让PC机通过USB线缆或网络连接等多种方式连接大量的设备,开展大规模的实机软件测试。但是,由于这种测试方法在大规模并行测试时需要管理大量的设备,如何管理设备、整理收集到的数据并调度任务就成了亟待解决的问题。除此之外,前述两类方法对自动化测试的支持都不够充分,收集日志与注入输入事件的过程常需要人工干预。
发明内容
为了解决现有技术的不足,本申请提供了基于群控机制的Android应用程序测试方法及系统;充分解决大规模并行测试的场景下对设备与数据的管理问题,并提供一套自动化的解决方案,从而减少测试过程中的手动干预。
第一方面,本申请提供了基于群控机制的Android应用程序测试方法;
基于群控机制的Android应用程序测试方法,应用于PC端,包括:
步骤(1):建立待测试的应用程序测试队列,扫描并启动通过USB线缆与PC端连接的Android实体机、通过网络与PC端连接的Android实体机和部署在PC端的Android模拟器;
步骤(2):清空Android实体机测试环境内的残留数据;
步骤(3):向Android实体机和Android模拟器,载入待测试的应用程序文件的辅助可执行文件;
步骤(4):扫描待测试的应用程序测试队列,向Android实体机和Android模拟器,载入待测试的应用程序文件;
步骤(5):启动待测试的应用程序文件,注入待测的输入事件;
步骤(6):停止输入事件,清理测试环境,输出测试报告;判断测试队列是否为空,若测试队列非空,则重复步骤(4)到步骤(6),直到队列为空。
第二方面,本申请提供了基于群控机制的Android应用程序测试系统;
基于群控机制的Android应用程序测试系统,包括:
PC端,所述PC端上部署ADB服务器、测试平台和Android模拟器,所述ADB服务器分别与测试平台和Android模拟器连接;所述ADB服务器与外部Android实体机;所述测试平台,包括:群控测试模块、待测试应用程序数据库和测试结果数据库;
扫描待测试应用程序数据库,从待测试应用程序数据库中获取待测试的应用程序安装包,建立测试队列;启动Android模拟器,通过网络或USB端口连接到外部Android环境;列出连接上的Android环境,获取可用设备列表与可用设备的软硬件环境信息;
从测试队列中取出一个待测试的应用程序安装包对象,从可用的Android列表中寻找一个空闲的Android测试环境并标记为忙碌状态,将二者绑定,开始在此Android环境上对应用程序安装包进行解析,并执行本次测试;等待测试结束;
若超时或发生严重错误,则强行终止本次测试,并将错误信息写入测试结果数据库;若正常结束,则将采集到的所有数据放入测试结果数据库;将选中的Android环境标记为空闲状态。
与现有技术相比,本申请的有益效果是:
(1)本申请提出了一种适用于在设备数量多、型号种类多的条件下对应用程序进行自动化大批量测试的平台,能够有效的提升自动化水平,提高测试效率,便于对数据汇总整理。
(2)本申请提出了一种在测试阶段注入命令行命令与输入事件的技术。通过注入命令行命令,使用者可以操作软硬件系统环境,使其符合特殊的测试条件;使用测试平台在线注入输入事件,在连接大量设备的情况下可以避免用户手动操作大量Android设备,提高测试效率。
(3)本申请使用结构化数据库存储测试结果和测试用的软硬件平台信息。对开发者而言,此种存储形式有利于在大批量测试后快速定位导致崩溃的软硬件环境与操作流程,进一步提高测试效率。
本申请附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请实施例一的整体流程图;
图2为本申请实施例一的测试调度模块的流程图;
图3为本申请实施例一的应用程序安装包解析模块的流程图;
图4为本申请实施例一的的系统架构图;
图5为本申请实施例一的中群控测试系统的结构图;
图6为本申请实施例一的中与Android环境进行交互的线程模块的结构图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例提供了基于群控机制的Android应用程序测试方法;
如图1所示,基于群控机制的Android应用程序测试方法,应用于PC端,包括:
步骤(1):建立待测试的应用程序测试队列,扫描并启动通过USB线缆与PC端连接的Android实体机、通过网络与PC端连接的Android实体机和部署在PC端的Android模拟器;
步骤(2):清空Android实体机测试环境内的残留数据;
步骤(3):向Android实体机和Android模拟器,载入待测试的应用程序文件的辅助可执行文件;
步骤(4):扫描待测试的应用程序测试队列,向Android实体机和Android模拟器,载入待测试的应用程序文件;
步骤(5):启动待测试的应用程序文件,注入待测的输入事件;
步骤(6):停止输入事件,清理测试环境,输出测试报告;判断测试队列是否为空,若测试队列非空,则重复步骤(4)到步骤(6),直到队列为空。
作为一个或多个实施例,所述步骤(1)建立待测试的应用程序测试队列,扫描并启动通过USB线缆与PC端连接的Android实体机、通过网络与PC端连接的Android实体机和部署在PC端的Android模拟器;具体步骤为:
步骤(1-1):从数据库中获取待测试的应用程序安装包,建立测试队列;
步骤(1-2):使用Android SDK中的emulator工具,基于预先编译好的Android镜像,启动设定数量的Android模拟器;清空Android模拟器前一次测试所产生的文件;建立PC端与Android模拟器之间的通讯连接;
步骤(1-3):使用Android SDK中的adb工具配置,建立PC端与Android实体机的通讯连接;
步骤(1-4):使用Android SDK中的adb工具,扫描连接到PC端的Android实体机;输出已经与PC端建立连接关系的Android模拟器和Android实体机的序列号和连接状态;
步骤(1-5):将adb连接切换到root模式;
步骤(1-6):获取Android实体机的各种软硬件环境的参数。
进一步地,所述步骤(1-6)获取Android实体机的各种软硬件环境的参数具体包括:
提取目标Android环境的CPU架构的信息;
获取目标Android环境的SDK版本、硬件平台型号与软硬件平台相关的属性信息;
提取Android设备的系统设备与驱动相关的信息。
作为一个或多个实施例,所述步骤(2)清空Android实体机测试环境内的残留数据,具体步骤为:
步骤(2-1):筛选出属于通过USB连接的实体机的序列号;
步骤(2-2):将步骤(2-1)筛选得到的通过USB连接的实体机重启到fastboot模式;
步骤(2-3):准备一个用于清空数据分区的Linux内核映像,下载并启动所述Linux内核映像,用于清空数据分区;当前步骤完成后,实体机将自动重启、准备就绪。
作为一个或多个实施例,所述步骤(3)向Android实体机和Android模拟器,载入待测试的应用程序文件的辅助可执行文件的步骤为:
步骤(3-1):向Android实体机和Android模拟器的系统数据库中装入短信、联系人、通话记录、日历日程及系统设置;
步骤(3-2):安装待测试应用程序运行时能够调用的其他应用程序;
步骤(3-3):向目标测试环境中推送测试用的辅助可执行文件,例如用于捕获网络流量的tcpdump。
作为一个或多个实施例,所述步骤(4)扫描待测试的应用程序测试队列,向Android实体机和Android模拟器,载入待测试的应用程序文件;步骤为:
步骤(4-1):若PC端当前正在对应用程序进行批量测试,则PC端从队列中随机指定一个待测试应用程序作为当前对象;
若对单个应用程序进行测试,则系统将预先配置好的安装包设置为当前指定的对象;将选定的应用程序对象指派给空当前处于空闲状态的Android设备;
步骤(4-2):对于步骤(4-1)中所获取到的待测试应用程序安装包,首先验证其签名;如果PC端缺乏其基础信息,PC端从待测试应用程序的安装包中,获取其包名、主Activty名与权限信息;
步骤(4-3):安装待测试的应用程序;
步骤(4-4):使用获取到的权限信息为待测试应用程序赋予权限。
作为一个或多个实施例,所述步骤(5)启动待测试的应用程序文件,注入待测的输入事件的步骤为:
步骤(5-1):启动日志记录程序;
步骤(5-2):执行辅助可执行文件;
步骤(5-3):执行待测试的应用程序;
步骤(5-4):向待测试的应用程序中,注入预先编写好或随机生成的输入事件,或者,直接向Linux内核的输入事件驱动中注入触摸事件;
步骤(5-5):向Android环境发送广播消息,用于触发系统事件。
作为一个或多个实施例,所述步骤(6)停止输入事件,清理测试环境,输出测试报告;具体步骤为:
步骤(6-1):停止日志记录程序。
步骤(6-2):停止辅助可执行文件与输入事件注入程序;
步骤(6-3):从Android环境中,获取辅助可执行文件的生成文件;
步骤(6-4):卸载待测应用程序,并清空产生的临时文件;
步骤(6-5):将解析得到的安装包信息与获取到的日志文件与数据存入数据库中。
实施例二
本实施例提供了基于群控机制的Android应用程序测试系统;
如图2和图4所示,基于群控机制的Android应用程序测试系统,包括:
PC端,所述PC端上部署ADB服务器、测试平台和Android模拟器,所述ADB服务器分别与测试平台和Android模拟器连接;所述ADB服务器与Android实体机连接;所述测试平台,包括:群控测试模块、待测试应用程序数据库和测试结果数据库;
扫描待测试应用程序数据库,从待测试应用程序数据库中获取待测试的应用程序安装包,建立测试队列;启动Android模拟器,通过网络或USB端口连接到外部Android环境;列出连接上的Android环境,获取可用设备列表与可用设备的软硬件环境信息;
从测试队列中取出一个待测试的应用程序安装包对象,从可用的Android列表中寻找一个空闲的Android测试环境并标记为忙碌状态,将二者绑定,开始在此Android环境上对应用程序安装包进行解析,并执行本次测试;等待测试结束;
若超时或发生严重错误,则强行终止本次测试,并将错误信息写入测试结果数据库;若正常结束,则将采集到的所有数据放入测试结果数据库;将选中的Android环境标记为空闲状态。
如图3所示,应用程序安装包解析的整体流程包括如下步骤:
步骤300,校验安装包文件的签名信息是否与安装包相符,检验安装包的完整性。
步骤301,若校验不完整,则终止此次测试,并在数据库中标记此软件包为损坏。
步骤302,运行aapt工具,读取其包名、主Activty名与权限等软件包相关的信息,将全部信息返回,结束。
如图4所示,基于群控机制的Android应用程序测试系统,包括:
测试平台401,用于发起采集任务、收集并存储运行的结果信息。测试平台包含以下三个部分:用于保存待测样本的数据库401-1、用于执行测试任务的群控测试系统401-2和用于存储测试结果的测试结果数据库401-3。此组件的具体结构与图5一致。
ADB(Android Debug Bridge,Android调试桥)服务器402,用于实现测试平台与Android设备集群403中的Android设备建立连接,从而下发各种指令,并实现文件交换。
Android实体机或Android模拟器组成的Android设备集群403,实体Android设备通过USB或网络连接,通过USB连接的Android实体机、通过网络连接的Android实体机和Android模拟器三类设备均通过ADB服务器实现连接的抽象表示。
如图5所示,本申请的群控测试模块包括:
安装包解析模块501,用于从待测样本数据库中提取有效样本,解析其元信息并将其放入待测试队列。
调度模块502,用于通过工作子线程503向Android设备分配测试任务,生成指令并管理需要交换的文件。此模块还需要维护待测应用程序的队列信息与连接到此平台的所有Android环境信息,并追踪任务的进度与设备的状态。
工作子线程503,用于与Android环境直接交互,调度模块502需要为每一台连接建立一个工作子线程的实例,并使用这些子线程交换信息,控制Android设备的行为。此组件的具体结构与图6一致。
如图6所示,本申请的调度模块502包括:
命令注入模块601,用于操作Android环境、使其自动化的执行安装、卸载、执行等动作,并对其进行初始化或清理。
输入事件注入模块602,用于向待测试的应用程序注入输入事件,从而触发其执行内部的各种动作,对测试人员展现出对注入事件的响应行为。输入事件可以随机生成、也可以由脚本生成。
文件交换模块603,用于向Android环境中推送测试所需的辅助文件,并拉取被测应用在测试过程中以文件形式产生的输出。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.基于群控机制的Android应用程序测试方法,其特征是,应用于PC端,包括:
建立待测试的应用程序测试队列,扫描并启动通过USB线缆与PC端连接的Android实体机、通过网络与PC端连接的Android实体机和部署在PC端的Android模拟器;
清空Android实体机测试环境内的残留数据;
向Android实体机和Android模拟器,载入待测试的应用程序文件的辅助可执行文件;
扫描待测试的应用程序测试队列,向Android实体机和Android模拟器,载入待测试的应用程序文件;
启动待测试的应用程序文件,注入待测的输入事件;
停止输入事件,清理测试环境,输出测试报告;判断测试队列是否为空,若测试队列非空,则继续对队列中的应用程序进行测试,直到队列为空。
2.如权利要求1所述的基于群控机制的Android应用程序测试方法,其特征是,所述建立待测试的应用程序测试队列,扫描并启动通过USB线缆与PC端连接的Android实体机、通过网络与PC端连接的Android实体机和部署在PC端的Android模拟器;具体步骤为:
从数据库中获取待测试的应用程序安装包,建立测试队列;
使用Android SDK中的emulator工具,基于预先编译好的Android镜像,启动设定数量的Android模拟器;清空Android模拟器前一次测试所产生的文件;建立PC端与Android模拟器之间的通讯连接;
使用Android SDK中的adb工具配置,建立PC端与Android实体机的通讯连接;
使用Android SDK中的adb工具,扫描连接到PC端的Android实体机;输出已经与PC端建立连接关系的Android模拟器和Android实体机的序列号和连接状态;
将adb连接切换到root模式;
获取Android实体机的各种软硬件环境的参数。
3.如权利要求2所述的基于群控机制的Android应用程序测试方法,其特征是,所述获取Android实体机的各种软硬件环境的参数具体包括:
提取目标Android环境的CPU架构的信息;
获取目标Android环境的SDK版本、硬件平台型号与软硬件平台相关的属性信息;
提取Android设备的系统设备与驱动相关的信息。
4.如权利要求1所述的基于群控机制的Android应用程序测试方法,其特征是,所述清空Android实体机测试环境内的残留数据,具体步骤为:
筛选出属于通过USB连接的实体机的序列号;
将筛选得到的通过USB连接的实体机重启到fastboot模式;
准备一个用于清空数据分区的Linux内核映像,下载并启动所述Linux内核映像,用于清空数据分区;当前步骤完成后,实体机将自动重启、准备就绪。
5.如权利要求1所述的基于群控机制的Android应用程序测试方法,其特征是,所述向Android实体机和Android模拟器,载入待测试的应用程序文件的辅助可执行文件的步骤为:
向Android实体机和Android模拟器的系统数据库中装入短信、联系人、通话记录、日历日程及系统设置;
安装待测试应用程序运行时能够调用的其他应用程序;
向目标测试环境中推送测试用的辅助可执行文件,例如用于捕获网络流量的tcpdump。
6.如权利要求1所述的基于群控机制的Android应用程序测试方法,其特征是,所述扫描待测试的应用程序测试队列,向Android实体机和Android模拟器,载入待测试的应用程序文件;步骤为:
若PC端当前正在对应用程序进行批量测试,则PC端从队列中随机指定一个待测试应用程序作为当前对象;
若对单个应用程序进行测试,则系统将预先配置好的安装包设置为当前指定的对象;将选定的应用程序对象指派给空当前处于空闲状态的Android设备;
对于所获取到的待测试应用程序安装包,首先验证其签名;如果PC端缺乏其基础信息,PC端从待测试应用程序的安装包中,获取其包名、主Activty名与权限信息;
安装待测试的应用程序;
使用获取到的权限信息为待测试应用程序赋予权限。
7.如权利要求1所述的基于群控机制的Android应用程序测试方法,其特征是,所述启动待测试的应用程序文件,注入待测的输入事件的步骤为:
启动日志记录程序;
执行辅助可执行文件;
执行待测试的应用程序;
向待测试的应用程序中,注入预先编写好或随机生成的输入事件,或者,直接向Linux内核的输入事件驱动中注入触摸事件;
向Android环境发送广播消息,用于触发系统事件。
8.如权利要求1所述的基于群控机制的Android应用程序测试方法,其特征是,所述停止输入事件,清理测试环境,输出测试报告;具体步骤为:
停止日志记录程序;
停止辅助可执行文件与输入事件注入程序;
从Android环境中,获取辅助可执行文件的生成文件;
卸载待测应用程序,并清空产生的临时文件;
将解析得到的安装包信息与获取到的日志文件与数据存入数据库中。
9.基于群控机制的Android应用程序测试系统,其特征是,包括:
PC端,所述PC端上部署ADB服务器、测试平台和Android模拟器,所述ADB服务器分别与测试平台和Android模拟器连接;所述ADB服务器与Android实体机连接;所述测试平台,包括:群控测试模块、待测试应用程序数据库和测试结果数据库;
扫描待测试应用程序数据库,从待测试应用程序数据库中获取待测试的应用程序安装包,建立测试队列;启动Android模拟器,通过网络或USB端口连接到外部Android环境;列出连接上的Android环境,获取可用设备列表与可用设备的软硬件环境信息;
从测试队列中取出一个待测试的应用程序安装包对象,从可用的Android列表中寻找一个空闲的Android测试环境并标记为忙碌状态,将二者绑定,开始在此Android环境上对应用程序安装包进行解析,并执行本次测试;等待测试结束;
若超时或发生严重错误,则强行终止本次测试,并将错误信息写入测试结果数据库;若正常结束,则将采集到的所有数据放入测试结果数据库;将选中的Android环境标记为空闲状态。
10.如权利要求9所述的基于群控机制的Android应用程序测试系统,其特征是,应用程序安装包解析的整体流程包括如下步骤:
校验安装包文件的签名信息是否与安装包相符,检验安装包的完整性;
若校验不完整,则终止此次测试,并在数据库中标记此软件包为损坏;
运行aapt工具,读取其包名、主Activty名与权限软件包相关的信息,将全部信息返回,结束;
基于群控机制的Android应用程序测试系统,包括:
测试平台,用于发起采集任务、收集并存储运行的结果信息;测试平台包含以下三个部分:用于保存待测样本的数据库、用于执行测试任务的群控测试系统和用于存储测试结果的测试结果数据库;
ADB服务器,用于实现测试平台与Android设备集群中的Android设备建立连接,从而下发各种指令,并实现文件交换;
Android实体机或Android模拟器组成的Android设备集群,实体Android设备通过USB或网络连接,通过USB连接的Android实体机、通过网络连接的Android实体机和Android模拟器三类设备均通过ADB服务器实现连接的抽象表示;
群控测试模块包括:
安装包解析模块,用于从待测样本数据库中提取有效样本,解析其元信息并将其放入待测试队列;
调度模块,用于通过工作子线程向Android设备分配测试任务,生成指令并管理需要交换的文件;调度模块维护待测应用程序的队列信息与连接到此平台的所有Android环境信息,并追踪任务的进度与设备的状态;
工作子线程,用于与Android环境直接交互,调度模块为每一台连接建立一个工作子线程的实例,并使用这些子线程交换信息,控制Android设备的行为;
调度模块,包括:
命令注入模块,用于操作Android环境、使其自动化的执行安装、卸载、执行等动作,并对其进行初始化或清理;
输入事件注入模块,用于向待测试的应用程序注入输入事件,从而触发其执行内部的各种动作,对测试人员展现出对注入事件的响应行为;
文件交换模块,用于向Android环境中推送测试所需的辅助文件,并拉取被测应用在测试过程中以文件形式产生的输出。
CN202110088425.2A 2021-01-22 2021-01-22 基于群控机制的Android应用程序测试方法及系统 Active CN112765028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110088425.2A CN112765028B (zh) 2021-01-22 2021-01-22 基于群控机制的Android应用程序测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110088425.2A CN112765028B (zh) 2021-01-22 2021-01-22 基于群控机制的Android应用程序测试方法及系统

Publications (2)

Publication Number Publication Date
CN112765028A true CN112765028A (zh) 2021-05-07
CN112765028B CN112765028B (zh) 2023-08-04

Family

ID=75705604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110088425.2A Active CN112765028B (zh) 2021-01-22 2021-01-22 基于群控机制的Android应用程序测试方法及系统

Country Status (1)

Country Link
CN (1) CN112765028B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568791A (zh) * 2021-07-14 2021-10-29 麒麟软件有限公司 一种基于多cpu架构的服务器操作系统自动化测试工具及方法
CN114064508A (zh) * 2021-11-29 2022-02-18 四川虹美智能科技有限公司 基于群控技术的移动终端软件测试方法及系统
CN114416406A (zh) * 2022-01-30 2022-04-29 重庆长安汽车股份有限公司 一种基于云测平台任务多并发的实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336742A (zh) * 2013-07-18 2013-10-02 北京航空航天大学 一种基于Android的自动化软件黑盒测试系统及方法
CN103713991A (zh) * 2012-10-08 2014-04-09 腾讯科技(深圳)有限公司 一种在安卓设备上测试应用程序的方法和装置
US20140325282A1 (en) * 2012-07-24 2014-10-30 Borqs Wireless Ltd. Android automated cross-application testing device and method
CN106330599A (zh) * 2016-08-16 2017-01-11 济南大学 Android应用程序网络流量多线程采集系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325282A1 (en) * 2012-07-24 2014-10-30 Borqs Wireless Ltd. Android automated cross-application testing device and method
CN103713991A (zh) * 2012-10-08 2014-04-09 腾讯科技(深圳)有限公司 一种在安卓设备上测试应用程序的方法和装置
CN103336742A (zh) * 2013-07-18 2013-10-02 北京航空航天大学 一种基于Android的自动化软件黑盒测试系统及方法
CN106330599A (zh) * 2016-08-16 2017-01-11 济南大学 Android应用程序网络流量多线程采集系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
余信达;马严;: "基于Clonezilla的多系统自动化测试系统的研究与设计", 软件 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568791A (zh) * 2021-07-14 2021-10-29 麒麟软件有限公司 一种基于多cpu架构的服务器操作系统自动化测试工具及方法
CN114064508A (zh) * 2021-11-29 2022-02-18 四川虹美智能科技有限公司 基于群控技术的移动终端软件测试方法及系统
CN114416406A (zh) * 2022-01-30 2022-04-29 重庆长安汽车股份有限公司 一种基于云测平台任务多并发的实现方法
CN114416406B (zh) * 2022-01-30 2024-04-26 重庆长安汽车股份有限公司 一种基于云测平台任务多并发的实现方法

Also Published As

Publication number Publication date
CN112765028B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
CN112765028B (zh) 基于群控机制的Android应用程序测试方法及系统
US11281570B2 (en) Software testing method, system, apparatus, device medium, and computer program product
CN109933522B (zh) 一种自动化用例的测试方法、测试系统及存储介质
CN110162977B (zh) 一种Android车载终端系统漏洞检测系统及方法
US8074204B2 (en) Test automation for business applications
CN110633209B (zh) 一种车载安卓多媒体导航仪自动化测试方法及系统
CN110471831B (zh) 一种兼容测试的自动化方法及装置
KR101008977B1 (ko) OSGi 서비스 플랫폼 테스트 방법 및 이를 이용한테스트 툴
CN106330599B (zh) Android应用程序网络流量多线程采集系统及方法
CN111813671A (zh) 一种ima软件仿真测试系统
CN115357515B (zh) 一种多核系统的调试方法、装置、计算机设备及存储介质
CN114297666A (zh) 一种基于模糊测试的云部署自动化漏洞挖掘系统
CN115422063A (zh) 一种低代码接口自动化系统、电子设备及存储介质
CN103593293A (zh) 一种并行自动化测试方法
CN115686540A (zh) 基于鸿蒙系统的rpa控制方法及系统
CN113568791A (zh) 一种基于多cpu架构的服务器操作系统自动化测试工具及方法
CN117493188A (zh) 接口测试方法及装置、电子设备及存储介质
CN106708727B (zh) 一种分布式病毒特征样本验证方法及系统
CN112148616A (zh) 一种性能测试管理平台
CN114416601B (zh) 一种网络安全信息采集引擎和任务管理系统与方法
CN110928787A (zh) 自动化测试脚本录制回放方法、装置、设备和存储介质
CN115617668A (zh) 一种兼容性测试方法、装置及设备
CN114064460A (zh) 一种基于安卓app的压力测试及崩溃日志提取的改进方法
CN110795334B (zh) 一种测试装置和方法
CN110825645A (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