移动信息系统

PDF
移动信息系统/2016年/文章

研究文章|开放获取

体积 2016年 |文章的ID 1740129 | https://doi.org/10.1155/2016/1740129

Jemin Lee Hyungshin金姆, QDroid:移动应用程序质量分析仪应用市场策展人”,移动信息系统, 卷。2016年, 文章的ID1740129, 11 页面, 2016年 https://doi.org/10.1155/2016/1740129

QDroid:移动应用程序质量分析仪应用市场策展人

学术编辑器:Yuh-Shyan陈
收到了 2016年4月25日
接受 2016年9月01日
发表 2016年10月10日

文摘

低质量的移动应用程序破坏了用户体验。然而,在应用程序的数量,质量分析是一项艰巨的任务。出于这个原因,QDroid提出一个自动化质量分析仪检测存在的崩溃,过度的资源使用情况,和兼容性问题,没有源代码和人类的参与。QDroid应用于67年申请评估,发现78%的崩溃和活动覆盖率达到23%高于猴子测试。检测过度的资源使用和兼容性问题,QDroid手动审查所需的应用程序数量减少了96%和69%,分别。

1。介绍

越来越多样的应用程序(或应用程序)可以通过扩大应用市场。与企业软件,移动应用程序要求开发人员考虑性能,资源使用情况,和他们的应用程序在不同设备的兼容性,除了他们是否没有错误(1- - - - - -4]。个人开发者经常有困难应对这些方面的考虑,因为测试的复杂性。

现在有150万个应用程序在谷歌商店,其中14%是低质量的应用,据统计(5),由AppBrain提供。低质量的应用程序异常退出,能源消耗大,兼容性问题,损害用户体验(UX)和可用性的应用程序市场。根据这些问题,是一个迫切需要的市场策展人在发表前检查应用程序。不幸的是,这是一个艰巨的任务手动检查及时大量应用。

应对这些挑战,许多研究人员提出了多种测试方法,能够覆盖大量的应用在合理的时间不需要源代码。基本上,这些方法对移动应用大致可分为静态和动态类型。尽管覆盖大量的应用,静态方法(6- - - - - -8)阻碍了常用的应用特性,比如代码混淆,本地库,一个复杂的SDK框架。由于这些原因,最近的工作都集中在动态方法,像猴子一样,应用程序的运行时属性被喂养了随机的或决定性的事件,比如点击一个按钮和输入文本(9- - - - - -12]。这些Monkey-based方法被用于特定的目标,如检测崩溃(9,12,13],隐私[10),和GUI违反(11]。然而,先前的研究都集中在bug,隐私和安全。还没有可伸缩的方法着重于验证多个市场管理者的质量因素。只关注单个的分析,最重要的问题,一个应用程序可能会错过,例如过度资源使用或在不同大小的屏幕兼容性问题。

