• Proj CMI Paper Reading: Predicting Patch Correctness Based on the Similarity of Failing Test Cases


    Abstract

    背景:
    我们如何知道⽣成的补丁是正确的?这一问题对自动程序修复重要
    前提:

    1. 我们可以通过检查每个⽣成的补丁(这句话表达很有问题)是否实现与它所解决的错误相关的代码更改(即行为)来对正确的补
      丁进行分类。这样的错误通常由失败的测试⽤例显示。we can triage correct patches by checking whether each generated patch implements code changes (i.e., behaviour) that are relevant to the bug it addresses. “当不同的程序未能通过类似的测试⽤例时,这些程序很可能需要进行类似的代
    2. similar failing test cases should require similar patches.

    本文:
    工具:BATS
    任务:基于⽆监督学习,通过检查面对失败的测试规范表现出的补丁行为来预测补丁的正确性。 unsupervised learning-based approach to predict patch correctness by checking patch Behaviour Against failing Test Specification
    方法:

    1. 利⽤代码和补丁的深度表⽰学习模型
    2. 对于给定的失败测试⽤例,⽣成的编码⽤于计算相似性指标
    3. 搜索历史相似的测试⽤例,识别相关的应⽤补丁
    4. 评估 APR ⽣成的补丁的正确性
      特点:⽆需⼤型标记补丁数据集,受到类似测试⽤例可⽤性的限制,但我们表明它仍然可以补充现有⽅法
      训练数据集:收集了包含1,278 个可能的补丁(由开发⼈员编写或由 32 个 APR ⼯具⽣成)
      实验:
      (测试数据集?)
      效果:
    5. BATS 在识别正确补丁时实现了 0.557 到 0.718 之间的 AUC 和 0.562 到 0.854 之间的召回
      率,优于最先进的识别正确补丁的技术
    6. ⽆需⼤型标记补丁数据集
    7. 当与最近依赖于监督学习的⽅法相结合时,BATS 提⾼了检测正确补丁的整体召回率。
  • 相关阅读:
    树状数组 浅显学习
    主席树 浅显学习
    B
    python测试开发面试之深浅拷贝
    2020年全网最全的自动化测试面试题及答案--吊打面试官就靠它了!
    软件测试员这个工作怎么样?做软件测试员这个职业有什么好处吗?
    软件测试能干到多少岁?写给像我相同迷茫的人
    python+requests实现接口自动化
    Python+selenium自动化测试之浏览器基础操作
    如何用 Python 做自动化测试【进阶必看】
  • 原文地址:https://www.cnblogs.com/xuesu/p/16339787.html
Copyright © 2020-2023  润新知