首页
/ ASTOR: Java自动程序修复库使用教程

ASTOR: Java自动程序修复库使用教程

2024-09-24 02:53:22作者:房伟宁

1. 项目介绍

ASTOR(Automatic Software Transformations fOr program Repair)是一个用于Java的自动程序修复框架。该项目由Inria、里尔大学、上法兰西理工大学和瑞典皇家理工学院共同开发。ASTOR采用生成-验证技术,支持多种修复方法,包括jGenProg、jMutRepair、jKali、DeepRepair、Cardumen和3sfix。

主要特点

  • 多修复方法支持:支持多种自动修复技术,如jGenProg、jMutRepair等。
  • 开源社区支持:欢迎社区贡献,支持Bug修复、新功能和新的修复方法。
  • 学术研究支持:适用于学术研究,提供了丰富的实验数据和论文参考。

2. 项目快速启动

环境准备

  • Java 8 或更高版本
  • Maven 3.x

克隆项目

git clone https://github.com/SpoonLabs/astor.git
cd astor

构建项目

mvn clean install

运行示例

mvn exec:java -Dexec.mainClass="fr.inria.main.evolution.AstorMain" -Dexec.args="-mode jgenprog -location <path_to_your_project> -package <your_package>"

3. 应用案例和最佳实践

案例1:使用jGenProg修复Java项目

假设你有一个Java项目,其中包含一些已知的Bug。你可以使用ASTOR的jGenProg模式来尝试自动修复这些Bug。

mvn exec:java -Dexec.mainClass="fr.inria.main.evolution.AstorMain" -Dexec.args="-mode jgenprog -location /path/to/your/project -package your.package.name"

案例2:使用DeepRepair进行深度学习修复

DeepRepair是ASTOR的一个扩展,利用代码相似性进行修复。你可以通过以下命令使用DeepRepair模式:

mvn exec:java -Dexec.mainClass="fr.inria.main.evolution.AstorMain" -Dexec.args="-mode deeprepair -location /path/to/your/project -package your.package.name"

4. 典型生态项目

Spoon

Spoon是一个用于Java程序分析和转换的库,ASTOR依赖于Spoon进行代码分析和修改。

Defects4J

Defects4J是一个用于软件测试和修复研究的Bug基准数据集,ASTOR在Defects4J上进行了大量的实验和验证。

Repairnator

Repairnator是一个自动修复工具,用于在持续集成环境中自动检测和修复Bug,ASTOR的部分修复方法被集成到Repairnator中。

通过以上步骤,你可以快速上手并使用ASTOR进行Java项目的自动修复。希望这篇教程对你有所帮助!

登录后查看全文
热门项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.48 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
515
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
783
1.57 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
800
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
970
2.28 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
480
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.01 K
766
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
808
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
647
284