在本文中,我们提出一个自动化的质量分析器叫QDroid有效探索应用程序页面和验证的出现崩溃,过度的资源使用,兼容性问题在不同大小的屏幕没有源代码。我们预计这个分析器将使用市场策展人保持应用程序市场。此外,QDroid提出了开源软件(https://github.com/leejaymin/QDroid)广泛使用。使用它,市场策展人提交应用程序二进制文件分析器,然后他们可以在很短的时间内获得报告。QDroid报告可以提供的数量崩溃,大量的网络流量、CPU利用率、能源消耗,在不同大小的屏幕和兼容性。根据这些报告,策展人可以决定是否接受一个应用市场。该分析仪是建于两部分:动态探索和验证三个质量因素的移动应用程序。

在第一部分中,动态探索用于标识应用程序通过执行应用程序页面。一般来说,基本的猴子(14)是用于探索和测试大量的应用程序,但是,提高覆盖率和猴子的效率,我们设计了Activity-Based-Monkey,这与每个交互活动而不是只考虑主要的入口点。作为活动的主要部分是移动应用,一个活动大致对应于一个不同的屏幕或窗口在传统的基于gui的应用程序。基本的猴子总是开始的探索主要活动,注入如GUI操作,并生成回调函数调用某些活动。相比之下,Activity-Based-Monkey开始探索在所有的活动都可以单独调用,不管执行序列。通过这样做,Activity-Based-Monkey可以探索一个合理的时间内尽可能多的应用程序页面。

在第二部分,验证手机应用程序的三个质量因素,事故的数量,资源使用,兼容性问题在不同大小的屏幕。这些质量因素损害用户体验与异常退出时,能量消耗大,和糟糕的设计。而应用程序页面进行探索Activity-Based-Monkey,该记录器在每个验证QDroid自动收集所有数据,如异常类型、CPU利用率、网络流量,能源消耗,截图图片活动

与现有的能量分析器(15],提出的史书QDroid分析各质量因素通过设计算法不需要人工介入,然后输出一个分析报告,事故的数量,每个事故原因,过度资源使用的应用程序列表,以及活动的列表包含分辨率问题。

QDroid的目的并不是要完全消除验证市场策展人。相反,其目的是大幅减少,市场管理者必须执行的手工工作消除低质量的应用。通过这样做,QDroid可以帮助市场策展人时间关注的任务大部分需要人工参与。

证明该方法,QDroid是一个受欢迎的移动平台上实现,从官方应用市场收集的67个应用程序。QDroid当时评估相比,与现有的工具:基本的猴子(14]和Monkeyrunner [16]。

从实验中,QDroid发现78%的崩溃和高达到23%活动报道(屏幕探索的数量)12比基本的猴子。当检测兼容性问题在不同大小的屏幕,QDroid获得比Monkeyrunner假阳性率低17%。发现资源使用过度,QDroid发现4和5应用程序的CPU利用率和能源消费,分别。

这个建议的方法和研究的主要贡献可以概括如下:(我)一个新的动态探索,叫做Activity-Based-Monkey,提出了。Activity-Based-Monkey识别所有的活动都可以独立无论调用特定序列和雇佣了这些活动作为入口点。这多次入境积分探索使尽可能多的应用程序页面访问在一个合理的时间内。(2)为每个应用程序质量的因素设计了评价方案。这些计划使市场馆长来验证应用程序崩溃的存在而言,过度的资源使用,兼容性问题在不同大小的屏幕在一个合理的时间内,有效地减少步骤的数量需要人工判断。(3)为了演示该方法,QDroid比较基本的猴子工具的活动范围和有效性在发现崩溃。此外,人工的工作量,可以减少QDroid显示关于评估应用程序资源使用过度和兼容性问题在不同大小的屏幕。

2。动机和设计要求

这项研究的动机和发展源于三个方面。第一个方面是缺乏信息从用户角度来确定应用程序质量。应用市场通常提供五星级评级基于用户的反馈作为质量指标。但是,先前的作品揭示了这样的评级不相关应用质量(9,17,18]。主要原因如下。用户可以与明星率应用没有任何评论。这意味着用户可以评估应用程序只有片刻的考虑。此外,通过过滤掉任何可能的低评价和激励积极用户,开发者可以人为地增加他们的应用程序的评级。

第二个方面是现有方法的低效率的两个代表性应用市场:谷歌商店,苹果的应用商店。谷歌和苹果有不同的方法来管理应用程序的质量。谷歌不应用发布之前检验应用程序的质量。相反,他们自动工具,违反了游戏的策划公司定期删除应用程序商店的政策指南(19]。然而,据TechCrunch的报告(20.),谷歌只删除60000个应用程序从应用程序市场。的700000个应用程序注册时间(20.),这个数字太小,认为完整的质量控制。此外,用户始终受到低质量应用到公司的自动工具可以删除它们。相比之下,苹果不依赖于自动化工具但一小队评论者,确保每个应用程序满足app Store审查指南(21应用程序发布前)。苹果公司运营着一个比谷歌更彻底的审查过程,但仍然存在问题。尽管谷歌没有出售应用的开发者,苹果要求开发商支付注册费等应用的评论。此外,人力资源的方法,方法包括支出开发人员的时间。

第三个方面是缺乏一个全面的工具,可以覆盖多个质量因素。两个代表市场运营商,谷歌和苹果,只考虑的安全、隐私和内容的应用。现有的可伸缩的动态方法都集中在隐私(10和错误9,12,13]。据目前所知,没有可扩展方法,可以覆盖多个质量因素,如过度的资源使用和兼容性不同大小的屏幕。

考虑这三个方面,系统需要满足以下要求:首先,应该减少覆盖大量的手工工作的应用程序。生成的应用程序提交每一天,它应该是可伸缩的。其次,应该基于黑盒测试程序。应用程序市场策展人没有访问源代码,因为应用程序开发者提交压缩的二进制包。最后,它应补充现有方法通过验证过度的资源使用和兼容性问题在不同大小的屏幕。

3所示。QDroid架构

QDroid如图的总体架构1。整个结构由主机和目标模块。主机模块执行每个质量分析步骤和目标模块负责与主机交互和测量资源使用情况。每个组件的颜色代表了某些功能。白色的彩色组件负责提出动态探索,Activity-Based-Monkey。灰色的彩色组件验证多个因素。

首先,策展人提交应用程序安装程序(或市场。QDroid apk文件)。QDroid然后安装一个仿真器和一个智能手机的应用程序。生成不同的屏幕分辨率,使用模拟器。另一方面,资源使用智能手机可以测量。动态探索之前,Activity-Sequence-Scanner标识不能独立调用序列的活动。分析活动顺序、Activity-Sequence-Scanner使用Android Debug (ADB)和桥梁Activity-Manager。亚行允许主机模块与目标交互,智能手机和模拟器。的Activity-Manager负责控制活动。

随后,事件生成器开始一个动态勘探没有序列活动入口点,注射如GUI操作(攻丝,输入文本,回调等)与特定的活动。的Monkey-Server这样的目标模块接收的事件事件生成器经营目标。

当应用程序页面了,性能计数器连续监视CPU利用率、网络流量,和能源消耗的应用。同时,日志记录器记录所有的结果在整个探索时间。最后,史书输出一个分析报告,其中包含事故的数量,每个事故原因,过度的资源使用实例的列表,和一个解决问题的活动列表。提出了动态多重因素,探索和验证方案,分别解释部分45在进一步的细节。

4所示。动态探索

在本节中,新动态勘探方法调用Activity-Based-Monkey是描述。现有的动态方法启动动态勘探主要活动。然而,如果很多活动声明,现有的动态方法花费了大量的时间。此外,技术上很难探索所有活动。克服这种局限性,提出了动态方法区分没有序列活动为了雇佣起始点。这样没有序列活动不需要任何参数从先前的步骤,如数据库游标和用户输入。

提出了动态探索包括两个步骤。第一步是揭示序列之间的依赖关系活动。第二步是探索挖掘等应用程序使用特定的事件,按钮点击、滑动。与传统的猴子相比,这种探索是每个没有序列活动的开始。每一步都是在下面解释。

第一步是确定活动序列。这一步是Activity-Sequence-Scanning命名。算法1是一个Dynamic-Activity-Sequence-Scanning算法。该算法需要一个列表 中定义的活动Manifest.xml作为输入。所有活动中声明Manifest.xml。这样的XML文件可以很容易地从应用程序中提取安装程序(. apk)减压。该算法产生作为输出一个列表 没有顺序的活动标识。更详细的过程如下。首先,一个活动选择从列表中吗 如果它不是空的。然后调用一个特定的算法活动显示在屏幕上。如果调用成功,这一点活动决心是不连续的。然而,某些活动可能会产生崩溃由于参数的依赖关系。在这种情况下,算法终止活动。这个过程会一直重复,直到列表 是空的。

输入:列出 活动
输出:列出 没有顺序的活动
( )
( )
( )活动仍在
( ) 从列表中选择一个活动
( ) startActivity ( )
( )如果 是真的然后
( )附加
( )
( )其他的
( )forceStopActivity ( )
( )结束
( )结束

第二步是事件的生成。这一步探索应用程序页面基于随机UI事件,比如攻,输入文本,轨迹球和导航。本文提供的UI页面提取和等价,聪明的猴子9,11不考虑。的事件生成器仅仅提要UI事件,应用程序根据事件的数量和类型的UI事件用户配置。算法2细节的操作事件生成器。该算法需要事件的数量和一个列表 的序列作为输入的活动。首先,一个活动选择从列表 如果这个列表不是空的。然后调用的算法活动。计划提要UI事件活动根据用户配置的事件数量。重复这个过程,直到列表 是空的。

输入:数量的事件 ,的活动列表
( )并不是所有的序列活动探索
( ) 选择一个活动
( )startActivity ( )
( )
( ) 生成一个新事件
( )执行
( )结束
( )结束

5。验证多种质量因素

本节描述每个因素影响应用程序的质量。首先,提供了一个解释为什么选择这些因素和QDroid如何测试这些因素。QDroid目前验证五个因素:崩溃、CPU利用率、网络流量,能源消耗,在不同大小的屏幕和兼容性。QDroid分离应用程序的验证码页面开发代码。这种设计使得它易于扩展到新的验证。接下来,详细阐述了每个质量因素。

5.1。崩溃

应用程序崩溃破坏导致异常退出的用户体验。这样的事故是由于GUI bug,网络环境、地理位置,等等。摘要QDroid重点是检测事故由GUI bug。该工具是基于日志消息在移动系统用于检测崩溃。基于异常类型和堆栈跟踪,QDroid计数总崩溃。通过这样做,碰撞检测的数量并不夸张。

复制崩溃,所有的GUI事件所产生的Activity-Based-Monkey被记录。同时,我们记录两个GUI事件之间的延迟时间。与这些事件和时间信息,我们可以重新审视一定崩溃。市场策展人不仅可以决定是否检测到崩溃导致显著降低繁殖它的用户体验,而且开发人员可以提高应用程序的质量。

5.2。资源使用情况

提出了自动校验措施的CPU利用率,网络流量的数量,和能源消耗的智能手机上运行的应用程序。测量在应用开发过程中资源的使用,一个基于软件的性能计数器应用层在手机系统上运行。确定过度使用,应用程序是按类别分组在一起。然后,异常值检测(22使用箱线图)执行。最后,这个验证器可以提供一个市场馆长异常值的列表,和策展人可以进一步检查这些应用。这个验证器不能完全诊断过度的资源使用情况。相反,这个工具旨在减少的工作量市场策展人必须执行。

5.3。在不同大小的屏幕兼容性问题

QDroid验证应用程序提供妥善解决不同大小的屏幕,以确保高质量的用户体验。根据开放信号的报告(23),移动应用程序正在执行3997多个类型的设备超过250屏幕分辨率大小。根据数量的不同的屏幕分辨率,分辨率为个人开发者优化是一项艰巨的任务。

在不同大小的屏幕分辨率问题是由以下三个主要原因:首先,开发人员使用物理单位,而不是逻辑单元。其次,开发人员不提供图片资源优化的高和低密度屏幕。第三,开发人员使用绝对布局安排UI组件,而不是相对布局。

发现可疑程序有这样的问题,一个图像比较算法在算法设计了如图所示3。首先,该算法运行某个应用程序在两个不同的屏幕分辨率。与此同时,提出了验证器根据每个收集每个截图映像活动。该算法以获得在不同大小的屏幕截图图片作为输入。该算法产生作为输出一个列表 的图像需要进行市场馆长。

输入:列出 活动
输出:列出 的图片
( )调整图像分辨率相同
( )将图片转换成灰度
( )两个图像正常化
( ) manhattan-norm
( ) zero-norm
( )如果
然后
( )返回真正的
( )其他的
( )返回
( )结束

比较各种图像分辨率,不同分辨率的图像大小相同的规模和转换为灰度。直接比较两个图像归一化转化成一系列像素强度值。之后,计算每个图像运用线性代数的两个准则,曼哈顿。的Manhattan-norm(绝对值之和)礼物多少图片。Zero-norm(元素的数量不等于零)显示有多少像素的不同。最后,如果两个值都大于两个阈值由用户设置,图像比较算法检查这张图片作为一个可疑的分辨率问题。如果不是,什么也不会发生。可疑图像的数量可以控制通过调整两个阈值。

6。实现

本节描述QDroid的实现。整个QDroid由11.7 k行代码,分为主机模块9.3代码,性能计数器2.2代码,修改的部分移动平台0.1代码。其次,进一步详细地解释给每个模块是如何发展。

6.1。动态探索

动态探索中实现两个部分:一个Activity-Sequence-Scanner和一个事件生成器。这段代码是由Python和主机写占总额的80%的代码。自动化分析的安装、卸载、屏幕解锁,重启功能系统中实现。基本上,ADB和Monkey-Server提供控制目标设备的功能。Python脚本,两个工具自动化相结合。实现Dynamic-Activity-Sequence-Scanning算法Activity-Manager是就业。的Activity-Manager使通过亚行QDroid开展某些活动。这个过程由Python脚本实现。事件生成器算法开发,现有基本的猴子被修改。通过这样做,QDroid能够产生特定的和随机的事件。的事件生成器开始探索在一定活动而不是只有开始主要活动

6.2。性能计数器

这一部分的目的是配置硬件使用动态生成的探索。捕获硬件的使用在不同的水平,使用C和Java实现的性能计数器。图2显示性能计数器的内部结构。性能计数器的概要文件CPU利用率、网络流量和能源消耗。

提取从Linux内核中,CPU利用率和能源消耗getCPUUsagegetPowerInfo函数是由Java Native Interface (JNI)。的Proc文件系统包含jiffies系统启动后,累积滴答计数。性能计数器可以通过以下公式计算CPU利用率:

计算能耗getPowerInfo函数读取电池水平,电流,电压的电源管理集成电路(PMIC)。另一方面,可以通过网络流量TrafficStats在Android API框架。

6.3。修改安卓

做一个完全自动化的流程和一些特殊功能,122行代码(LOC)平台组件被修改。修改后的移动平台组件活动经理,系统服务器,猴子,亚洲开发银行。自动序列,分析活动活动经理略改为终止活动这是冷冻由于相关参数。的系统服务器也修改移动时保持设置重启系统在分析。来实现事件生成器就像前面提到的4,安卓猴子修改开始探索在一定吗活动亚洲开发银行也改变了保持主机和目标wi - fi网络之间的联系。通过网络连接,多个设备可以与主机电脑。

6.4。日志记录器

日志记录器由Python开发负责记录分析结果。这样的结果构成了移动框架和内核信息。日志记录器记录以下信息:任何序列活动列表,列表的探索活动,达到特定的截屏图片,确定的事件活动事故、异常和调用堆栈,运行时间进行分析。

6.5。史书

摘要器由Python提供了一个最终报告结果的基础上动态的探索。史书确定独特的崩溃使用异常,调用堆栈的数量记录在动态的探索。它接收的资源使用情况性能计数器然后计算资源使用的意思。最后,史书中发现解决问题收集到的图像对使用图像比较算法和计算活动报道。

7所示。评价

QDroid进行评估,将其比作起毛工具被称为猴子,活动覆盖和崩溃的数量动态勘探中发现的。此外,QDroid评估多少努力可以减少检测过度的资源使用和兼容性问题在不同大小的屏幕。

7.1。方法

67应用程序随机选择从官方应用市场。如图3充分,他们来自不同的类别。QDroid评估在这些应用程序来决定是否可以超越现有的工具,它能减少多少的努力。所有实验都是在Linux机器上完成16 GB的内存和i7处理器。衡量资源使用,使用了HTC智能手机Nexus One。

测量活动报道,发现应用程序崩溃,Activity-Based-Monkey和基本的猴子是每个应用程序上执行,分别。相对比较,每个工具运行2000随机事件。此外,QDroid自动删除冗余崩溃基于异常类型和堆栈跟踪。QDroid相比,基本只猴子不消除冗余。

各自的自动化功能检测过度的资源使用和兼容性问题进行了评估。由于QDroid自动配置文件动态在探索过程中资源的使用,没有额外的过程检测异常表现。在不同大小的屏幕检测兼容性问题,然而,这个实验需要收集每个不同的屏幕截屏图片。出于这个原因,每个应用程序是一个模拟器上运行两次不同的决议。第一个配置模拟器是320年720×1280分辨率和密度。其他配置是240年480×800分辨率和密度。画一样的GUI组件,两个模拟器上运行相同的移动平台版本,4.0.3。

7.2。活动覆盖和发现应用程序崩溃

67个应用程序中,41岁和23个独特的崩溃是由QDroid发现和基本的猴子,分别。这些结果表明,QDroid优于基本的猴子了近两倍。这个结果显然表明QDroid是在检测崩溃比现有的更好的工具。有一个原因的改善。QDroid相比,基本猴子总是开始的探索主要活动。因此,应用程序崩溃勘探期间同样的错误。这种现象被称为杀虫剂悖论在软件测试24]。检测各种崩溃在几个活动,探索在不同的入口点开始。

