Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ICSE-Companion.2019.00049acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

ARepair: a repair framework for alloy

Published: 25 May 2019 Publication History

Abstract

Researchers have proposed many automated program repair techniques for imperative languages, e.g. Java. However, little work has been done to repair programs written in declarative languages, e.g. Alloy. We proposed ARepair, the first automated program repair technique for faulty Alloy models. ARepair takes as input a faulty Alloy model and a set of tests that capture the desired model properties, and produces a fixed model that passes all tests. ARepair uses tests written for the recently introduced AUnit framework, which provides a notion of unit testing for Alloy models. In this paper, we describes our Java implementation of ARepair, which is a command-line tool, released as an open-source project on GitHub. Our experimental results show that ARepair is able to fix 28 out of 38 real-world faulty models we collected. The demo video for ARepair can be found at https://youtu.be/436drvWvbEU.

References

[1]
R. Abreu, P. Zoeteweij, R. Golsteijn, and A. J. C. van Gemund, "A practical evaluation of spectrum-based fault localization," JSS, 2009.
[2]
Fan Long and M. Rinard, "Automatic patch generation by learning correct code," in POPL, 2016.
[3]
J. Hua, M. Zhang, K. Wang, and S. Khurshid, "Sketchfix: A tool for automated program repair approach using lazy candidate generation," in FSE, 2018.
[4]
J. Hua, M. Zhang, K. Wang, and S. Khurshid, "Towards practical program repair with on-demand candidate generation," in ICSE, 2018.
[5]
T. Nelson, C. Barratt, D. J. Dougherty, K. Fisler, and S. Krishnamurthi, "The margrave tool for firewall analysis," in LISA, 2010.
[6]
N. Ruchansky and D. Proserpio, "A (not) nice way to verify the openflow switch specification: Formal modelling of the openflow switch using alloy," SIGCOMM, 2013.
[7]
R. K. Saha, Y. Lyu, H. Yoshida, and M. R. Prasad, "Elixir: effective object oriented program repair," in ASE, 2017.
[8]
A. Sullivan, K. Wang, and S. Khurshid, "AUnit: A Test Automation Tool for Alloy," in ICST, 2018.
[9]
A. Sullivan, K. Wang, R. N. Zaeem, and S. Khurshid, "Automated test generation and mutation testing for Alloy," in ICST, 2017.
[10]
E. Torlak and D. Jackson, "Kodkod: A relational model finder," in TACAS, 2007.
[11]
K. Wang, A. Sullivan, and S. Khurshid, "Automated model repair for alloy," in ASE, 2018.
[12]
K. Wang, A. Sullivan, and S. Khurshid, "MuAlloy: A Mutation Testing Framework for Alloy," in ICSE, 2018.
[13]
K. Wang, A. Sullivan, M. Koukoutos, D. Marinov, and S. Khurshid, "Systematic generation of non-equivalent expressions for relational algebra," in ABZ, 2018.
[14]
K. Wang, A. Sullivan, D. Marinov, and S. Khurshid, "Asketch: A sketching framework for alloy," in FSE, 2018.
[15]
K. Wang, A. Sullivan, D. Marinov, and S. Khurshid, "Fault localization for declarative models in Alloy," in eprint arXiv:1807.08707, 2018.
[16]
K. Wang, A. Sullivan, D. Marinov, and S. Khurshid, "Solver-based sketching Alloy models using test valuations," in ABZ, 2018.
[17]
W. Wang, K. Wang, M. Gligoric, and S. Khurshid, "Incremental analysis of evolving alloy models," in TACAS, 2019.
[18]
W. Wang, K. Wang, M. Zhang, and S. Khurshid, "Learning to optimize the alloy analyzer," in ICST, 2019.
[19]
W. Weimer, T. Nguyen, C. Le Goues, and S. Forrest, "Automatically finding patches using genetic programming," in ICSE, 2009.
[20]
P. Zave, "Using lightweight modeling to understand chord," SIGCOMM Comput. Commun. Rev., pp. 49--57, 2012.

Cited By

View all
  • (2022)ICEBAR: Feedback-Driven Iterative Repair of Alloy SpecificationsProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556944(1-13)Online publication date: 10-Oct-2022
  • (2022)ATR: template-based repair for Alloy specificationsProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3534369(666-677)Online publication date: 18-Jul-2022
  • (2021)Bounded Exhaustive Search of Alloy Specification RepairsProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00105(1135-1147)Online publication date: 22-May-2021

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '19: Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings
May 2019
369 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 25 May 2019

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)ICEBAR: Feedback-Driven Iterative Repair of Alloy SpecificationsProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556944(1-13)Online publication date: 10-Oct-2022
  • (2022)ATR: template-based repair for Alloy specificationsProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3534369(666-677)Online publication date: 18-Jul-2022
  • (2021)Bounded Exhaustive Search of Alloy Specification RepairsProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00105(1135-1147)Online publication date: 22-May-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media