Page 153 - 《软件学报》2026年第6期
P. 153
2472 软件学报 2026 年第 37 卷第 6 期
5 讨 论
5.1 局限性
除了实验结果中讨论的两个限制外, CReDroid 在有效复现所有崩溃报告时还面临以下 3 项技术局限, 这进一
步揭示了基于标题和堆栈跟踪进行崩溃复现所需要解决的技术挑战.
首先, CReDroid 难以复现依赖复杂用户操作的崩溃. 一方面, 某些崩溃需要特定的多步操作和动态数据状态,
这显著增加了测试复现的难度. 例如, 在卡片浏览器的多选模式下更改卡片类型时触发的崩溃, 由于涉及复杂的
GUI 控件交互且操作顺序稍有偏差便可能无法触发崩溃, 导致复现失败. 另一方面, CReDroid 专注于应用内的
GUI 操作, 对于系统级操作支持不足. 例如, 下拉通知栏并点击系统级控件“删除浏览历史”的场景需要频繁切换应
用上下文 (从前台到后台再回到通知栏), 此类操作流程的复杂性超出了当前 CReDroid 的覆盖范围, 难以实现自动
化测试.
其次, CReDroid 在需要有效输入内容才能触发的崩溃场景中难以完全自动化. 例如, 在登录场景中需要提供
正确的用户名和密码, 而这些输入内容通常涉及用户隐私, 未包含在堆栈跟踪或崩溃报告中, 因而必须依赖人工干
预. 然而, 通过预先请求用户输入相关信息, CReDroid 仍然能够实现对这些场景的自动化复现.
最后, CReDroid 的语义匹配方法在某些语境下的准确性仍有待提高, 这可能成为复现崩溃的障碍. 目前的语
义匹配方法在处理词义扩展和上下文关联时存在不足, 尤其在短文本或词义接近的场景下容易产生匹配偏差. 例如,
在被测应用 Shuttle Player 创建新播放列表时的崩溃复现中, 预训练 BERT 模型未能正确识别“play”和“playlist”之
间的语义关系, 导致关键操作未被正确匹配, 从而复现失败. 为了提高 CReDroid 在复杂语境中的语义匹配能力, 未
来的工作将尝试引入 LLM 以增强其对上下文的理解和处理能力.
5.2 有效性威胁
● 内部有效性威胁. 第 1 个内部有效性威胁来自 CReDroid 方法的实现. 为减少此类威胁, 我们在实现 CReDroid
时, 采用 Python 中现有成熟的第三方库以确保实现的可靠性. 在报告分析阶段, 选择了 ChatGPT 大规模语言模型
从崩溃标题中提取关键操作信息. 由于 ChatGPT 具备强大的语言理解能力, 能够应对复杂的分析任务, 同时通过
构建数据集对其进行微调, 使得其能学习崩溃报告标题的多样化描述方式. 此外, 为确保 CReDroid 能够准确定位
崩溃组件, 本文采用广泛使用的 ICCBot 工具构造被测应用的 CTG, 其正确性已在大量实验中得到验证. 第 2 个内
部有效性威胁涉及基准方法的执行. 我们从方法的作者提供的开源链接获取源代码, 并严格按照其指引步骤在我
们的数据集上进行实验. 对于 CReDroid 在选择 GUI 控件被设计为以一定的随机性选择一个非最优的控件, 我们
通过运行 3 次实验并记录平均值的方式, 减少随机性对结果的影响.
● 外部有效性威胁. 外部有效性威胁主要来源于评估中所选用数据的代表性. 本文严格遵循崩溃复现相关研
究的程序, 选择了广泛使用的 ReCDroid、 AndroR2 和 CrashTranslator 数据集. 这些数据集中的崩溃报告均来自真
实的应用问题跟踪系统, 能够较好地反映实际崩溃场景, 从而减少数据选择带来的偏差. 另一个外部有效性威胁来
自 CReDroid 方法的通用性. 为提高 CReDroid 的通用性, CReDroid 使用 LLM 从崩溃报告中提取关键操作信息,
并通过微调使其能够适应不同描述方式的报告分析, 增强在实际应用中的适用性. 第 3 个威胁涉及参与者的相应
偏差. 根据现有研究方法 [9,14] , 我们假设具有 Android 编程经验的学生能够代替测试人员. 参与者在实验中的成功
率和复现时间被视为具有代表性的结果, 尽可能减少参与者背景对实验结论的影响.
6 相关工作
当前已有广泛的研究聚焦于安卓应用崩溃复现, 旨在提升软件维护的效率. 用户通常通过文本描述、截图、
录制视频等形式的复现步骤、堆栈跟踪等信息来提交崩溃报告, 这些信息对开发者快速、准确地定位问题并加以
解决至关重要. 崩溃报告的质量对崩溃复现具有决定性影响. 由于实际提交的崩溃报告内容往往不完整, 从有限信
息中推断并自动复现崩溃是一个具有挑战性的研究问题.