如表所示1,检测到碰撞是分布在9个类别。有趣的是,超过50%的事故是由于java.lang.nullpointerexception。防止此类应用程序崩溃时,开发人员应该关注null-point-error测试应用程序之前提交。超过14%的崩溃引起的activitynotfoundexception。通常,activitynotfoundexception发生在不相关的应用程序特定的请求。例如,脸谱网没有电子邮件功能,但脸谱网可以发送一封电子邮件通过转发这个请求特定的电子邮件应用程序。如果没有安装,电子邮件应用程序activitynotfoundexception是由这个请求。剩下的一部分崩溃源于几个原因,如数据库、安全、或冻结。


排名(分数) 异常

1 (51.2%)21 nullpointerexception
2 (14.6%)6 activitynotfoundexception
3 (12.2%)5 illegalstateexception
4 (9.8%)4 活动没有响应(ANR)
5 (2.4%)1 cursorindexoutofboundsexception
5 (2.4%)1 arrayindexoutofboundsexception
5 (2.4%)1 database.sqlite.sqliteexception
5 (2.4%)1 securityexception
5 (2.4%)1 如果

7.3。报道的结果

4显示了QDroid活动覆盖67个应用程序和基本的猴子。活动的基本猴子覆盖3 - 100%,平均为57%。QDroid活动达到20 - 100%,平均为80%。QDroid优于猴子,实现更高的覆盖32的67个应用程序。在25个32位应用程序,QDroid甚至比基本达到两倍活动覆盖的猴子。在三个应用(手指敲钢琴,WolframAlpha,大的发射器),QDroid导致改进的11.4倍,13.5倍,分别和高25.3 x活动报道。这些结果可以归因于使用多个入口点,这只Activity-Based-Monkey可以生成。在15 67个应用程序,然而,QDroid没有覆盖的改善活动。这是因为QDroid强烈取决于入口点的数量。换句话说,如果几乎所有的活动都要调用特定的执行序列,Activity-Based-Monkey也将开始探索在吗主要活动。在这种情况下,QDroid没有的优势。除了使用多个入口点,Activity-Based-Monkey和基本的猴子在这方面是相同的。

