https://github.com/crhf/cerberus

Program repair platform that provides interface to multiple state-of-the-art program repair tools

https://github.com/crhf/cerberus

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Program repair platform that provides interface to multiple state-of-the-art program repair tools

Basic Info
  • Host: GitHub
  • Owner: crhf
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 2.98 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of nus-apr/cerberus
Created over 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.md

Cerberus Framework

Main View

Cerberus is a program repair framework that provides the interface to multiple state-of-the art program analysis tools such as Infer and Pulse, as well as program repair tools such as Prophet, Darjeeling, Angelix, F1X etc. Encapsulating the difficulties to setup the infrastructure for program analysis/repair technology, this platform provides the necessary framework to configure a program for analysis/repair. We have integrated multiple defects benchmarks including but not limited to ManyBugs, VulnLoc and Defects4J. This platform also provides the necessary means for researchers to run experiments more efficiently and effectively, with more user-friendly features such as push notifications, and summary extraction.

Features

  • Execution of analysis/repair tools on benchmarks of bugs
  • Configuration of the environment to execute analysis/repair tools properly on the bugs
  • Concurrent execution of multiple analysis/repair tools
  • Artifacts are extracted and stored for each experiment
  • Push notification once experiments are completed

Installation Procedure

When cloning the repository ensure that the submodules containing the benchmarks are initialized. There are two ways to do this: * git clone --recurse-submodules https://github.com/nus-apr/cerberus to init when cloning the project * or running git submodule init && git submodule update to initialize them post cloning (update can take in a specific path if one wants to initialize only one benchmark)

To ensure that Cerberus has all dependencies one has to run pip install -r requirements.txt before trying to use Cerberus.

Using Cerberus

Following is a simple snippet for the command to run an experiment from a selected benchmark.

bash source activate cerberus -task [analyze/repair] --bug-index=ID --benchmark=[manybugs/vulnloc] --tool=[cpr/angelix/prophet/f1x]

Supported Tools and Benchmark

Full list of supported tools and benchmarks

Bugs

Cerberus should be considered alpha-quality software. Bugs can be reported here:

https://github.com/nus-apr/cerberus/issues

Documentation

Citation

If you use Cerberus in your research work, we would highly appreciate it if you cited the following paper:

@inproceedings{cerberus, author = {Shariffdeen, Ridwan and Mirchev, Martin and Noller, Yannic and Roychoudhury, Abhik}, title = {Cerberus: A Program Repair Framework}, year = {2023}, booktitle = {Proceedings of the ACM/IEEE 45th International Conference on Software Engineering: Companion Proceedings}, location = {Melbourne, Australia}, series = {ICSE '23}, pages={73-77}, doi={10.1109/ICSE-Companion58688.2023.00028} }

Owner

  • Name: Haifeng Ruan
  • Login: crhf
  • Kind: user
  • Company: @nus-se

GitHub Events

Total
Last Year