Validation of Famix Model Importers with Model Shuffling and Input Reduction
Abstract
Model-Driven Engineering is an important research field for the engineering of complex systems. Complex systems are typically represented by large models or even a composition of large models. Large models contain millions of entities and modeling tools evolve constantly to support new features, revealing bugs or inconsistencies in the modeling, which in turn affect the precision of analyses. Detecting, finding, and repairing such defects is a major model driven engineering challenge. We propose an automatic model validation toolkit based on automatic random testing. Our proposal is based on three core principles: invariant verification, model diffing and model reduction. Testing the invariants allows us to find bugs, facilitated by an oracle that computes a structural diff between models. After detecting a bug, a reduction algorithm reduces the offending model to the smallest model that reproduces the same issue using a user-defined assertion. Using our approach we found and fixed 4 bugs in VerveineJ, our Java model generator, demonstrating the feasibility of our approach.