7.4。解决问题

形象比较算法的有效性进行评估,将其比作Monkeyrunner [16]。Activity-Based-Monkey收集206个截屏图像对活动在两个不同的屏幕。然后,手动分辨率问题被发现在这些图像对。

3的67个应用程序,应用程序已经解决问题。这些应用程序挖掘机,空气曲棍球,Saybebe。3应用,10图像的分辨率有问题。图5显示的分辨率问题形象空气曲棍球。解决问题的图片有一个黑色区域或错误的大小的GUI组件。

为了演示效果,QDroid相比,移动平台的基本比较工具,Monkeyrunner。图像比较,开发人员使用Monkeyrunner的函数。需要一个浮点数作为输入。这个浮动表示像素的比例需要是相同的。默认值为1.0,这表明必须匹配所有的像素。该算法着重于预防假阴性,而不是完全检测解决所有问题。

在比较该算法Monkeyrunner之前,每个算法的最优阈值研究,以确保没有假阴性。Monkeyrunner的阈值是0.66。这意味着34%的允许两个图像之间的距离相等。该算法同时考虑颜色两幅图像之间的差异。Zero-norm的阈值是0.67,类似于Monkeyrunner, Manhattan-norm阈值是24。

两种方法的实验结果如表所示2。Monkeyrunner该算法取得了89年,53个假阳性,分别。该算法改进了17%的假阳性。使用该工具,市场最终馆长只能回顾了63 206图像对。这些假阳性发生的原因可以分为以下三个类别。


