中文

我们为您覆盖:类型引导的不完整输入生成器修复

编程语言 2025-10-07 v2

摘要

基于属性的测试(PBT)是一种流行的技术,用于自动测试程序的语义属性,这些属性指定为前置条件和后置条件的配对。该方法的有效性取决于能够快速生成满足前置条件的输入,以最大化探测程序行为的范围。对于语义丰富的前置条件,纯随机生成几乎不可能产生大量有效输入;当发生这种情况时,用户被迫手动编写自己的专用输入生成器。手工编写的生成器常见的问题是它们可能不完整,即它们无法生成满足目标前置条件的某些值。本文提出一种新型程序修复技术,用于修补不完整的生成器,以确保其范围包含所有有效输入。我们的方法使用一种新型枚举合成算法,利用最近发展出来的覆盖类型概念来 characterize 缺失测试值的集合以及来自候选修复程序的覆盖。我们实现了一个用于 OCaml 生成器的修复工具,称为Cobb,并用它修复了从PBT文献中抽取的套件基准。

关键词

引用

@article{arxiv.2504.06421,
  title  = {We've Got You Covered: Type-Guided Repair of Incomplete Input Generators},
  author = {Patrick LaFontaine and Zhe Zhou and Ashish Mishra and Suresh Jagannathan and Benjamin Delaware},
  journal= {arXiv preprint arXiv:2504.06421},
  year   = {2025}
}

备注

Extended version of OOPSLA 2025 paper