快速检索
    过刊检索
    全选反选导出
    显示模式:
    2025,36(6):2404-2431, DOI: 10.13328/j.cnki.jos.007323, CSTR: 32375.14.jos.007323
    [摘要] (1604) [HTML] (81) [PDF 6.76 K] (856)
    摘要:
    模糊测试是一种自动化的软件测试方法, 通过向目标软件系统输入大量自动生成的测试数据, 以发现系统潜在的安全漏洞、软件缺陷或异常行为. 然而, 传统模糊测试技术受限于自动化程度低、测试效率低、代码覆盖率低等因素, 无法应对现代的大型软件系统. 近年来, 大语言模型的迅猛发展不仅为自然语言处理领域带来重大突破, 也为模糊测试领域带来了新的自动化方案. 因此, 为了更好地提升模糊测试技术的效果, 现有的工作提出了多种结合大语言模型的模糊测试方法, 涵盖了测试输入生成、缺陷检测、后模糊处理等模块. 但是现有工作缺乏对基于大语言模型的模糊测试技术的系统性调研和梳理讨论, 为了填补上述综述方面的空白, 对现有的基于大语言模型的模糊测试技术的研究发展现状进行全面的分析和总结. 主要内容包括: (1)概述模糊测试的整体流程和模糊测试研究中常用的大语言模型相关技术; (2)讨论大模型时代之前的基于深度学习的模糊测试方法的局限性; (3)分析大语言模型在模糊测试方法中不同环节的应用方式; (4)探讨大语言模型技术在模糊测试中的主要挑战和今后可能的发展方向.
    2025,36(6):2432-2452, DOI: 10.13328/j.cnki.jos.007327, CSTR: 32375.14.jos.007327
    [摘要] (313) [HTML] (72) [PDF 6.74 K] (426)
    摘要:
    资源泄露是由于有限的系统资源未能及时正确关闭所导致的缺陷, 广泛存在于各种语言程序中, 且具有一定的隐蔽性. 传统的缺陷检测方法通常基于规则和启发式搜索预测软件中的资源泄露. 近年来, 基于深度学习的缺陷检测方法通过不同的代码表征形式并使用循环神经网络、图神经网络等技术捕获代码中的语义信息. 最近的研究显示, 语言模型在代码理解和生成等任务中表现出色. 然而语言模型针对资源泄露检测这一特定任务上的优势和局限性尚未得到充分评估. 研究基于传统模型、小模型和大模型的检测方法在资源泄露检测任务中的有效性, 并探究小样本学习、微调以及静态分析与大模型结合的多种改进方式. 具体而言, 以JLeaks和DroidLeaks数据集为实验对象, 从资源泄露根本原因、资源种类、代码复杂度等多个维度分析不同模型的表现. 实验结果表明, 微调技术能够显著提升大模型在资源泄露检测领域的检测效果. 然而, 大部分模型在识别第三方库引发的资源泄露上仍需改进. 此外, 代码复杂度对基于传统模型的检测方法的影响更大.
    2025,36(6):2453-2476, DOI: 10.13328/j.cnki.jos.007328, CSTR: 32375.14.jos.007328
    [摘要] (781) [HTML] (42) [PDF 6.71 K] (375)
    摘要:
    在当今智能化的时代背景下, 芯片作为智能电子设备的核心组件, 在人工智能、物联网、5G通信等诸多领域发挥着关键作用, 保障芯片的正确性、安全性和可靠性至关重要. 在芯片的开发流程中, 开发人员首先需要利用硬件描述语言, 将芯片设计实现成软件形式(即芯片设计程序), 然后再进行物理设计并最终流片(即生产制造). 作为芯片设计制造的基础, 芯片设计程序的质量直接影响了芯片的质量. 因此, 针对芯片设计程序的测试具有重要研究意义. 早期的芯片设计程序测试方法主要依赖开发人员人工设计测试用例来测试芯片设计程序, 往往需要大量的人工成本和时间代价. 随着芯片设计程序复杂度的日益增长, 诸多基于仿真的自动化芯片设计程序测试方法被提出, 提升了芯片设计程序测试效率及有效性. 近年来, 越来越多的研究者致力于将机器学习、深度学习和大语言模型(LLM)等智能化方法应用于芯片设计程序测试领域. 调研88篇智能化芯片设计程序测试相关的学术论文, 从测试输入生成、测试预言构造及测试执行优化这3个角度对智能化芯片设计程序测试已有成果进行整理归纳, 重点梳理芯片设计程序测试方法从机器学习阶段、深度学习阶段到大语言模型阶段的演化, 探讨不同阶段方法在提高测试效率和覆盖率、降低测试成本等方面的潜力. 同时, 介绍芯片设计程序测试领域的研究数据集和工具, 并展望未来的发展方向和挑战.
    2025,36(6):2477-2500, DOI: 10.13328/j.cnki.jos.007325, CSTR: 32375.14.jos.007325
    [摘要] (1216) [HTML] (47) [PDF 6.75 K] (637)
    摘要:
    代码优化任务作为自动化代码审查的关键环节, 有助于提高开发效率和代码质量. 随着大语言模型在软件工程领域中展现出远胜于传统小规模预训练模型的性能, 旨在探讨两类模型在自动代码优化任务的表现, 以评估大语言模型的综合优势. 通过使用传统代码质量评估指标(例如, BLEU, CodeBLEU, edit progress)对4种主流大语言模型和4种代表性小规模预训练模型在代码优化任务的表现进行评估, 发现大语言模型在审查前代码优化子任务的优化质量劣于小规模预训练模型. 由于现有代码质量评估指标难以解释上述现象, 提出基于Unidiff的代码优化评估指标, 量化优化过程中的变更操作, 以解释劣势原因并揭示模型执行变更操作的倾向性: (1)审查前代码优化任务难度较大, 模型执行正确变更操作的准确度极低, 且大语言模型比小规模预训练模型表现更为“激进”, 即倾向于执行更多的代码变更操作, 导致其表现不佳; (2)相比小规模预训练模型, 大语言模型在代码优化任务倾向于执行更多插入(ADD)和修改(MODIFY)变更操作且ADD变更操作平均插入的代码行数较多, 进一步证明其“激进”性. 为缓解大语言模型在审查前优化任务中的劣势, 基于大语言模型和集成学习提出LLM-Voter方法, 包含Inference-based (基于模型推理)和Confidence-based (基于置信度选择)两种子方案, 旨在集成不同基模型的优势以提升代码优化质量. 在此基础上, 进一步引入优化判定机制, 以增强模型的决策稳定性与可靠性. 实验证明: 基于置信度选择的LLM-Voter方法能够在大幅提高EM (exact match)值的同时获得优于所有基模型的优化质量, 从而有效缓解大语言模型的劣势.
    2025,36(6):2501-2514, DOI: 10.13328/j.cnki.jos.007329, CSTR: 32375.14.jos.007329
    [摘要] (678) [HTML] (39) [PDF 6.75 K] (459)
    摘要:
    长方法及其他类型的代码坏味阻碍了软件应用程序达到最佳的可读性、可重用性和可维护性. 因此, 人们对长方法的自动检测和分解进行了广泛的研究. 虽然这些方法极大地促进了分解, 但其解决方案往往与最优方案存在很大差异. 为此, 调研公开真实长方法数据集中的可自动化部分, 探讨了长方法的分解情况, 并基于调研结果, 提出了一种基于大语言模型的新方法(称为 Lsplitter), 用于自动分解长方法. 对于给定的长方法, Lsplitter会根据启发式规则和大语言模型将该方法分解为一系列短方法. 然而, 大语言模型经常会拆分出相似的方法, 针对大语言模型的分解结果, Lsplitter利用基于位置的算法, 将物理上连续且高度相似的方法合并成一个较长的方法. 最后对这些候选结果进行排序. 对真实Java项目中的2849个长方法进行了实验, 结果表明, 相较传统结合模块化矩阵的方法, Lsplitter的命中率提升了142%, 相较纯基于大语言模型的方法, 命中率提升了7.6%.
    2025,36(6):2515-2534, DOI: 10.13328/j.cnki.jos.007330, CSTR: 32375.14.jos.007330
    [摘要] (645) [HTML] (74) [PDF 6.75 K] (453)
    摘要:
    Datalog是一种声明式逻辑编程语言, 在不同领域得到了广泛应用. 近年来, 学术界和工业界对Datalog的兴趣高涨, 设计并开发了多种Datalog引擎和相应方言. 然而, 多方言带来的一个问题是以一种Datalog方言实现的代码, 一般而言不能在另一种方言的引擎上执行. 因此, 当采用新Datalog引擎时, 需要将现有Datalog代码翻译到新方言上. 目前的Datalog代码翻译技术可分为人工重写代码和人工设计翻译规则两类, 存在耗时长、大量重复劳动、缺乏灵活性和可拓展性等问题. 提出了一种大语言模型(LLM)赋能的Datalog代码翻译技术, 利用LLM强大的代码理解和生成能力, 通过分治翻译策略、基于少样本提示和思维链提示的提示工程、基于检查-反馈-修复的迭代纠错机制, 可以在不同Datalog方言之间实现高精度代码翻译, 减轻开发人员重复开发翻译规则的工作量. 基于此代码翻译技术, 设计并实现了一种通用的基于Datalog的声明式增量程序分析框架. 在不同Datalog方言对上评估了所提出的LLM赋能的Datalog代码翻译技术的性能, 评估结果验证了所提代码翻译技术的有效性. 对通用声明式增量程序分析框架进行了实验评估, 验证了基于所提代码翻译技术的增量程序分析的加速效果.
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号