I work at the IMDEA Software Institute as a Postdoctoral Researcher, under the supervision of Alessandra Gorla. My main research interests are in the area of Software Testing and Analysis and the use of Artificial Intelligence for Software Engineering (AI4SE), with the goal of improving software reliability and quality.

In April 2022, I received my Ph.D. at FAMAF, University of Córdoba (UNC, Argentina), where I was advised by Professor Nazareno Aguirre. My research focused on the automated generation of test oracles, in the form of class invariants and postconditions. Particularly, my work involved the use of search-based and learning-based techniques (mainly evolutionary algorithms and neural networks) with the goal of obtaining precise oracles. My dissertation is available in the UNC digital repository.

Projects

FixCheck is a tool for improving patch correctness analysis. Given a target Java patch, it uses static analysis and random testing to generate new inputs to test the patch, and Large Language Models (LLMs) to generate meaningful assertions for the new inputs. The new tests are executed and those that fail are selected and prioritised according to their likelihood of revealing a defect in the patch.
SpecFuzzer is a Java tool that automatically infers test oracles in the form of class specifications (postconditions, invariants). SpecFuzzer uses a fuzzer as a generator of candidate assertions derived from a grammar that is automatically obtained from the class definition; a dynamic invariant detector –Daikon– to filter out assertions invalidated by a test suite; and a mutation-based mechanism to cluster and rank assertions, so that similar constraints are grouped and then the stronger prioritized.
EvoSpex EvoSpex is a search-based tool for inferring postconditions of Java methods. Given a Java method and a test suite with executions of the method, EvoSpex uses evolutionary computation to automatically infer a postcondition assertion capturing the method's current behavior. The assertions that EvoSpex produce belong to a JML-like specification language.
As expressing class specifications, such as class invariants, can be a very challenging task, and they are often absent accompanying code, in the Training Binary Classifiers as Data Structures Invariants project we explore the use of artificial neural networks (binary classifiers) as class invariants of data structure implementations, i.e., we train these models to learn to distinguish valid/invalid instances of data structures. The obtained classifier can then be used in order to attempt to identify (in)correct behaviors in programs manipulating the class.

Publications

This is a list of my latest/most relevant publications. The full list can be found in my dblp or google scholar.

Abstraction-Aware Inference of Metamorphic Relations by Agustín Nolasco, Facundo Molina, Renzo Degiovanni, Alessandra Gorla, Diego Garbervetsky, Mike Papadakis, Sebastian Uchitel, Nazareno Aguirre and Marcelo F. Frias. In Proceedings of the ACM on Software Engineering, Vol. 1, Issue FSE, 2024. [ code | .pdf | https ]

Improving Patch Correctness Analysis via Random Testing and Large Language Models by Facundo Molina, Juan Manuel Copia and Alessandra Gorla. In the 17th IEEE International Conference on Software Testing, Verification and Validation, ICST 2024, Toronto, Canada, May 27-31, 2024. [ code | .pdf ]

Enabling Efficient Assertion Inference by Aayush Garg, Renzo Degiovanni, Facundo Molina, Maxime Cordy, Nazareno Aguirre, Mike Papadakis, and Yves Le Traon. In 34th IEEE International Symposium on Software Reliability Engineering, ISSRE 2023, Florence, Italy, October 9-12, 2023. [ code | .pdf ]

Precise Lazy Initialization for Programs with Complex Heap Inputs by Juan Manuel Copia, Facundo Molina, Nazareno Aguirre, Marcelo Frias, Alessandra Gorla, and Pablo Ponzio. In 34th IEEE International Symposium on Software Reliability Engineering, ISSRE 2023, Florence, Italy, October 9-12, 2023. [ code | .pdf ]

Learning to Prune Infeasible Paths in Generalized Symbolic Execution by Facundo Molina, Pablo Ponzio, Nazareno Aguirre, and Marcelo F. Frias. In 33rd IEEE International Symposium on Software Reliability Engineering, ISSRE 2022, Charlotte, NC, USA, October 31-November 3, 2022. [ code | https | .pdf ]

Fuzzing Class Specifications by Facundo Molina, Marcelo d'Amorim, and Nazareno Aguirre. In 44th IEEE/ACM 44th International Conference on Software Engineering, ICSE 2022, Pittsburgh, PA, USA, May 25-27, 2022, pages 1008–1020. ACM, 2022. [ code | media | https | .pdf ]

EvoSpex: An Evolutionary Algorithm for Learning Postconditions by Facundo Molina, Pablo Ponzio, Nazareno Aguirre, and Marcelo F. Frias. In 43rd IEEE/ACM International Conference on Software Engineering, ICSE 2021, Madrid, Spain, 22-30 May 2021, pages 1223–1235. IEEE, 2021. [ code | media | https | .pdf ]

Training Binary Classifiers as Data Structure Invariants by Facundo Molina, Renzo Degiovanni, Pablo Ponzio, Germán Regis, Nazareno Aguirre, and Marcelo F. Frias. In Proceedings of the 41st International Conference on Software Engineering, ICSE 2019, Montreal, QC, Canada, May 25-31, 2019, pages 759–770. IEEE / ACM, 2019. [ code | https | .pdf ]

Research Team

Researchers

PhD students

Undergraduate Students

Service

Funding

I am very thankful to have received funding from CONICET and Microsoft Research to support my research.