跳到正文
研踪PaperTrail
← 研踪 PaperTrail

软件学报:jos:7575 · 记录 #1

覆盖率引导的Python JIT编译器缺陷检测

来源日期 2026-02-04
来源记录日期 2026-02-04
雷达观测 2026-11-05 00:22
软件学报 ↗PDF ↗

摘要

Python作为一种广泛应用的解释型语言, 在执行效率方面存在性能瓶颈. 即时(JIT)编译器被引入Python生态, 它通过将字节码动态编译为机器码, 显著提升了程序的运行速度. 然而, JIT编译器复杂的优化策略可能导致程序缺陷, 影响程序的稳定性和可靠性. 现有的Python解释器模糊测试方法难以有效检测JIT编译器的深层优化缺陷和非崩溃缺陷. 为此, 提出了一种基于覆盖率引导的Python JIT编译器缺陷检测方法PjitFuzz. 首先, 为了能够生成触发Python JIT编译器优化策略的程序变体, PjitFuzz提出了5种基于JIT优化策略的程序变异规则. 其次, 为了聚合不同变异规则的优势并生成多样化的程序变体, PjitFuzz设计了一种基于覆盖率引导的变异规则动态选择方法. 然后, 为了有效记录程序执行过程中变量值的变化情况, 从而检测输出不一致的缺陷, PjitFuzz提出了一种基于计算校验和的代码块插入策略. 最后, 结合不同的JIT编译选项进行差分测试, 从而有效检测Python JIT编译器缺陷. 将PjitFuzz与目前最先进的两种Python解释器模糊测试方法FcFuzzer和IFuzzer进行比较, 实验结果表明, PjitFuzz在缺陷检测能力上, 分别高出150%和66.7%; 在代码覆盖率方面, 分别比现有方法高出28.23%和15.68%; 在生成测试程序有效率方面, 分别高出42.42%和62.74%. 在为期8个月的实验中, PjitFuzz发现并报告了16个缺陷, 其中12个已得到开发人员的确认.

论文发现出处

这些页面提供论文线索,不代表同行评审或质量认证。

AI 论文解读

基于摘要 · 非全文审阅

此版本尚未生成 AI 解读。解读由后台任务生成并按论文版本保存,登录后共享已有结果。

发表信息与关联版本

软件学报 ↗

2026 · 正式发表 · DOI: 10.13328/j.cnki.jos.007575

版本差异

目前只观测到一个版本,无法比较变化。之后收录新版本时,会在这里对照标题、作者、分类和摘要。

观测到的版本

平台记录号代表本站观测到的元数据变化,不是作者修订号。来源日期仅到月份或年份时,按该月或该年首日存档。

记录 #1 · 2026-02-04 · 最新观测版本

覆盖率引导的Python JIT编译器缺陷检测

Python作为一种广泛应用的解释型语言, 在执行效率方面存在性能瓶颈. 即时(JIT)编译器被引入Python生态, 它通过将字节码动态编译为机器码, 显著提升了程序的运行速度. 然而, JIT编译器复杂的优化策略可能导致程序缺陷, 影响程序的稳定性和可靠性. 现有的Python解释器模糊测试方法难以有效检测JIT编译器的深层优化缺陷和非崩溃缺陷. 为此, 提出了一种基于覆盖率引导的Python JIT编译器缺陷检测方法PjitFuzz. 首先, 为了能够生成触发Python JIT编译器优化策略的程序变体, PjitFuzz提出了5种基于JIT优化策略的程序变异规则. 其次, 为了聚合不同变异规则的优势并生成多样化的程序变体, PjitFuzz设计了一种基于覆盖率引导的变异规则动态选择方法. 然后, 为了有效记录程序执行过程中变量值的变化情况, 从而检测输出不一致的缺陷, PjitFuzz提出了一种基于计算校验和的代码块插入策略. 最后, 结合不同的JIT编译选项进行差分测试, 从而有效检测Python JIT编译器缺陷. 将PjitFuzz与目前最先进的两种Python解释器模糊测试方法FcFuzzer和IFuzzer进行比较, 实验结果表明, PjitFuzz在缺陷检测能力上, 分别高出150%和66.7%; 在代码覆盖率方面, 分别比现有方法高出28.23%和15.68%; 在生成测试程序有效率方面, 分别高出42.42%和62.74%. 在为期8个月的实验中, PjitFuzz发现并报告了16个缺陷, 其中12个已得到开发人员的确认.

查看此版本解读 →查看此版本原文 ↗