方法 #图像对 TP 《外交政策》 FN

Monkeyrunner年代ameAs () 206年 10 89年 0
该算法 206年 10 53 0

第一个原因是动态的内容。一个应用程序可以启动每次都代表不同的内容。例如,对于All-in-one-toolbox生产力范畴,一些活动代表的硬件使用的CPU,内存,等等,这些信息并不是一致的。在另一个例子,Highway-Racing应用程序部署不同的车辆每次游戏开始。此外,状态栏和内置的GUI组件也有动态的内容,如电池的水平,在状态栏时间,无线连接。因此,这样的动态内容可以引起假阳性。

第二个原因是广告。许多免费应用程序包含ad-related活动。例如,在音乐搜索器应用程序,所有的活动都ad-related部分。一般来说,免费应用程序比付费应用含有更多的活动。每当一个广告展示不同的内容活动启动。因此,广告是假阳性的主要原因。

最后一个原因是调整。与图像中不同大小的分辨率,图像大小相同的分辨率使用Python库。然而,这种调整创建一个移动系统和调整之间的差距。这是因为移动系统精确部署GUI组件的屏幕布局,但调整只是减少dot-per-inch (DPI),以满足特定的分辨率。

7.5。资源使用情况

在动态探索QDroid自动测量资源使用情况。CPU利用率、网络流量的数量和能源消费被认为是资源使用。图6(一)显示了CPU利用率的分布在67个应用程序。最小、最大和平均分布是14%,94%,46%。最终,这个分布是均匀分布。应用高CPU使用率会阻碍其他应用程序的响应时间。出于这个原因,市场馆长应该审查这样的应用程序在注册过程,以确保高质量的用户体验。图6 (b)显示网络流量的分布、对数尺度。其中一个应用程序产生超过8000 Kb的网络流量。这有一些原因。第一个是移动广告。他们可以生成大量的网络流量显示广告。第二个是基于web的内容。确保应用程序兼容性在不同的平台上,许多开发人员使用基于web的内容。因为用户数据的费用负担,市场管理者应该通过测试提供网络流量信息。此外,频繁传输数据在3 g和wi - fi导致早期电池损耗(25]。图6 (c)显示了能源消耗的分布。这个分布范围从1144千瓦到1835千瓦。平均功率消耗1378兆瓦,分布均匀。能源消费引起的CPU利用率和网络流量26]。同时,能源消耗异常是由恶意程序(27)和wake-lock失活(28]。市场策展人测试能源问题,防止因为高能源消耗限制智能手机使用的时间。

