mCUTE: A ModelLevel Concolic Unit Testing Engine for UML State Machines Model Driven Engineering (MDE) techniques raise the level of abstraction at which developers construct software. However, modern cyberphysical systems are becoming more prevalent and complex and hence software models that represent the structure and behavior of such systems still tend to be large and complex. These models may have numerous if not infinite possible behaviors, with complex communications between their components. Appropriate software testing techniques to generate test cases with high coverage rate to put these systems to test at the modellevel (without the need to understand the underlying code generator or refer to the generated code) are therefore important. Concolic testing, a hybrid testing technique that benefits from both concrete and symbolic execution, gains a high execution coverage and is used extensively in the industry for program testing but not for software models. In this paper, we present a novel technique and its tool mCUTE1, an open source 2 modellevel concolic testing engine. We describe the implementation of our tool in the context of PapyrusRT, an open source Model Driven Engineering (MDE) tool based on UMLRT, and report the results of validating our tool using a set of benchmark models.

CodeFirst ModelDriven Engineering: On the Agile Adoption of MDE Tooling Domain models are the most important asset in widely accepted software development approaches, like DomainDriven Design (DDD), yet those models are still implicitly represented in programs. ModelDriven Engineering (MDE) regards those models as representable entities that are amenable to automated analysis and processing, facilitating quality assurance while increasing productivity in software development processes. Although this connection is not new, very few approaches facilitate adoption of MDE tooling without compromising existing value, their data. Moreover, switching to MDE tooling usually involves reengineering core parts of an application, hindering backward compatibility and, thereby, continuous integration, while requiring an upfront investment in training in specialized modeling frameworks. In those approaches that overcome the previous problem, there is no clear indication  from a quantitative point of view  of the extent to which adopting stateoftheart MDE practices and tooling is feasible or advantageous. In this work, we advocate a codefirst approach to modeling through an approach for applying MDE techniques and tools to existing objectoriented software applications that fully preserves the semantics of the original application, which need not be modified. Our approach consists both of a semiautomated method for specifying explicit view models out of existing objectoriented applications and of a conservative extension mechanism that enables the use of such view models at run time, where view model queries are resolved on demand and view model updates are propagated incrementally to the original application. This mechanism enables an iterative, flexible application of MDE tooling to software applications, where metamodels and models do not exist explicitly. An evaluation of this extension mechanism, implemented for Java applications and for view models atop the Eclipse Modeling Framework (EMF), has been conducted with an industrytargeted benchmark for decision support systems, analyzing performance and scalability of the synchronization mechanism. Backward propagation of large updates over very large views is instant.