I’m finishing my PhD at IMDEA Software Institute and Universidad Politécnica de Madrid, under the supervision of Alessandra Gorla.
Interests
I am passionate about program analysis. My work focuses on improving software correctness by leveraging techniques such as symbolic execution, automatic test input generation, precondition inference, fuzzing, search algorithms, and machine learning. I thrive on solving challenging problems using advanced software engineering methods and enjoy designing and building software tools to implement these solutions effectively.
Publications
Improving Patch Correctness Analysis via Random Testing and Large Language Models Facundo Molina, Juan Manuel Copia, Alessandra Gorla. To appear in 17th IEEE International Conference on Software Testing, Verification and Validation (ICST '24), Toronto, Canada, May 2024. [ https | .pdf ]
Precise Lazy Initialization for Programs with Complex Heap Inputs Juan Manuel Copia, Facundo Molina, Nazareno Aguirre, Marcelo Frias, Alessandra Gorla, and Pablo Ponzio. In the 34th IEEE International Symposium on Software Reliability Engineering (ISSRE '23), Florence, Italy, October 2023. [ https | .pdf ]
LISSA: Lazy Initialization with Specialized Solver Aid Juan Manuel Copia, Pablo Ponzio, Nazareno Aguirre, Alessandra Gorla, and Marcelo Frias. In the 37th IEEE/ACM International Conference on Automated Software Engineering (ASE '22), Oakland Center, Michigan, USA, October 2022. [ https | .pdf ]
Use of test doubles in Android testing: an in-depth investigation Mattia Fazzini, Chase Choi, Juan Manuel Copia, Gabriel Lee, Yoshiki Kakehi, Alessandra Gorla, and Alessandro Orso. In Proceedings of the 44th International Conference on Software Engineering (ICSE '22), Pittsburgh, USA, May 2022. [ https | .pdf ]
Software Artifacts
Express A tool that automatically infers method preconditions and class invariants using search-based algorithms. It specializes in generating executable predicates (Java code) as preconditions for complex heap-allocated objects. [ code ]
FixCheck A tool for improving patch correctness analysis in Java. It integrates static analysis, random testing, and large language models (LLMs) to automatically generate tests that highlight and explain potential patch inconsistencies. [ code ]
PLI is a symbolic execution framework built on top of Java Symbolic PathFinder (JPF). It enhances symbolic analysis for programs with complex heap-allocated inputs and intricate preconditions. PLI addresses key challenges in lazy initialization, enabling more precise and efficient symbolic reasoning. [ code ]
SymSolve is an efficient bounded exhaustive solver for symbolic structures with complex representation invariants. It determines the satisfiability of partially symbolic heaps with respect to structural constraints by leveraging operational specifications (e.g., repOk routines). [ code ]
PySEAT is a symbolic execution engine for Python programs that implements lazy initialization to represent heap-allocated objects symbolically. It automates test generation for Python codebases, achieving high coverage and uncovering potential errors in complex systems. [ code | .pdf ]
Research Team
- Alessandra Gorla (IMDEA Software Institute, Spain)
- Pablo Ponzio (UNRC, Argentina)
- Facundo Molina (IMDEA Software Institute, Spain)
- Nazareno Aguirre (UNRC, Argentina)
Contact
Email: jmcopia96@gmail.com
You can find my CV on this link.