发现异常行为,在每个应用程序资源使用相应的类别进行了分析。QDroid发现异常值基于资源使用在同一类别。这些异常值需要由市场管理者,因为他们的行为是不正常的相比于其他应用程序。在同一类别分布确定异常值,QDroid使用箱线图的方法。箱线图是一个有用的图来描述数据的行为在中间以及两端的分布。

箱线图使用中间值和上下四分位数(定义为第25和第75百分位数)。如果下四分位数 和上四分位数 ,那么差异( )四分位范围 。一份由画一个盒子图上、下四分位数之间用实线画在定位中位数。以下数量(称为晶须)需要确定极端值分布的反面:须由低 和上须定义的 。一个点超出两种胡须被认为是一个异类。

本文只关注上须为离群值来检测异常行为。每个资源使用的箱形图如图所示7。黑色圆圈图7指离群值远离正常的资源使用情况。如图7(一),总共有四个局外人在四个不同的类别。在网络情况下,图7 (b),没有异常值出现在任何类别。如图7 (c),总共有五个局外人在四个不同的类别。中的5个异常值,2异常值是一样的CPU利用率离群值。这意味着高能源消耗的根源与底层硬件的使用。QDroid并不保证所有异常值与异常行为有关。因为我们的目标是减少应用程序的数量需要人工审核,然而,基于离群值的分析是有意义的。

摘要小说应用质量分析框架的基础上提出了一种动态探索和验证方法。在本节中,QDroid之前相比,在应用页面探索和应用质量验证工作。

8.1。移动应用程序页面开发

软件测试研究小组提出了各种技术来有效地探索程序的状态。前几个作品静态研究源代码或二进制代码发现能源bug (6),应用剽窃(8],安全问题[33),和隐私泄露7,34]。然而,静态勘探方法受到很多特性,比如源代码依赖性,代码混淆,本地库,一个复杂的SDK框架。

基于模型的开发方法(35- - - - - -37)是另一个流行的方法。这些方法可以测试应用程序根据协议模型的GUI状态和转换。然而,基于模型的探索需要一个开发人员提供应用程序的GUI模型或源代码。提供这样一份详细的模型是一个艰巨的任务,需要大量的知识的应用程序的行为。

为了解决这些局限性,最近的一些工作(10- - - - - -13)关注动态勘探验证应用程序的运行时性能。然而,这些方法在勘探相对更费时。提高勘探速度,灰色矩形的方法9,38)提出了静态和动态结合勘探或使用二进制仪器。提出的勘探方法也采用灰色矩形战略来提高速度。没有识别出序列独立活动,可以调用前的探索。通过这样做,QDroid可以开始探索在多个入口点。

8.2。移动应用程序验证

如前所述,两个代表应用程序市场,由谷歌和苹果,质量管理应用程序使用自己的方法和显示许多局限性。如表所示3,几个公司和研究人员提出了多种测试工具应用质量验证。在表的所有工具3基于动态探索,而不是静态的方法。这是因为动态探索更适用于应用市场如前所述。


工具的名字 发达 要求的事情。 检查质量的措施
属性 资源 决议

AMC (11] 学院 二进制 可访问性 - - - - - - - - - - - -
VanarSena [9] 学院 二进制 崩溃 - - - - - - - - - - - -
DynoDroid [12] 学院 二进制 崩溃 - - - - - - - - - - - -
Caiipa [13] 学院 二进制 崩溃 CPU、网络能量 - - - - - -
猴子(14] 行业 二进制 崩溃 - - - - - - - - - - - -
Monkeyrunner [16] 行业 脚本 崩溃 - - - - - - 汽车
Robotium [29日] 行业 脚本 崩溃 - - - - - - - - - - - -
Robotium-Recorder [30.] 行业 记录 崩溃 - - - - - - - - - - - -
TestDroid [31日] 行业 记录 崩溃 CPU、内存 手册
Firebase-Robo-Test [32] 行业 二进制 崩溃 - - - - - - 手册
QDroid 学院 二进制 崩溃 CPU、网络能量 汽车

这些工具分为两种类型:学术和工业软件。起初,AMC (11],VanarSena [9],DynoDroid [12],Caiipa [13)是由大学研究项目。AMC (11)评估的适用性UI属性用于车辆的应用。VanarSena [9]和DynoDroid [12)检测到碰撞诱导故障或注射UI和系统事件,分别。此外,Caiipa [13)发现新的崩溃暴露应用到外部的异常情况,如网络条件和位置变化。与QDroid不同,这些研究工作考虑多个质量因素过多的资源使用和兼容性的不同大小的屏幕。

接下来,猴子(14],Monkeyrunner [16],Robotium [29日],Robotium-Recorder [30.],TestDroid [31日],Firebase-Robo-Test [32)是由开源组织和公司工业测试工具。Monkeyrunner工具提供的猴子和Android SDK。猴子(14)生成随机事件,包括触摸屏按下,手势,和其他系统级事件,并喂成一个移动应用。然而,猴子显示可怜的活动范围,因为它是相当天真的测试。Monkeyrunner [16)驱动器Android设备或模拟器根据脚本由用户编写的。Robotium [29日)是一种基于Junit测试框架为一个Android应用程序编写测试用例。Robotium也执行一个Android应用程序根据用户可以编写一个脚本Monkeyrunner相似。这两个工具都严重依赖于手工测试脚本。是一项艰巨的任务编写脚本对大量的应用。此外,这些工具不支持多个质量验证。

