I am a Ph.D. graduate in Informatics at Università della Svizzera italiana
(Lugano, Switzerland) under the supervision of prof. Mauro Pezzè
My projects focused on the automatic generation of test oracles, derived 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
-- later my PhD co-advisor. During that period I obtained my M.Sc. from the University of Milano-Bicocca (Milan, Italy).
I defended my PhD thesis in April 2022 and joined Meta (London, UK) in May 2022
A Decade of Code Comment Quality Assessment: A Systematic Literature Review
Pooja Rani, Arianna Blasi
, Nataliia Stulova, Sebastiano Panichella, Alessandra Gorla, Oscar Nierstrasz
Journal of Systems and Software 2022
Call Me Maybe: Using NLP to Automatically Generate Unit Test Cases Respecting Temporal Constraints
, Alessandra Gorla, Michael D. Ernst, Mauro Pezzè
ASE 2022 - Technical Papers track and Artifacts track
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.
CallMeMaybe uses natural language processing to analyze Javadoc comments to identify temporal properties. This information can guide a test case generator towards executing sequences of method calls that respect the temporal properties. CallMeMaybe is currently integrated
. Up to now, CallMeMaybe's precision and recall are respectively above 80% and 70%, and the translated constraints proved to improve thousands of Randoop's outputs.
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)