Guigle: A GUI Search Engine for Android Apps
开发移动应用程序的过程通常始于对其用户界面的构思和概念化。这个概念然后被转换成一组模型,以帮助确定用户界面如何体现应用程序的预期功能。创建模型后,开发人员然后将其转换成在移动终端上运行的应用程序。在本文中,我们提出了一种称为GUIGLE的方法,旨在通过GUI搜索来促进应用程序的用户界面的概念化过程。GUIGLE对从Google Play中提取的大型应用语料库进行自动动态分析,并对提取的GUI图像和元数据进行索引。为了执行搜索,我们的方法使用来自屏幕上显示的文本、用户界面组件、应用程序名称和屏幕调色板的信息来检索给定查询的相关屏幕。此外,我们提供了一个轻量级的查询语言,允许直观的搜索屏幕。我们与真实用户一起评估了GUIGLE,发现平均68.8%的返回屏幕与指定的查询相关。此外,用户发现GUIGLE的各种不同功能很有用,这表明我们的搜索引擎提供了直观的用户体验。最后,用户同意GUIGLE提供的信息在概念化应用程序的新屏幕设计方面是有用的。
2019-01-03 cs.SE
SO{U}RCERER: Developer-Driven Security Testing Framework for Android Apps
对于应用程序开发人员来说,经常建议的安全开发建议在实践中往往不足。工具驱动(例如,使用静态分析工具)方法缺乏被测试的应用程序的上下文和特定于域的要求。应用程序开发人员很难从静态分析工具报告的一系列安全警告中找到一个可操作的优先级漏洞列表。流程驱动(例如,应用威胁建模方法)方法需要大量资源(例如,安全测试团队,预算)和安全专业知识,这是中小型应用程序开发团队几乎负担不起的。为了帮助应用程序开发人员保护他们的应用程序,我们提出了SO{U}RCERER,这是一个针对Android应用程序开发人员的安全测试指导框架。SO{U} RCEER指导开发人员识别应用程序的特定于域的资产,检测漏洞并对其进行优先级排序,并根据安全开发指南缓解这些漏洞。我们通过分析和测试36个Android移动货币应用程序的案例研究来评估SO{U}RCERER。我们发现,通过遵循SO{U} RCEER指导的活动,应用程序开发人员可以获得一个简洁且可操作的漏洞列表(SO{U} RCEER产生的安全警告比独立的静态分析器少24-61%),直接影响移动货币应用程序的关键资产,并制定缓解计划。我们的初步研究结果表明,Android应用程序安全测试的可行方法对应用程序开发人员来说并不复杂。
2021-11-03 cs.SE
A Systematic Study of Deprecated Android API Usage Updates
Texas A&M University–Kingsville(德克萨斯农工大学金斯维尔分校);Central Queensland University(昆士兰中部大学);The University of Queensland(昆士兰大学)
本研究分析1000个废弃Android API与4336个GitHub迁移示例,确定6类迁移模式,将其融入GUPPY基准提示后,在156个任务上正确更新数从139增至147,多数类别性能提升。
2026-10-13 cs.SE
A repository of automatic GUI test patterns in Android applications: Specification and Analysis using Alloy modeling language
软件行业的目标是为客户提供高质量的软件。软件测试是保证软件质量的关键和敏感阶段。由于移动设备的日益普及,Android应用程序的使用有所增加。几乎所有的都配备了图形用户界面与用户或系统进行交互。GUI是与现代软件进行通信的最常用工具。因此,完美的GUI是保证整个软件系统安全性、强度和可用性的GUI。GUI测试是确保产品质量的重要阶段,因为GUI是用户对最终产品的第一印象和最终视图。本文提出了一种新的技术,以提高基于模型的测试效率,使用合金建模语言。研究结果表明,这种方法需要更少的配置和建模时间比以前的方法。此外,使用GUI模式可以减少错误和违规。
2022-09-05 cs.LO cs.SE
Test Reuse Based on Adaptive Semantic Matching across Android Mobile Applications
自动测试生成可以帮助验证和开发移动应用程序的行为。基于相同类别的应用程序之间的语义相似性的测试重用已被用于减少图形用户界面(GUI)测试的手动工作。然而,现有的研究大多未能解决事件匹配的语义问题,导致测试复用的失败。为了克服这一挑战,我们提出了TRASM(基于自适应语义匹配的测试重用),一种基于自适应策略的测试重用方法,可以在Android移动应用程序中找到更好的事件匹配。TRASM首先对测试生成得到的初始测试集进行GUI事件去重,然后采用自适应策略寻找更好的事件匹配,从而实现对已有测试的重用。在15个应用程序上与基线方法进行了初步的实验比较,结果表明,TRASM可以提高GUI事件匹配的精度,同时减少测试重用的失败和测试重用所需的运行时间。
2023-01-02 cs.SE
Many a Little Makes a Mickle: A Code-Centric Empirical Study of Data Minimization Principle in Android App Development
Australian National University(澳大利亚国立大学);CSIRO(联邦科学与工业研究组织);CSIRO’s Data61(联邦科学与工业研究组织数据61)
通过对1114个开源Android应用的实证研究,识别出五个数据处理阶段中的十种数据最小化场景,并基于9875个真实APK的大规模分析提炼出31条可操作的编码指南,同时发现LLM生成的代码会重现数据最小化风险实践,而纳入指南可消除这些问题。
2026-06-01 cs.SE
Columbus: Android App Testing Through Systematic Callback Exploration
随着Android移动设备的不断普及,应用程序的自动化测试变得比以往任何时候都更加重要。Android应用程序是事件驱动的程序。不幸的是,通过与应用程序的界面交互来生成所有可能类型的事件对于自动化测试方法来说是一个挑战。回调驱动的测试通过直接调用应用回调消除了事件生成的需要。然而,现有的回调驱动测试技术假设Android回调的先验知识,并且它们依赖于熟悉Android API的人类专家来编写在调用之前准备回调参数的存根代码。由于Android API庞大且不断发展,现有技术只能支持Android框架中存在的一小部分回调。在这项工作中,我们介绍了Columbus,一种回调驱动的测试技术,它采用两种策略来消除对人类参与的需求:(i)它通过同时分析Android框架和测试中的应用程序来自动识别回调,以及(ii)它使用了一种组合,(原始参数)和类型引导的动态堆内省(对象参数)来生成有效的输入。最后,Columbus在测试过程中集成了两种新的反馈机制--数据依赖和崩溃指导,以增加触发崩溃的可能性,并最大限度地提高覆盖率。在我们的评估中,Columbus在崩溃和覆盖率方面都优于最先进的模型驱动、基于检查点和回调驱动的测试工具。
2023-02-17 cs.SE
NaviDroid: A Tool for Guiding Manual Android Testing via Hint Moves
作为自动GUI测试的补充,手动测试是应用质量的最后一道防线,特别是在发现可用性和可访问性问题方面。然而,重复的动作和容易丢失的一些功能,使手工测试耗时,劳动密集和效率低下。受糖果粉碎游戏的启发,我们开发了一个名为NaviDroid的工具,用于通过突出显示的下一个操作来导航人类测试人员,以实现更有效和高效的测试。在NaviDroid中,它构建了一个丰富的状态转换图(STG),其中触发器动作作为两个相关状态的边。NaviDroid在STG的基础上,利用动态规划算法规划探索路径,并在运行时GUI中增加可视化提示动作,使测试人员能够快速探索未测试的状态,避免重复。自动化实验证明了NaviDroid的高覆盖率和高效的路径规划。用户研究进一步证实了它的有用性,在参与者覆盖更多的状态和活动,检测更多的错误在更短的时间内与对照组相比。NaviDroid演示视频:https://youtu.be/lShFyg_nTA0。
2022-05-27 cs.SE
Target Directed Event Sequence Generation for Android Applications
测试是保证软件质量的常用方法,其中基于模型的测试是测试Android应用程序等GUI程序的热门话题。现有的方法主要是动态地构建一个只包含GUI信息的模型,或者从代码的角度构建一个模型,而这个模型可能无法描述GUI控件在运行时的变化。此外,这些模型中的大多数不支持回栈,这是Android的一种特殊机制。因此,本文提出了一个模型LATTE,动态构造考虑的视图信息的窗口部件以及回栈,来描述GUI窗口部件之间的过渡。我们还提出了一个标签集链接的LATTE模型的元素程序片段。用户可以定义标签集的一个子集作为测试需求的目标,这些测试需求需要覆盖代码的某些特定部分。为了避免模型构建过程中的状态爆炸问题,我们引入了状态相似度的定义来平衡模型的精度和分析成本。基于该模型,提出了一种目标导向测试生成方法,生成事件序列以有效覆盖目标。在几个真实应用上的实验表明,基于LATTE生成的测试用例可以达到较高的覆盖率,并且利用该模型可以生成覆盖给定目标的短事件序列的事件序列。
2017-08-23 cs.SE
GAPS: Targeted Execution of Android Apps via Static Path Reconstruction
University of Padua(帕多瓦大学);University of Luxembourg(卢森堡大学)
研究安卓应用定向执行难题,提出GAPS方法,结合静态程序分析与动态GUI探索,通过反向遍历调用图和数据流推理识别路径并转化为策略,在基准测试和热门应用评估中表现出色,有效且可扩展地解决了定向方法执行问题。
2026-07-20 cs.SE
RotDroid: Cross-Orientation State Equivalence Testing for Detecting GUI Rotation Bugs in Android Apps
Beihang University(北京航空航天大学)
RotDroid是一款检测Android应用GUI旋转漏洞的测试框架,通过生成SPS、构建RotBench数据集及开发RotVL模型,在相同预算下比现有技术检测到更多旋转故障,还发现94个未知漏洞且47个被确认修复。
2026-08-27 cs.AI cs.SE
Toward Interactive Bug Reporting for (Android App) End-Users
许多软件错误都是手动报告的,特别是在用户界面中以视觉方式表现出来的错误。最终用户通常通过应用审查网站、问题跟踪器或应用内置的错误报告工具(如果可用)报告这些错误。虽然这些系统具有促进错误报告的各种特征(例如,文本模板或表单),它们通常向最终用户提供有限的指导、具体的反馈或质量验证,这些最终用户通常在报告bug方面缺乏经验,并且提交低质量的bug报告,这导致开发人员在bug报告管理任务中花费过多的精力。我们提出了一个交互式的错误报告系统的最终用户(伯特),实现为一个面向任务的聊天机器人。与现有的错误报告系统不同,Burt提供了基本错误报告元素的指导报告(即,观察到的行为、预期的行为和重现bug的步骤)、即时质量验证以及这些元素的图形化建议。我们为Android实现了一个版本的Burt,并对最终用户进行了实证评估研究,他们报告了先前工作中研究的六个Android应用程序中的12个错误。报告者发现,Burt的指导和自动化建议/澄清是有用的,而且Burt很容易使用。我们发现Burt报告包含的信息质量比通过基于模板的错误报告系统收集的报告更高。报告者告知对Burt的改进包括支持各种措辞来描述bug报告元素和改进的质量验证。我们的工作标志着一个重要的范式转变,从静态到交互式的错误报告的最终用户。
2022-09-21 cs.SE
Pairwise GUI Dataset Construction Between Android Phones and Tablets
Monash University(莫纳什大学)
针对手机与平板间无成对GUI数据集、制约深度学习用于自动化GUI开发的问题,本文提出首个安卓跨端成对GUI数据集Papt及配套采集方法,并通过实验分析了相关技术挑战。
2023-11-05 cs.AI cs.HC cs.SE
Enhancing GUI Exploration Coverage of Android Apps with Deep Link-Integrated Monkey
本文提出深度链接增强的 Monkey 测试工具 Delm,通过触发 Android intent 模拟 Activity 上下文并引导探索过程跳出循环,从而显著提升 Activity 覆盖率、方法覆盖率和崩溃检测能力。
2024-04-30 cs.CR cs.SE
Is Your Private Information Logged? An Empirical Study on Android App Logs
Rochester Institute of Technology(罗切斯特理工学院);University of Waterloo(滑铁卢大学)
本研究通过构建Android应用日志数据集,分析隐私泄露现状及原因,揭示开发者对隐私问题的关注,并提出隐私保护建议。
2026-02-17 cs.SE
An Empirical Study for Android-to-OpenHarmony GUI Test Migration
Harbin Institute of Technology(哈尔滨工业大学);Beijing Institute of Technology(北京理工大学);Beihang University(北航);Peking University(北京大学)
研究从安卓到开源鸿蒙系统的图形用户界面测试迁移问题,构建数据集,选择并适配两种先进迁移方法进行评估,发现现有方法效果不佳,进而提出增强方法ITeM-HM,显著提升了测试迁移成功率。
2026-07-15 cs.AI cs.SE
Guided Bug Crush: Assist Manual GUI Testing of Android Apps via Hint Moves
移动应用程序是人们日常生活中不可或缺的。与自动化GUI测试相辅相成,手动测试是应用质量的最后一道防线。然而,重复的操作和容易丢失的功能使得手动测试耗时且效率低下。受糖果粉碎游戏的启发,华丽的糖果作为玩家的提示动作,我们提出了一种名为NaviDroid的方法,通过突出显示的下一个操作,更有效和高效的测试导航测试。在NaviDroid中,我们构建了一个丰富的状态转换图,其中触发动作作为两个相关状态的边缘。在此基础上,利用动态规划算法规划探索路径,并在GUI中增加可视化提示,使测试人员能够快速探索未测试的活动,避免重复探索。自动化实验证明了NaviDroid的高覆盖率和高效的路径规划,用户研究进一步证实了其实用性。NaviDroid可以帮助我们开发更强大的软件,在更关键的任务设置中工作,不仅通过执行更彻底的测试,而且通过将这些技术集成到开发管道的不同部分。
2022-01-28 cs.HC cs.SE
ReuseDroid: A VLM-empowered Android UI Test Migrator Boosted by Active Feedback
针对移动应用GUI测试迁移中操作逻辑差异导致效果不佳的问题,提出基于大型视觉语言模型的多智能体框架REUSEDROID,利用GUI页面的视觉与文本信息并基于核心共享逻辑进行迁移,在数据集LinPro上成功迁移90.3%的任务,显著超越现有基线。
2025-04-03 cs.SE
Enabling Mutation Testing for Android Apps
变异测试已被广泛用于评估测试套件的故障检测有效性,以及指导测试用例生成或优先级排序。经验研究表明,虽然突变体通常代表真实故障,但突变测试的有效应用需要为程序设计语言设计的“传统”运算符用特定于应用领域和/或技术的运算符来扩充。本文提出了MDroid+,一个有效的Android应用程序的突变测试框架。首先,我们通过手动分析来自不同来源的2,023个软件工件(例如,错误报告、提交)。然后,我们确定了一组38个变异算子,并实现了一个基础设施,用其中的35个算子在Android应用程序中自动播种变异。的分类和建议的运营商进行了评估方面的死产/平凡的突变体产生和他们的能力,代表真正的故障在Android应用程序中,相比其他众所周知的突变工具。
2017-08-01 cs.SE
Deep Reinforcement Learning for Black-Box Testing of Android Apps
Android应用程序的状态空间是巨大的,在测试期间对其进行彻底的探索仍然是一个重大挑战。事实上,最佳的探索策略高度依赖于被测应用程序的功能。强化学习(RL)是一种机器学习技术,它通过尝试和错误来学习解决任务的最佳策略,由积极或消极的奖励引导,而不是由明确的监督。深度RL是RL的最新扩展,它利用了神经网络的学习能力。这些功能使Deep RL适合复杂的探索空间,例如Android应用程序。然而,最先进的公开可用工具仅支持基本的表格式RL。我们已经开发了ARES,这是一种用于Android应用程序黑盒测试的深度RL方法。实验结果表明,它实现了更高的覆盖率和故障揭示比基线,其中包括最先进的基于RL的工具,如TimeMachine和Q-Testing。我们还定性地研究了这种性能背后的原因,并确定了Android应用程序的关键功能,这些功能使Deep RL对它们特别有效,即存在链式和阻塞活动。
2021-01-15 cs.SE
A Large-Scale Exploratory Study of Android Sports Apps in the Google Play Store
本研究对Google Play商店中两千多个体育应用进行实证分析,通过人工分析、主题建模和情感分析揭示其特征与用户负面意见,证明类别内分析能提供更具体且广泛的见解。
2023-10-11 cs.SE
Runtime Permission Issues in Android Apps: Taxonomy, Practices, and Ways Forward
Android引入了新的权限模型,允许应用在运行时请求权限,而不是在6.0(Marshmallow,API级别23)之后的安装时请求权限。虽然这种运行时权限模型为用户提供了更大的灵活性来控制应用对敏感数据和系统功能的访问,但它也给应用开发带来了新的挑战。首先,由于用户可以在使用应用程序时随时授予或撤销权限,因此开发人员需要确保应用程序在调用任何受权限保护的API之前正确检查并请求所需的权限。其次,Android的权限机制不断发展,并由设备制造商定制。开发人员需要在不同的Android版本和设备型号上全面测试他们的应用程序,以确保在所有情况下都能正确请求权限。不幸的是,这些要求对开发人员来说往往是不切实际的。在实践中,许多Android应用程序都会遇到各种运行时权限问题(ARP问题)。虽然现有的研究已经探讨了ARP问题,但对这些问题的理解仍然是初步的。为了更好地描述ARP问题,我们使用135个讨论ARP问题的Stack Overflow帖子和GitHub上流行的开源Android项目中存档的199个真实ARP问题进行了实证研究。通过分析数据,我们观察到了Android应用中常见的11种ARP问题。此外,我们对从业人员进行了实地调查和深入访谈,以获得行业实践的见解,并了解从业人员对有助于解决ARP问题的工具的需求。我们希望我们的研究结果可以阐明未来的研究,并为从业者提供有用的指导。
2021-06-24 cs.SE
A Pairwise Dataset for GUI Conversion and Retrieval between Android Phones and Tablets
针对手机与平板间缺乏成对 GUI 数据的问题,本文构建并公开含 10,035 个 GUI 页面对的 Papt 数据集,支撑跨设备 GUI 转换、检索及深度学习自动化开发研究。
2023-11-05 cs.HC cs.SE
Hawkeye: Change-targeted Testing for Android Apps based on Deep Reinforcement Learning
ByteDance(字节跳动);University of Edinburgh(爱丁堡大学)
针对Android应用更新测试效率低的问题,提出基于深度强化学习的Hawkeye定向测试方法,优先执行与代码变更相关的GUI操作,实验证明其优于现有工具并适用于商业应用冒烟测试。
2023-09-04 cs.LG cs.SE
Humanoid: A Deep Learning-based Approach to Automated Black-box Android App Testing
自动输入生成器广泛用于移动应用程序的大规模动态分析。这样的输入生成器必须不断地选择与哪个UI元素交互以及如何与它交互,以便在有限的时间预算内实现高覆盖率。目前,大多数输入生成器采用伪随机或蛮力搜索策略,这可能需要很长时间才能找到正确的输入组合,从而将应用程序驱动到新的重要状态。在本文中,我们提出了Humanoid,一种基于深度学习的方法,通过从人类交互中学习来生成GUI测试输入。我们的观点是,如果我们可以从人类生成的交互痕迹中学习,就有可能根据用户感知的重要性自动对测试输入进行优先级排序。我们设计并实现了一个深度神经网络模型,以了解最终用户如何与应用程序交互(具体来说,与哪些UI元素交互以及如何交互)。我们的实验表明,交互模型可以成功地优先考虑任何新UI的用户首选输入(前1名的准确率为51.2%,前10名的准确率为85.2%)。我们基于学习的模型为Android应用程序实现了一个输入生成器,并在开源应用程序和市场应用程序上对其进行了评估。结果表明,Humanoid能够实现比六个最先进的测试生成器更高的覆盖率。然而,进一步的分析表明,学习模型不是覆盖率提高的主要原因。虽然学习的交互模式可以以更高的概率驱动应用进入一些重要的GUI状态,但它对GUI状态搜索的宽度和深度的影响有限,这是长期提高测试覆盖率的关键。是否以及如何使用人类交互模式来提高覆盖率仍然是一个未知且具有挑战性的问题。
2020-12-30 cs.SE
Scene-Driven Exploration and GUI Modeling for Android Apps
本文提出 SceneDroid,通过智能探索、状态模糊测试和间接启动等技术动态提取 GUI 场景并构建 SceneTG,显著提升 Android 应用 GUI 建模的迁移覆盖率与场景提取能力。
2023-08-20 cs.CR cs.HC cs.SE
BURT: A Chatbot for Interactive Bug Reporting
本文介绍了BURT,一个基于Web的聊天机器人,用于交互式报告Android应用程序错误。BURT旨在帮助Android应用最终用户使用交互式界面报告高质量的缺陷信息。BURT指导用户报告基本的错误报告元素,即,观察到的行为、预期的行为以及重现bug的步骤。它验证用户所写文本的质量并提供即时反馈。此外,BURT提供了图形化的建议,用户可以选择作为文本描述的替代方案。我们对BURT进行了实证评估,要求最终用户报告六个Android应用程序的错误。记者发现,BURT的指导以及自动建议和澄清很有用,而且BURT很容易使用。BURT是一个开源工具,可在github.com/sea-lab-wm/burt/tree/tool-demo上获得。可以在https://youtu.be/SyfOXpHYGRo上找到显示BURT全部功能的视频
2023-02-13 cs.SE
How do Developers Test Android Applications?
实现移动应用程序的全自动测试最近已成为研究人员和从业人员的重要研究课题。已经提出了大量的工具和方法,通过增加手动测试实践和自动化测试过程的各个部分来帮助移动开发人员。然而,目前的自动化测试方法无法让开发人员相信它们的好处,导致大多数移动测试都是手动执行的。为了帮助设计支持移动测试方法的研究人员和从业人员了解开发人员的需求,我们分析了来自Android项目的102位开源贡献者关于他们在执行测试时的实践的调查回复。调查的重点是关于开发人员/测试人员在野外的实践和偏好的问题:(i)设计和生成测试用例,(ii)自动化测试实践,以及(iii)对质量度量的看法,例如用于确定测试质量的代码覆盖率。通过分析从这次调查中收集到的信息,我们汇编了一套知识体系,以帮助指导研究人员和专业人员根据不同开源开发人员的需求定制新的自动化测试方法。
2018-01-19 cs.SE
PriviSense: A Frida-Based Framework for Multi-Sensor Spoofing on Android
Johns Hopkins University(约翰斯·霍普金斯大学);University of Notre Dame(圣母大学);Northeastern University(东北大学)
PriviSense是一种基于Frida的Android多传感器欺骗框架,用于在rooted设备上实现传感器和系统信号的实时欺骗,以支持可重复的环境敏感应用测试和隐私分析。
2026-01-29 cs.CR cs.HC cs.SE
Fine-grained Code Coverage Measurement in Automated Black-box Android Testing
今天,有数百万的第三方Android应用程序。这些应用程序中有一些是错误的,甚至是恶意的。为了识别这些应用程序,包括Google在内的Android社区正在开发用于自动化黑盒测试和动态分析的新框架。代码覆盖率是评估这些框架有效性的最常见指标之一。此外,代码覆盖率被用作指导进化和模糊测试技术的适应度函数。然而,在黑盒Android应用程序测试中,没有可靠的工具来测量细粒度的代码覆盖率。我们提出了Android代码覆盖工具,简称ACVTool,它可以检测Android应用程序,并在类,方法和指令粒度的黑盒设置中测量代码覆盖率。在我们的实验中,ACVTool已经成功检测了96.9%的应用程序。它引入了一个可以忽略不计的插装时间开销,并且它的运行时开销对于自动化测试工具来说是可以接受的。我们在一个大规模的实验与Sapienz,一个国家的最先进的测试工具,细粒度的预防级别的代码覆盖率ACVTool提供的帮助,发现了更大的故障比粗粒度的代码覆盖率指标。
2018-12-27 cs.CR cs.SE
LELANTE: LEveraging LLM for Automated ANdroid TEsting
本文提出 LELANTE 框架,利用大型语言模型自动解释自然语言测试用例并直接在 Android 屏幕上执行操作,无需预编写脚本,在 390 个测试用例中达到 73% 成功率,有效提升了移动测试的可扩展性和适应性。
2025-04-29 cs.SE
Large-Scale Analysis of Framework-Specific Exceptions in Android Apps
移动应用程序已经变得无处不在。对于应用程序开发人员来说,确保应用程序的正确性和可靠性是一个关键的优先事项。然而,许多应用程序仍然遭受偶尔或频繁的崩溃,削弱了它们的竞争优势。对真实世界应用崩溃的特征进行大规模深入分析可以提供有用的见解来指导开发人员,或帮助改进测试和分析工具。然而,这样的研究并不存在-本文填补了这一空白。经过四个月的努力,我们从2,486个开源Android应用程序中收集了16,245个独特的异常跟踪,并观察到特定于框架的异常占这些崩溃的大多数。然后,我们广泛地调查了8,243个特定于框架的异常(花费了六个人月的时间):(1)识别它们的特征(例如,表现形式位置、常见故障类别),(2)通过最先进的缺陷检测技术评估它们的表现形式,以及(3)检查它们的修复。除了这些发现提供的见解外,这些发现还激励并促进了对移动应用程序的后续研究,例如错误检测,故障定位和补丁生成。此外,为了证明我们的研究结果的实用性,我们优化了Stoat,一个动态测试工具,并实现了Experiment,一个异常本地化工具,用于Android应用程序。Stoat能够快速发现Gmail和Google+中三个以前未知的、已确认/已修复的崩溃; Experiment能够精确定位真实应用程序中已识别异常的根本原因。我们的大量数据集是公开的,与社区分享并使社区受益。
2018-03-10 cs.SE
An Exploratory Study on the Occurrence of Self-Admitted Technical Debt in Android Apps
技术债描述了开发人员编写的代码不符合项目里程碑的情况。然而,这种债务积累往往会导致未来的开发人员努力解决这些质量问题。为了更好地管理这种债务,开发人员可以将他们的次优代码记录为代码中的注释(即,自我承认的技术债务或SATD)。虽然先前的研究已经调查了SATD的发生和特征,但本研究主要集中在非移动系统上。随着数百万的移动应用程序(应用程序)在多种类型可供最终用户,有一个缺乏研究的次优代码开发人员故意实现在移动应用程序。在这项研究中,我们研究了15,614个开源Android应用程序中SATD的发生和特征。我们的研究结果表明,即使这些应用程序包含SATD的发生,每个应用程序的数量(中位数为4)低于非移动系统,大多数债务被归类为代码债务。此外,我们还确定了应用程序中容易出现故意次优实现的典型元素。我们设想我们的研究结果支持研究人员和工具供应商构建工具和技术,以支持应用程序开发人员进行应用程序维护。
2023-03-03 cs.SE
Mind the Gap: Action Rebinding Attacks against Android GUI Agents
State Key Laboratory for Novel Software Technology, Nanjing University(新型软件技术国家重点实验室,南京大学);Hornor Device Co., Ltd(Hornor设备有限公司);Institute of Dataspace, Hefei Comprehensive National Science Center(数据空间研究所,合肥综合性国家科学中心)
研究揭示了由大型多模态模型驱动的GUI代理在Android中存在视觉原子性假设的漏洞,通过零权限攻击实现对代理执行的重新绑定,并利用意图对齐策略绕过验证门,展示了代理-操作系统集成中的安全缺陷。
2026-07-16 cs.AI cs.CR cs.SE
A Comparative Study of Full Apps and Lite Apps for Android
针对Android应用“一刀切”开发策略的弊端,研究者开展轻量与全量应用的多维度对比研究,发现多数轻量应用未达体积小、下载快、省流量的预期目标,且存在潜在安全风险。
2025-01-14 cs.SE
METFORD -- Mutation tEsTing Framework fOR anDroid
本文提出 Android 变异测试框架 METFORD,利用变异体模式集成传统与 Android 专用算子,显著降低时间、磁盘和碳足迹成本。
2025-01-12 cs.SE
Role of CI Adoption in Mobile App Success: An Empirical Study of Open-Source Android Projects
University of Toronto(多伦多大学);Trent University(特伦特大学)
本文研究了持续集成在开源Android项目中的影响,发现采用CI的项目规模更大、更活跃,发布更快,且在应用商店表现更佳。
2026-02-02 cs.SE
To What Extent Is Stress Testing of Android TV Applications Automated in Industrial Environments?
基于Android的智能电视(TV)必须在各种硬件资源条件下在嵌入式程序环境中可靠地运行其应用程序。由于用于构建众多电视模型的各种硬件组件,电视模拟器通常没有足够的保真度来模拟各种电视模型,因此在对此类应用进行压力测试时仅被视为不可靠的替代品。因此,尽管在真实电视机上进行压力测试是繁琐的,但这是确保行业中这些应用程序可靠性的事实方法。在本文中,我们研究在工业环境中,智能电视应用程序的压力测试可以在多大程度上完全自动化。据我们所知,没有以前的工作已经解决了这个重要的问题。我们总结了从10个工业测试工程师那里收集的结果,他们在真实的生产环境中测试了20个这样的电视应用程序。我们的研究表明,行业所需的测试自动化支持高层次的GUI对象控制和状态检查,资源条件的设置和两者之间的相互作用。有了这些支持,一个电视型号的87%的工业测试规格可以完全自动化,其中71.4%被发现是完全可重复使用的,以测试后续的电视型号,主要升级的硬件,操作系统和应用程序。与没有此类支撑的压力测试相比,它代表了28%和38%的利润率的显着改善。
2015-09-23 cs.SE
A large-scale dataset of Android applications and their SDK dependencies
IMT School for Advanced Studies(高等研究学院);Istituto Nazionale di Alta Matematica ‘Francesco Severi’ (INdAM-GNAMPA)(高等数学国家研究所‘弗朗切斯科·塞韦里’);IUSS University School for Advanced Studies(高级研究大学学院)
该研究构建了一个将安卓应用与第三方SDK关联的大规模数据集,核心方法是结合APK、元数据及检测规则,实现可重复的静态分析流程,贡献是支持构建应用-SDK依赖网络及相关分析,且公开了流程和数据集。
2026-07-07 cs.SE cs.SI
BugRepro: Enhancing Android Bug Reproduction with Domain-Specific Knowledge Integration
Macau University of Science and Technology(澳门科技大学);Northwestern Polytechnical University(西北工业大学)
本文提出BugRepro,通过整合领域知识提升Android应用bug重现的准确性和效率,实验表明其在S2R实体提取准确率和重现成功率上均显著优于现有方法。
2025-05-29 cs.SE
MadDroid: Characterising and Detecting Devious Ad Content for Android Apps
广告推动了移动应用生态系统的经济发展。作为移动广告商业模式中的关键组成部分,移动广告内容一直被研究界所忽视,这带来了许多威胁,例如,传播恶意软件和不良内容。为了了解这些不正当广告行为的做法,我们对通过自动化应用程序测试收集的应用程序内容进行了大规模研究。在这项工作中,我们首先提供了一个全面的分类不正当的广告内容,包括五种行为属于两个类别:\emph{ad loading content}和\emph{ad clicking content}。然后,我们提出了MadDroid,一个框架,用于自动检测不正当的广告内容。MadDroid利用自动化应用程序测试框架和复杂的广告视图探索策略,有效收集广告相关的网络流量,并随后提取广告内容。然后,我们将专门的方法集成到框架中,以识别不正当的广告内容。我们已经将MadDroid应用于40,000个Android应用程序,发现大约6%的应用程序提供了不正当的广告内容,例如,分发无法通过传统应用市场下载的恶意应用。实验结果表明,不正当的广告内容是普遍存在的,这表明我们的社区应该投入更多的精力来检测和缓解不正当的广告,以建立一个值得信赖的移动广告生态系统。
2020-02-05 cs.CR cs.SE
How Far are App Secrets from Being Stolen? A Case Study on Android
该研究针对Android应用密钥泄露问题开展首项系统性研究,通过采样分析Google Play热门应用的密钥,设计正则表达式文本挖掘策略,证实大量应用密钥极易被窃取,凸显问题普遍性并呼吁加强密钥保护。
2025-01-14 cs.CR cs.SE
Android Instrumentation Testing in Continuous Integration: Practices, Patterns, and Performance
University of Toronto(多伦多大学);Trent University(特伦特大学)
研究Android持续集成中仪器测试的实践、模式及性能,发现仅10.6%的仓库使用仪器测试,常用社区组件或自定义脚本设置模拟器,不同设置方式在可靠性、效率和成本上有差异。
2026-04-03 cs.SE
Same App, Different Behaviors: Uncovering Device-specific Behaviors in Android Apps
本文提出三阶段静态分析框架,首次大规模实证研究 Android 应用的设备特定行为,揭示其分布、功能类别、隐私滥用风险及开发者实现挑战。
2024-06-14 cs.SE
Accessible or Not? An Empirical Investigation of Android App Accessibility
移动应用程序为残疾人在世界上独立行动提供了新的机会。受这种趋势的激励,研究人员通过使用每个页面的不可访问性问题率(即,屏幕级别)来表示移动应用程序可访问性的特征。然而,仍然缺乏直接关注问题本身的实证研究(即,问题级别),以揭示更细粒度的调查结果,由于缺乏有效的问题检测方法和相对全面的问题数据集。为了填补这一文献空白,我们首先提出了一个自动化的应用程序页面探索工具,命名为Xbot,以促进应用程序的可访问性测试,并自动收集可访问性问题,利用仪器技术和静态程序分析。由于Xbot在探索应用程序时实现了相对较高的活动覆盖率(约80%),Xbot在可访问性问题收集方面的性能优于现有的测试工具,如Google Monkey。通过Xbot,我们能够收集到一个相对全面的无障碍问题数据集,最终收集到来自2,270个独立应用程序(包括闭源和开源应用程序)的86,767个问题,并在此基础上进一步从无障碍问题本身的角度进行实证研究,以探讨无障碍问题的新特征。具体而言,我们通过检查1)多个标准的问题的总体严重性,2)问题类型与应用程序类别,GUI组件类型之间的深入关系,3)定量的频繁问题模式,以及4)可访问性问题的修复状态来广泛调查这些问题。
2022-03-12 cs.SE
Are Free Android App Security Analysis Tools Effective in Detecting Known Vulnerabilities?
人们对保护Android生态系统的兴趣日益浓厚,这催生了许多帮助应用程序开发人员构建安全应用程序的努力。这些努力产生了能够检测应用程序中的漏洞(和恶意行为)的工具和技术。然而,没有对这些工具和技术在检测已知漏洞方面的有效性进行评估。缺乏此类评估使应用程序开发人员在选择安全分析工具来保护其应用程序时处于不利地位。在这方面,我们评估了Android应用程序漏洞检测工具的有效性。我们审查了64个工具,并根据Ghera基准测试捕获的42个已知的独特漏洞对14个漏洞检测工具(附带还有5个恶意行为检测工具)进行了经验评估,这些漏洞由易受攻击的应用程序和安全应用程序组成。在评估的24个观察结果中,主要观察结果是现有的Android应用程序漏洞检测工具检测已知漏洞的能力非常有限-所有评估的工具加在一起只能检测42个已知独特漏洞中的30个。如果安全分析工具要帮助开发人员构建安全的应用程序,就需要付出更多的努力。我们希望本次评估的结果能够帮助应用程序开发人员选择合适的安全分析工具,并说服工具开发人员和研究人员识别和解决其工具和技术中的局限性。我们也希望这次评估能够在软件工程和安全社区中引发一场对话,要求对安全分析工具和技术进行更严格、更明确的评估。
2019-08-05 cs.CR cs.SE
DroidBot-GPT: GPT-powered UI Automation for Android
Institute for AI Industry Research (AIR), Tsinghua University(清华大学人工智能产业研究院);Beijing University of Posts and Telecommunications(北京邮电大学)
本文提出DroidBot-GPT,利用类GPT大型语言模型将Android应用GUI状态与可用操作转为自然语言提示以自动生成并执行任务操作,在自建数据集上实现39.39%的任务完成率,验证了无监督UI自动化的潜力。
2024-01-07 cs.AI cs.SE
When Program Analysis Meets Bytecode Search: Targeted and Efficient Inter-procedural Analysis of Modern Android Apps in BackDroid
广泛使用的Android静态程序分析工具,例如,Amandroid和FlowDroid执行整个应用程序的过程间分析,这是全面的,但从根本上难以处理现代(大型)应用程序。应用程序的平均大小在五年内增加了三到四倍。在本文中,我们探索了一种新的范式,有针对性的过程间分析,可以跳过不相关的代码,只关注安全敏感的汇API的流。为此,我们提出了一种称为动态字节码搜索的技术,该技术在需要定位调用者时及时搜索反汇编的应用程序字节码文本。通过这种方式,它逐步引导有针对性的(和向后的)过程间分析,直到到达入口点,而不依赖于整个应用程序图。然而,由于Java多态性、回调、异步流、静态初始化器和Android应用程序中的组件间通信,这种基于搜索的过程间分析具有挑战性。我们克服了这些独特的障碍,在我们的上下文中,提出了一套字节码搜索机制,利用灵活的搜索和前向对象污点分析。在这种新的过程间分析之上,我们进一步调整了传统的向后切片和向前常数传播,以提供对sink API调用的完整的跟踪。我们已经实现了一个名为BackDroid的原型,并将其与Amandroid进行了比较,分析了3,178个现代流行应用程序的加密和SSL错误配置。评估显示,对于此类基于sink的问题,BackDroid的速度快了37倍(2.13 vs. 78.15分钟),并且没有超时故障(v.s. Amandroid中为35%),同时保持接近甚至…
2020-05-23 cs.CR cs.SE
Autonomous Large Language Model Agents Enabling Intent-Driven Mobile GUI Testing
KAIST(韩国科学技术院);Chalmers University of Technology(查尔姆斯理工大学)
提出基于大语言模型的Android自主GUI测试智能体DroidAgent,实现意图驱动测试,在Themis基准上达到61%活动覆盖率,优于现有技术,并能自主创建现实任务。
2023-11-15 cs.AI cs.SE
An Empirical Evaluation of GDPR Compliance Violations in Android mHealth Apps
《通用数据保护条例》(GDPR)旨在提供更好的隐私保护。如果应用程序控制用户的个人数据,则需要符合GDPR。然而,GDPR列出了一般规则,而不是关于如何开发满足要求的应用程序的确切分步指南。因此,现有应用程序中可能存在违反GDPR合规的情况,这将对应用程序用户构成严重的隐私威胁。在本文中,我们以移动健康应用程序(mHealth应用程序)为窥视孔,检查Android应用程序中GDPR合规性的现状。我们首先提出了一个名为\mytool的自动化系统,通过识别应用程序隐私政策中声明的数据实践和应用程序代码中的数据相关行为,弥合GDPR的一般规则和应用程序实现之间的语义差距。然后,基于\mytool,检测了隐私策略不完整、数据汇集不一致、数据传输不安全等三类GDPR合规违规行为。我们对796个移动健康应用程序进行了实证评估。结果显示,有189家(23.7%)没有提供完整的隐私政策。此外,59个应用程序通过不同的措施收集敏感数据,但其中46个(77.9%)包含至少一种不一致的收集行为。更糟糕的是,在59个应用程序中,只有8个应用程序试图确保收集数据的传输安全性。但是,它们都包含至少一个加密或SSL误用。我们的工作暴露了严重的隐私问题,以提高应用用户和开发人员的隐私保护意识。
2020-08-14 cs.CR cs.SE
AUTOVR: Automated UI Exploration for Detecting Sensitive Data Flow Exposures in Virtual Reality Apps
本文提出 AUTOVR 自动化框架,通过分析 Unity VR 应用内部二进制、解析隐藏事件及依赖关系实现全面 UI 探索,实验表明其敏感数据暴露触发量比 Android Monkey 高一个数量级,显著提升 VR 应用隐私性。
2025-08-17 cs.CR cs.SE