Recent Publications

Combinatorial Interaction Testing (CIT) is an effective technique that, however, requires a good tool support in order to be successfully applied. There are several tools and applications for CIT, and most of them are distributed as desktop applications or as special plugins of existing programs and require some installation procedures to be used. Software as a Service (SaaS) paradigm can be applied to CIT modeling and test generation, proving several advantages to the tester. There are already some attempts in this direction, but with some shortcomings (little editing support, for example). In this paper, we present CTWedge (Combinatorial Testing Web EDiting and GEneration), which defines a language for CIT models in the presence of constraints by using Xtext. It introduces a web service for editing CIT specifications and it interfaces, through a server, with other tools for test generation. CTWedge can improve the user experience by providing a complete environment for CIT modeling and generation on the web without sacrificing usability.
IWCT 2018, 2018

Feature models are a widely used modeling notation for variability and commonality management in software product line (SPL) engineering. In order to keep an SPL and its feature model aligned, feature models must be changed by including/excluding new features and products, either because faults in the model are found or to reflect the normal evolution of the SPL. The modification of the feature model able to satisfy these change requirements can be complex and error-prone. In this paper, we present a method that is able to automatically update a feature model in order to satisfy a given update request. Our method is based on an evolutionary algorithm and it iteratively applies structure-preserving mutations to the original model, until the model is completely updated. We evaluate the process on real-world feature models. Although our approach does not guarantee to completely update all possible feature models, empirical analysis shows that, on average, more than 80% of requested changes are applied.
VaMoS 2018, 2018

Highly-configurable software systems can be easily adapted to address user’s needs. Modelling parameter configurations and their relationships can facilitate software reuse. Combinatorial Interaction Testing (CIT) methods are already often used to drive systematic testing of software system configurations. However, a model of the system’s configurations not conforming with respect to its software implementation, must be repaired in order to restore conformance. In this paper we extend CIT by devising a new search-based technique able to repair a model composed of a set of constraints among the various software system’s parameters. Our technique can be used to detect and fix faults both in the model and in the real software system. Experiments for five real-world systems show that our approach can repair on average 37% of conformance faults. Moreover, we also show it can infer parameter constraints in a large real-world software system, hence it can be used for automated creation of CIT models.
IWCT 2017, 2017

The appeal of highly-configurable software systems lies in their adaptability to users’ needs. Search-based Combinatorial Interaction Testing (CIT) techniques have been specifically developed to drive the systematic testing of such highly-configurable systems. In order to apply these, it is paramount to devise a model of parameter configurations which conforms to the software implementation. This is a non-trivial task. Therefore, we extend traditional search-based CIT by devising 4 new testing policies able to check if the model correctly identifies constraints among the various software parameters. Our experiments show that one of our new policies is able to detect faults both in the model and the software implementation that are missed by the standard approaches.
SSBSE 2016, 2016


I have served as a teaching assistant for the following courses at University of Bergamo:

  • 38012: Informatica III (Software Design and Algorithms) (Fall 2015,16,17)
  • 21013: Informatica II (Object Oriented Programming) (Spring 2016,17,18)

I have also been a teacher of a course on OOP with Java at Jobs Academy (Winter 2017,18)