Robotium-Recorder、TestDroid Firebase-Robo-Test商业工具的手机应用程序测试。Robotium-Recorder [30.)是一个摄录及回放工具,它允许用户记录Robotium Android设备上测试用例和回放。然而,摄录及回放测试仍然是一个艰巨的任务,由于每天注册应用程序的数量。TestDroid Firebase-Robo-Test云计算基础设施,提供一系列的移动设备测试Android应用程序驻留在数据中心。TestDroid [31日)需要用户记录事件重演他们成千上万的移动设备。不像TestDroid Firebase-Robo-Test [32)可以测试移动应用程序提交应用程序二进制QDroid相似。有了一个操作,用户可以启动测试他们的应用程序在各种各样的设备和设备配置。然而,这些基于云的工具也不考虑多个质量因素。此外,在许多应用程序,所有的商业工具可以巨大成本,因为成本计算是基于使用设备的数量和使用时间。因此,尽管有各种各样的测试工具,市场策展人可以受益于QDroid及时过滤低质量的应用程序。

9。结论

摘要QDroid,提出了一个工具,探讨了应用程序页面和验证的存在崩溃,过度的资源使用,兼容性问题在不同大小的屏幕不需要源代码。QDroid使市场策展人维持市场质量,消除缺陷及时应用。演示QDroid的有效性,QDroid评估的67个应用程序崩溃检测、活动报道,发现过度的资源使用和兼容性问题。结果比较基本的猴子。实验结果表明,QDroid发现了崩溃和访问活动比基本的猴子。此外,QDroid可以显著减少手工测试应用程序的努力。

在未来,QDroid将扩展到包括额外的质量因素,全面覆盖。此外,QDroid将结合实际用户交互模型。通过这样做,可以设计一个有用的质量标准,允许用户为每个特定情况下选择最适当的应用程序。

相互竞争的利益

作者宣称没有利益冲突。

确认

这项研究受到了基础科学研究项目通过韩国国家研究基金会(NRF)由教育部(2014 r1a1a2059669)和区域创新和创造力的人力资源培训计划通过教育部和韩国联盟(2014 h1c1a1066721)。

