← 研踪 PaperTrail软件学报:jos:7575 · 记录 #1
覆盖率引导的Python JIT编译器缺陷检测
来源日期 2026-02-04
来源记录日期 2026-02-04
雷达观测 2026-11-05 00:22
摘要
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个已得到开发人员的确认.
论文发现出处
这些页面提供论文线索,不代表同行评审或质量认证。
发表信息与关联版本
软件学报 ↗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个已得到开发人员的确认.
查看此版本解读 →查看此版本原文 ↗