Page 112 - 《软件学报》2025年第4期
P. 112
1518 软件学报 2025 年第 36 卷第 4 期
代码的结构和约束, 因此可以高效地自动生成符合深度学习库输入约束的测试代码片段, 并且大模型输出结果的
随机性使其成为自然的模糊测试工具. 目前的自动测试框架仅通过简单改变提供给模型的提示词 (prompt) 就可以
达到对测试种子变异的目的. 其背后的精妙思想是将大模型作为一个天然的模糊测试器和约束求解器, 完成对深
度学习库的测试. 然而, 世上并无万丈高楼平地起, 大模型目前学习的深度学习库代码绝大多数基于 PyTorch 和
TensorFlow 这两个最主流的深度学习库框架, 对于未有如此多训练语料的深度学习库框架 (例如, Caffe [190] , MXNet [191] ),
其测试能力如何仍值得探究. 此外, 如 Deng 等人 [21] 在文章中所提到的, 大模型的训练语料大多都是被广泛使用的
深度学习库代码片段, 而这些代码被开发人员大量使用并验证, 存在严重缺陷的概率较低. 因而可能导致基于大模
型的深度学习库测试效果快速收敛. 那么我们可以认为: 大模型在被广泛使用的深度学习库代码上进行大量训练
并学习到了其输入输出关系和约束, 然而这些代码恰恰是深度学习库系统中得到最多人工测试和验证的部分. 而
对于那些未被广泛使用的, 可能存在严重缺陷的深度学习库代码和 API, 大模型反而并没有学习到其调用逻辑和
约束, 可能无法有效地进行测试. 因此, 我们认为, 将大模型对深度学习库代码的知识从“已知”引申到“未知”, 是未
来基于大模型的缺陷挖掘亟待探索的方向. 而大模型展现出的智能和现在模型能力的快速发展, 也为该探索方向
提供了一定的信心和保障.
精细微调, 使模型更好地理解测试任务并与应用程序
6.2 GUI 自动化测试
尽管 GUI 自动化测试能够节省人工测试所带来的巨大人力成本开销, 但其在测试覆盖率上尚存在限制, 特别
是在面对复杂的大型应用程序时, 传统 GUI 自动测试技术难以实现较为全面的探索和测试 [103,192] . 与 GUI 自动化
测试相比, 手动测试能够发现更多样化和复杂的错误. 因此许多研究表明, 软件开发人员仍更倾向于手动测试应用
程序 GUI 页面 [106,193,194] . 而大模型强大的能力有望改变过去 GUI 自动化测试落地应用的情况. 具体而言, 目前基于
大模型的 GUI 自动化测试技术展现出强大的能力, 在代码覆盖率, 测试效率等各方面较过去技术均有显著提高 [100] ,
并在 GUI 漏洞报告的可信程度以及自动化测试的维护成本上展现出显著的优势. 在过去测试人员需要编写大量的
测试脚本将 GUI 自动化测试工具与复杂的应用程序进行对接. 然而现实中移动应用程序往往随着业务需求变更快
速迭代更新. 并且, 在应用程序版本的迭代过程中, 应用程序相关功能的 GUI 页面也往往会有显著的变动. 因此对
于使用传统技术的 GUI 相关测试人员而言, 在 GUI 页面快速变更的情况下, 持续维护 GUI 自动化测试体系的成本
和难度可能超过了手动测试. 因而测试人员往往不愿意使用自动化的 GUI 测试工具和框架. 而基于大模型的 GUI
自动测试技术可以直接使用 GUI 页面的图片作为 GUI 状态信息输入, 无需更改和调试相关接口, 极大缓解了快速
版本迭代过程中测试人员的压力. 此外, 虽然传统和基于学习的 GUI 自动测试技术达到了一定的覆盖率并可以挖
掘一些 GUI 漏洞, 但是在实际中, 测试人员往往苦恼于 GUI 自动工具的误报和漏报现象. 具体而言, GUI 自动测试
工具给出的漏洞缺陷报告在相同测试执行环境下结果不同, 严重降低了 GUI 自动测试的可信度. 而基于大模型的
技术可以利用模型的智能自动地对 GUI 页面的状态进行分析, 给出合理的建议, 从而可以很大程度上降低测试人
员对 GUI 漏洞验证的人工成本. 综上, 大模型为过去 GUI 自动化测试落地的诸多难题提供了自然的解决方案.
然而, 现有的基于大模型 GUI 自动化测试技术以及相关研究仍然相对较少, 关于如何更好地利用大模型, 使
其在 GUI 自动化测试任务上表现出更优秀的性能, 依然存在很大的研究空间. 对于大模型在下游任务的应用, 本
文通过横向对比大模型在深度学习库缺陷检测、缺陷自动修复和测试用例自动生成 3 个领域的技术, 进而发现大
模型的性能在很大程度上受到模型微调 [13,41] 以及输入给大模型的提示词质量的影响 [104,195] . 因此基于大模型的
GUI 自动化测试技术未来的研究可以在这两个方面进一步深入探索. 首先, 对大模型在 GUI 自动测试任务上进行
GUI 进行交互, 可以进一步提升此类技术的性能表现. 其次,
提示词的构建方式也值得进一步研究. 例如, 研究者可以进一步探索如何根据 GUI 元素的上下文信息以及用户交
互方式来设计更精准、具有指导意义的提示词, 并且可以尝试使用应用程序的开发文档或者用户手册进一步提高
大模型测试的准确性和实用性. 该方向的探究可能涉及对程序 GUI 设计、用户交互模式以及应用程序的功能目
的等方面的深入分析.
值得一提的是, 2023 年 9 月, OpenAI 团队推出了能以视觉图像作为输入的大语言模型 GPT-4V (ision) [196] .