SEET: Symbolic Execution of ETL Transformations

Abstract Model transformations are known as the main pillar of model-driven approaches. A model transformation is a program, written in a transformation language, to convert a model into another model or code. Similar to any other program, model transformations need to be verified. The problem is that some transformation errors, e.g., logical errors, can only be detected via execution. Our focus in this research is on the Epsilon Transformation Language (ETL), one of the most extensively used model transformation languages. Lack of approaches to detecting logical errors in ETL transformations is a gap which needs to be addressed. In this paper, we present an approach to symbolic execution of ETL transformations and detecting logical errors. The approach uses a constraint solver to assess the satisfiability of a path condition and generates a symbolic metamodel footprint which can be used to detect errors. The approach is corroborated by a tool that is integrated with Eclipse. To evaluate the approach, the precision and recall are calculated for two well-known case studies. The scalability is evaluated via nine experiments. The usefulness and usability aspects are evaluated in a subjective manner. The results show the improvement in the field of verifying ETL transformations.

[1]  Patrice Godefroid,et al.  SAGE: Whitebox Fuzzing for Security Testing , 2012, ACM Queue.

[2]  Jordi Cabot,et al.  Test Data Generation for Model Transformations Combining Partition and Constraint Analysis , 2014, ICMT.

[3]  Jean Bézivin,et al.  On the Use of Higher-Order Model Transformations , 2009, ECMDA-FA.

[4]  Richard F. Paige,et al.  The Epsilon Transformation Language , 2008, ICMT@TOOLS.

[5]  Antonio Vallecillo,et al.  Static Fault Localization in Model Transformations , 2015, IEEE Transactions on Software Engineering.

[6]  Sergio Segura,et al.  Automated inference of likely metamorphic relations for model transformations , 2018, J. Syst. Softw..

[7]  Horacio Hoyos,et al.  EMG: A Domain-Specific Transformation Language for Synthetic Model Generation , 2016, ICMT.

[8]  Jordi Cabot,et al.  EMFtoCSP: A tool for the lightweight verification of EMF models , 2012, 2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA).

[9]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[10]  Arend Rensink,et al.  A survey and comparison of transformation tools based on the transformation tool contest , 2014, Sci. Comput. Program..

[11]  Esther Guerra,et al.  Specification-driven model transformation testing , 2015, Software & Systems Modeling.

[12]  Jesús Manuel Almendros-Jiménez,et al.  Automatic Generation of Ecore Models for Testing ATL Transformations , 2016, MEDI.

[13]  Richard F. Paige,et al.  EUnit: a unit testing framework for model management tasks , 2011, MODELS'11.

[14]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[15]  Jordi Cabot,et al.  ATLTest: a white-box test generation approach for ATL transformations , 2012, MODELS'12.

[16]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[17]  Muhammad Zohaib Z. Iqbal,et al.  A Search Based Test Data Generation Approach for Model Transformations , 2014, ICMT.

[18]  Jon Whittle,et al.  A survey of approaches for verifying model transformations , 2013, Software & Systems Modeling.

[19]  Richard F. Paige,et al.  The Epsilon Object Language (EOL) , 2006, ECMDA-FA.

[20]  Manuel Wimmer,et al.  Full contract verification for ATL using symbolic execution , 2016, Software & Systems Modeling.

[21]  Martin Gogolla,et al.  Extensive Validation of OCL Models by Integrating SAT Solving into USE , 2011, TOOLS.

[22]  Kevin Lano,et al.  A framework for model transformation verification , 2014, Formal Aspects of Computing.

[23]  Barry W. Boehm,et al.  Verifying and Validating Software Requirements and Design Specifications , 1989, IEEE Software.

[24]  Juan de Lara,et al.  Static Analysis of Model Transformations , 2017, IEEE Transactions on Software Engineering.

[25]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

[26]  Olivier Barais,et al.  Model Driven Language Engineering with Kermeta , 2009, GTTSE.

[27]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[28]  Roberto Baldoni,et al.  A Survey of Symbolic Execution Techniques , 2016, ACM Comput. Surv..

[29]  Jordi Cabot,et al.  Using Models of Partial Knowledge to Test Model Transformations , 2012, ICMT@TOOLS.

[30]  Hinrich Schütze,et al.  Introduction to information retrieval , 2008 .

[31]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.