引用

  1. ai沃瑟曼,“移动应用程序开发的软件工程问题”《FSE / SDP研讨会的未来软件工程研究(安全系数的10)ACM,页397 - 400年,2010年11月。视图:出版商的网站|谷歌学术搜索
  2. m . e . Delamaro A . m . r . Vincenzi和j . c . Maldonado”策略进行覆盖测试的移动应用程序,”学报ACM国际研讨会的自动化软件测试(AST 06年),第124 - 118页,上海,中国,2006年5月。视图:出版商的网站|谷歌学术搜索
  3. h . Muccini a . Di弗朗西斯科·p·埃斯波西托,“移动应用软件测试:挑战和未来的研究方向,”学报》第七届国际研讨会的自动化软件测试(AST的12)页29-35 IEEE,苏黎世瑞士,2012年6月。视图:出版商的网站|谷歌学术搜索
  4. r . Natella d . Cotroneo j . a .硬脑膜和h·s·马德拉,“错软件故障注入的代表性,”IEEE软件工程,39卷,不。1,第96 - 80页,2013。视图:出版商的网站|谷歌学术搜索
  5. AppBrain”比例的低质量的应用程序,“http://www.appbrain.com/stats/number-of-android-apps视图:谷歌学术搜索
  6. a·帕沙克金达尔,y . c . Hu和s . p . Midkiff”清醒保持我的电话是什么?:描述和检测不睡觉能源智能手机应用程序中的bug,”第十届ACM国际研讨会论文集在移动系统中,应用程序和服务(MobiSys 12)ACM,页267 - 280年,湖区,英国,2012年6月。视图:出版商的网站|谷歌学术搜索
  7. c . Gibler j . Crussell j·埃里克森,h·陈,“Androi-dleaks:自动检测潜在的隐私泄漏在大规模的android应用程序,”学报》第五届国际会议在信任和值得信赖的计算(信任' 12)施普林格,页291 - 307年,维也纳,奥地利,2012年。视图:谷歌学术搜索
  8. j . Crussell c Gibler h·陈,“克隆人的进攻:检测克隆的应用程序在android市场,”《欧洲研究在计算机安全(ESORICS研讨会上的12),页37-54,比萨,意大利,2012年9月。视图:谷歌学术搜索
  9. l . Ravindranath s Nath j .周之间,h . Balakrishnan”自动移动应用程序,且可伸缩的故障检测”学报》第12届国际会议在移动系统中,应用程序和服务(MobiSys 14)ACM,页190 - 203年,布雷顿森林,在北半球,美国,2014年6月。视图:出版商的网站|谷歌学术搜索
  10. w·Enck·吉尔伯特美国汉et al .,“Taintdroid:信息流跟踪系统实时隐私监控智能手机上,“ACM交易计算机系统,32卷,不。2,页5:1 - 5:29日,2014年。视图:出版商的网站|谷歌学术搜索
  11. j . k . Lee Flinn, t·j·朱莉,高贵,和c . Peplin”AMC:验证用户界面属性对于车辆应用程序,”《第11届国际会议在移动系统中,应用程序和服务(MobiSys 13)ACM,页1 - 12,台北,台湾,2013年6月。视图:出版商的网站|谷歌学术搜索
  12. a . Machiry r . Tahiliani, m .奈克,“Dynodroid: android应用程序生成一个输入系统,”诉讼的ACM SIGSOFT研讨会的基础软件工程工程师协会(13)ACM,页224 - 234年,2013年8月。视图:出版商的网站|谷歌学术搜索
  13. C.-J。m .梁:d·莱恩:这et al .,“Caiipa:自动化大规模移动应用测试通过上下文起毛,”诉讼20 ACM一年一度的移动计算和网络国际会议(MobiCom 14)ACM,页519 - 530年,毛伊岛,夏威夷,美国,2014年9月。视图:出版商的网站|谷歌学术搜索
  14. 谷歌,“Ui /应用程序做运动的猴子”,http://developer.android.com/tools/help/monkey.html视图:谷歌学术搜索
  15. j . m . Kim香港,s . w .钟“加强在线智能手机功率估计精度,”IEEE消费类电子产品,卷。58岁的没有。2、333 - 339年,2012页。视图:出版商的网站|谷歌学术搜索
  16. Monkeyrunner / monkeyimage,谷歌http://developer.android.com/tools/help/MonkeyImage.html
  17. n . Viennot e·加西亚,j . Nieh“测量研究谷歌玩,”ACM国际会议的程序测量和建模的计算机系统(SIGMETRICS 14)ACM, 233,页221 - 2014。视图:出版商的网站|谷歌学术搜索
  18. b . Stegner,“为什么你不应该信任应用评级在谷歌玩,”http://www.makeuseof.com/tag/shouldnt-trust-app-ratings-google-play/视图:谷歌学术搜索
  19. 谷歌,Playstore的政策指导原则和实践,https://support.google.com/googleplay/android-developer/answer/113474?hl=en&rd=1
  20. s . Perez”近60 k劣质应用引导从谷歌玩商店今年2月,指出增加的反垃圾邮件,”http://techcrunch.com/视图:谷歌学术搜索
  21. 苹果“App store审查指南”,https://developer.apple.com/app-store/review/guidelines/视图:谷歌学术搜索
  22. w . ChangR图形食谱美国加州,O ' reilly Media,塞瓦斯托波尔,第1版,2013年版。
  23. o .信号,信号报告,http://opensignal.com/reports/
  24. a . p . Mathur软件测试基础美国,addison - wesley专业、波士顿、质量,第1版,2008年版。
  25. o .米哈伊尔·y曹y Paek, k . Ko,“节能卸载技术对于流媒体服务器,”移动信息系统卷,2016篇文章ID 7462821, 7页,2016。视图:出版商的网站|谷歌学术搜索
  26. 答:大米和干草,“测量手机能耗为802.11无线网络,“普及和移动计算》第六卷,没有。6,593 - 606年,2010页。视图:出版商的网站|谷歌学术搜索
  27. g . Suarez-Tangil j . e . Tapiador p . Peris-Lopez和s . Pastrana”节能异常检测在智能手机平台的分析和外部化的操作,“普及和移动计算18卷,第151 - 137页,2015年。视图:出版商的网站|谷歌学术搜索
  28. c . y . Liu, s . c .张和j . Lu”Greendroid:自动诊断的能源效率低下的智能手机应用程序,“IEEE软件工程,40卷,不。9日,第940 - 911页,2014年。视图:出版商的网站|谷歌学术搜索
  29. Robotium,“android用户场景测试,”2016年,https://github.com/RobotiumTech/robotium视图:谷歌学术搜索
  30. Robotium Robotium录音机,2016年,http://robotium.com/
  31. TestDroid TestDroid, 2016年,http://testdroid.com/
  32. 谷歌,“android重火力点测试实验室测试无袖长衫,”2016年,https://firebase.google.com/docs/test-lab/robo-ux-test/视图:谷歌学术搜索
  33. p . Godefroid m . y莱文,d . Molnar“圣人:白盒起毛的安全测试:圣人微软具有显著的影响,”队列,10卷,不。1日相较2012页。视图:出版商的网站|谷歌学术搜索
  34. b . Livshits和j·荣格“自动调解隐私资源访问的智能手机应用程序,“学报》第二十二届USENIX安全研讨会华盛顿特区,页113 - 130,美国,2013年8月。视图:谷歌学术搜索
  35. r·c·布莱斯,美国位于和a . m . Memon“开发一个模型和测试优先级策略驱动软件,”IEEE软件工程,37卷,不。1,48 - 64年,2011页。视图:出版商的网站|谷歌学术搜索
  36. 十元,a . m . Memon”使用GUI生成事件序列测试用例运行时状态反馈,”IEEE软件工程,36卷,不。1,第95 - 81页,2010。视图:出版商的网站|谷歌学术搜索
  37. x元,m·b·科恩和a . m . Memon GUI交互测试:将事件的背景下,“IEEE软件工程,37卷,不。4、559 - 574年,2011页。视图:出版商的网站|谷歌学术搜索
  38. w·杨·m·r·普拉萨德,t·谢“灰色矩形方法自动GUI-model一代的移动应用程序,”软件工程的基本方法卷,7793年,页250 - 265,施普林格,柏林,德国,2013年。视图:出版商的网站|谷歌学术搜索

版权©2016 Jemin李和Hyungshin金。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。


更多相关文章

PDF 下载引用 引用
下载其他格式更多的
订单打印副本订单
的观点2480年
下载875年
引用

相关文章

文章奖:2020年杰出的研究贡献,选择由我们的首席编辑。获奖的文章阅读