Fixing Multiple Type Errors in Model Transformations with Alternative Oracles to Test Cases
Zahra VaraminyBahnemiry, Jessie Galasso, Houari Sahraoui

TL;DR
This paper presents an approach to automatically fix multiple type errors in model transformations by exploring patch spaces guided by objectives to reduce errors and preserve behavior, using evolutionary algorithms.
Contribution
It introduces a novel method combining basic edit operations and heuristics to correct type errors without predefined patches or behavior guards.
Findings
Automatically corrected over 82% of type errors in two case studies.
Corrected over 56% of errors in the third case study.
Effective use of NSGA-II for guiding patch search in model transformations.
Abstract
This paper addresses the issue of correcting type errors in model transformations in realistic scenarios where neither predefined patches nor behavior-safe guards such as test suites are available. Instead of using predefined patches targeting isolated errors of specific categories, we propose to explore the space of possible patches by combining basic edit operations for model transformation programs. To guide the search, we define two families of objectives: one to limit the number of type errors and the other to preserve the transformation behavior. To approximate the latter, we study two objectives: minimizing the number of changes and keeping the changes local. Additionally, we define four heuristics to refine candidate patches to increase the likelihood of correcting type errors while preserving the transformation behavior. We implemented our approach for the ATL language using…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Model-Driven Software Engineering Techniques · Software System Performance and Reliability
