I am a Ph.D. candidate in Informatics at Università della Svizzera italiana
(Lugano, Switzerland) under the supervision of prof. Mauro Pezzè
My projects focus on the automatic generation of test oracles, and in my research I derive them from software-related artifacts expressed in natural language.
Before joining the PhD programme in 2018, I was a research intern at the IMDEA Software Institute
(Madrid, Spain) working with Alessandra Gorla
-- now my PhD co-advisor. During that period I obtained my M.Sc. from the University of Milano-Bicocca (Milan, Italy).
I have interned at Facebook (London, UK) for Summer 2021 to work with the Sapienz team, and I plan to join them full time in 2022
Workshops, Seminars, Talks
Jdoctor (originally known as Toradocu) is a tool that takes in input the Java source code of a class, extracts the Javadoc semi-structured comments at the method level, and translates @param, @return and @exception tags into executable specifications. Such specifications can act as test oracles and can be integrated with an automatic test case generator: Jdoctor is currently integrated
. Up to now, Jdoctor's precision and recall computed over 800 translations are respectively above 90% and 80%.
RepliComment is a prototype born in 2018 that takes in input the Java source code of a whole project and searches for comment clones at the method and field level. RepliComment relies on some heuristics to understand whether a comment clone could be legitimate (e.g. overriding) or if there is an issue such as an unintentional mistake of copy-and-paste. RepliComment was extended in 2020: Now it automatically assesses the severity of the clones and provides fix suggestions for the copy-and-paste mistakes.
MeMo is a tool that takes in input the Java source code of a class and extracts method summaries (i.e., unstructured comments) to look for metamorphic relations. If found, a MR is translated into an executable assertion that can be automatically integrated into existing test suites. MeMo so far discovered over 250 MRs across different Java projects, which it can translate with good precision and recall. The translations, when used as assertions, prove to help both regression and developers-written assertions in bug detection.
International Workshop on Natural Language-based Software Engineering (NLBSE 2022)
IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft 2022)
NIER track committee member
ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021)
Artifact Evaluation committee member
- International Workshop on Test Oracles (TORACLE 2021)
Journal of Software Testing, Verification and Reliability (STVR)
ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2020)
Teaching Assistance at USI
- Programming Fundamentals 1 (Fall 20/21, Fall 21/22)
- Bachelor Project (Spring 20/21, Fall 21/22)
- Programmazione 1 (Fall 20/21)
- Software Engineering (Fall 18/19, Fall 19/20)
- Software Quality & Testing (Spring 18/19, Spring 19/20)