VLDB 2026 Research / reviewers in the wild / expert
Diego Garbervetsky
dblp:g/DiegoGarbervetsky
· DBLP profile ↗
27ranked-venue papers
5as first author
5since 2021 · last 2026
0000-0003-4180-7196ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 25 · 4 first-author · 5 since 2021Systems, architecture and hardware · 2 · 1 first-authorTheory of computation · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Improving Dynamic Specification Inference with LLM-Generated Counterexamples
Agustín Balestra, Agustín Nolasco, Facundo Molina, Diego Garbervetsky, Renzo Degiovanni, Nazareno Aguirre |
ICST | 4 |
| 2025 | Modal Abstractions for Smart Contract ValidationabstractSmart contracts manage valuable assets, and their immutability hinders bug fixing. Therefore, pre-deployment verification and validation are critical. In fact, auditing has become mandatory in the pipeline of smart contract development. Auditors usually combine manual inspection with automated tools in their auditing work, looking for issues that may be domain dependent (i.e., pertaining to the correct implementation of requirements-which are often informal, partial, and implicit) or independent (e.g., reentrancy, overflow, etc.), To identify domain dependent issues, it is important to understand the non-trivial behavior of the implementation over sequences of calls made by callees playing different roles in the contract. In this paper, we propose a novel approach that combines predicate abstraction with modal transition systems to build abstractions that can help auditors in the smart contract validation process. The required inputs are a set of predicates provided as code and, optionally, constraints over smart contract function parameters. The output is a modal transition system that captures the contract's behavior. We report on a prototype that builds modal abstractions and an evaluation on two established benchmarks where we identified four previously unreported issues. Javier Godoy, Margarita Capretto, Martín Ceresa, Juan P. Galeotti, Diego Garbervetsky, César Sánchez 0001, Sebastián Uchitel |
MODELS | 5 |
| 2023 | An Empirical Study on How Sapienz Achieves Coverage and Crash DetectionabstractAbstract Several tools for automatically testing Android applications have been proposed. In particular, Sapienz is a search‐based tool that has been recently deployed in an industrial setting. Although it has been shown that Sapienz outperforms several state‐of‐the‐art tools, it is still to be seen what features of SAPIENZ impact the most on its effectiveness. We conducted an extensive empirical study where we compare the impact of the search algorithm and the usage of motif genes, a more compact representation of individuals. Our empirical study shows that the usage of motif genes improves coverage both for Evolutionary Algorithms and random approaches. In particular, it also shows that NSGA‐II, the multi‐objective evolutionary algorithm used by Sapienz, does not have a clear improvement over other algorithms. In terms of number of crashes detected, our study shows that both NSGA‐II and Random Search perform similarly. While the usage of motif genes improves the crash detection of algorithms, it is not enough to make it statistically significant. These facts cast doubts about the use of Evolutionary Algorithms in the context of Android test generation and suggest that motif genes can have a great impact on the overall effectiveness. Iván Arcuschin, Juan P. Galeotti, Diego Garbervetsky |
J. Softw. Evol. Process. | 3 |
| 2022 | Predicate abstractions for smart contract validationabstractSmart contracts are immutable programs deployed on the blockchain that can manage significant assets. Because of this, verification and validation of smart contracts is of vital importance. Indeed, it is industrial practice to hire independent specialized companies to audit smart contracts before deployment. Auditors typically rely on a combination of tools and experience but still fail to identify problems in smart contracts before deployment, causing significant losses. In this paper, we propose using predicate abstraction to construct models which can be used by auditors to explore and validate smart contact behaviour at the function call level by proposing predicates that expose different aspects of the contract. We propose predicates based on requires clauses and enum-type state variables as a starting point for contract validation and report on an evaluation on two different benchmarks. Javier Godoy, Juan P. Galeotti, Diego Garbervetsky, Sebastián Uchitel |
MoDELS | 3 |
| 2021 | Enabledness-based Testing of Object ProtocolsabstractA significant proportion of classes in modern software introduce or use object protocols, prescriptions on the temporal orderings of method calls on objects. This article studies search-based test generation techniques that aim to exploit a particular abstraction of object protocols (enabledness preserving abstractions (EPAs)) to find failures. We define coverage criteria over an extension of EPAs that includes abnormal method termination and define a search-based test case generation technique aimed at achieving high coverage. Results suggest that the proposed case generation technique with a fitness function that aims at combined structural and extended EPA coverage can provide better failure-detection capabilities not only for protocol failures but also for general failures when compared to random testing and search-based test generation for standard structural coverage. Javier Godoy, Juan P. Galeotti, Diego Garbervetsky, Sebastián Uchitel |
ACM Trans. Softw. Eng. Methodol. | 3 |
| 2019 | Fully Reflective Execution Environments: Virtual Machines for More Flexible SoftwareabstractVMs are complex pieces of software that implement programming language semantics in an efficient, portable, and secure way. Unfortunately, mainstream VMs provide applications with few mechanisms to alter execution semantics or memory management at run time. We argue that this limits the evolvability and maintainability of running systems for both, the application domain, e.g., to support unforeseen requirements, and the VM domain, e.g., to modify the organization of objects in memory. This work explores the idea of incorporating reflective capabilities into the VM domain and analyzes its impact in the context of software adaptation tasks. We characterize the notion of a fully reflective VM, a kind of VM that provides means for its own observability and modifiability at run time. This enables programming languages to adapt the underlying VM to changing requirements. We propose a reference architecture for such VMs and present TruffleMATE as a prototype for this architecture. We evaluate the mechanisms TruffleMATE provides to deal with unanticipated dynamic adaptation scenarios for security, optimization, and profiling aspects. In contrast to existing alternatives, we observe that TruffleMATE is able to handle all scenarios, using less than 50 lines of code for each, and without interfering with the application's logic. Guido Chari, Diego Garbervetsky, Stefan Marr, Stéphane Ducasse |
IEEE Trans. Software Eng. | 2 |
| 2018 | Testing and validating end user programmed calculated fieldsabstractThis paper reports on an approach for systematically generating test data from production databases for end user calculated field program via a novel combination of symbolic execution and database queries. We also discuss the opportunities and challenges that this specific domain poses for symbolic execution and shows how database queries can help complement some of symbolic execution's weaknesses, namely in the treatment of loops and also of path conditions that exceed SMT solver capabilities. Víctor A. Braberman, Diego Garbervetsky, Javier Godoy, Sebastián Uchitel, Guido de Caso, Ignacio Perez, Santiago Pérez |
ESEC/SIGSOFT FSE | 2 |
| 2017 | Model checker execution reportsabstractSoftware model checking constitutes an undecidable problem and, as such, even an ideal tool will in some cases fail to give a conclusive answer. In practice, software model checkers fail often and usually do not provide any information on what was effectively checked. The purpose of this work is to provide a conceptual framing to extend software model checkers in a way that allows users to access information about incomplete checks. We characterize the information that model checkers themselves can provide, in terms of analyzed traces, i.e. sequences of statements, and safe canes, and present the notion of execution reports (ERs), which we also formalize. We instantiate these concepts for a family of techniques based on Abstract Reachability Trees and implement the approach using the software model checker CPAchecker. We evaluate our approach empirically and provide examples to illustrate the ERs produced and the information that can be extracted. Rodrigo Castaño, Víctor A. Braberman, Diego Garbervetsky, Sebastián Uchitel |
ASE | 3 |
| 2017 | Static analysis for optimizing big data queriesabstractQuery languages for big data analysis provide user extensibility through a mechanism of user-defined operators (UDOs). These operators allow programmers to write proprietary functionalities on top of a relational query skeleton. However, achieving effective query optimization for such languages is extremely challenging since the optimizer needs to understand data dependencies induced by UDOs. SCOPE, the query language from Microsoft, allows for hand coded declarations of UDO data dependencies. Unfortunately, most programmers avoid using this facility since writing and maintaining the declarations is tedious and error-prone. In this work, we designed and implemented two sound and robust static analyses for computing UDO data dependencies. The analyses can detect what columns of an input table are never used or pass-through a UDO unchanged. This information can be used to significantly improve execution of SCOPE scripts. We evaluate our analyses on thousands of real-world queries and show we can catch many unused and pass-through columns automatically without relying on any manually provided declarations. Diego Garbervetsky, Zvonimir Pavlinovic, Michael Barnett 0001, Madan Musuvathi, Todd Mytkowicz, Edgardo Zoppi |
ESEC/SIGSOFT FSE | 1 |
| 2017 | Toward full elasticity in distributed static analysis: the case of callgraph analysisabstractIn this paper we present the design and implementation of a distributed, whole-program static analysis framework that is designed to scale with the size of the input. Our approach is based on the actor programming model and is deployed in the cloud. Our reliance on a cloud cluster provides a degree of elasticity for CPU, memory, and storage resources. To demonstrate the potential of our technique, we show how a typical call graph analysis can be implemented in a distributed setting. The vision that motivates this work is that every large-scale software repository such as GitHub, BitBucket, or Visual Studio Online will be able to perform static analysis on a large scale. We experimentally validate our implementation of the distributed call graph analysis using a combination of both synthetic and real benchmarks. To show scalability, we demonstrate how the analysis presented in this paper is able to handle inputs that are almost 10 million lines of code (LOC) in size, without running out of memory. Our results show that the analysis scales well in terms of memory pressure independently of the input size, as we add more virtual machines (VMs). As the number of worker VMs increases, we observe that the analysis time generally improves as well. Lastly, we demonstrate that querying the results can be performed with a median latency of 15 ms. Diego Garbervetsky, Edgardo Zoppi, Benjamin Livshits |
ESEC/SIGSOFT FSE | 1 |
| 2016 | Building efficient and highly run-time adaptable virtual machinesabstractProgramming language virtual machines (VMs) realize language semantics, enforce security properties, and execute applications efficiently. Fully Reflective Execution Environments (EEs) are VMs that additionally expose their whole structure and behavior to applications. This enables develop- ers to observe and adapt VMs at run time. However, there is a belief that reflective EEs are not viable for practical usages because such flexibility would incur a high performance overhead. To refute this belief, we built a reflective EE on top of a highly optimizing dynamic compiler. We introduced a new optimization model that, based on the conjecture that variability of low-level (EE-level) reflective behavior is low in many scenarios, mitigates the most significant sources of the performance overheads related to the reflective capabilities in the EE. Our experiments indicate that reflective EEs can reach peak performance in the order of standard VMs. Concretely, that a) if reflective mechanisms are not used the execution overhead is negligible compared to standard VMs, b) VM operations can be redefined at language-level without incurring in significant overheads, c) for several software adaptation tasks, applying the reflection at the VM level is not only lightweight in terms of engineering effort, but also competitive in terms of performance in comparison to other ad-hoc solutions. Guido Chari, Diego Garbervetsky, Stefan Marr |
DLS | 2 |
| 2015 | TacoFlow: optimizing SAT program verification using dataflow analysis
Bruno Cuervo Parrino, Juan P. Galeotti, Diego Garbervetsky, Marcelo F. Frias |
Softw. Syst. Model. | 3 |
| 2014 | Summary-based inference of quantitative bounds of live heap objects
Víctor A. Braberman, Diego Garbervetsky, Samuel Hym, Sergio Yovine |
Sci. Comput. Program. | 2 |
| 2014 | Developing tools as plug-ins: TOPI 2012 special issueabstractSUMMARY Our knowledge as to how to solve software engineering problems is increasingly being encapsulated in tools. These tools are at their strongest when they operate in a preexisting development that can provide integration with existing elements such as compilers, debuggers, profilers, and visualizers as well as numerous other development and, often, runtime tools. However, building tools as plug‐ins can be challenging and raise many questions: How do they interact with the core environment? How do they interact with other existing plug‐ins, especially as each developer may choose a different set of plug‐ins. How can we share tools across different and future core development environments? How do we evaluate the usefulness of the tools? The series of workshops on Developing Tools as Plug‐ins (TOPI) tries to address these questions. Researchers are invited to present position papers spotting the medium‐term and long‐term challenges of developing tools as plug‐ins as well as research contributions identifying recent successful tools as plug‐ins, characteristics of good plug‐ins and reports of the main difficulties in implementing plug‐ins in current platforms. This issue includes extended versions of the best papers presented at TOPI 2012. Copyright © 2014 John Wiley & Sons, Ltd. Diego Garbervetsky, Sunghun Kim 0001 |
Softw. Pract. Exp. | 1 |
| 2013 | 3rd international workshop on developing tools as plug-ins (TOPI 2013)abstractTOPI (http://se.inf.ethz.ch/events/topi2013/) is a workshop started in 2011 to address research questions involving plug-ins: software components designed and written to execute within an extensible platform. Most such software components are tools meant to be used within a development environment for constructing software. Other environments are middle-ware platforms and web browsers. Research on plug-ins encompasses the characteristics that differentiate them from other types of software, their interactions with each other, and the platforms they extend. Michael Barnett 0001, Martín Nordio, Judith Bishop, Karin K. Breitman, Diego Garbervetsky |
ICSE | 5 |
| 2013 | Integrated program verification tools in educationabstractSUMMARY Automated software verification is an active field of research, which has made enormous progress both in theoretical and practical aspects. Even if not ready for large‐scale industrial adoption, the technology behind automated program verifiers is now mature enough to gracefully handle the kind of programs that arise in introductory programming courses. This opens exciting new opportunities in teaching the basics of reasoning about program correctness to novice students. However, for these tools to be effective, command‐line‐style user‐interfaces need to be replaced. In this paper, we report on our experience using the verifying compiler for PEST in an introductory programming course as well as in a more advanced course on program analysis. PEST is an extremely basic programming language, but with expressive annotations capabilities and semantics amenable to verification. In particular, we comment on the crucial role played by the integration of this verifying compiler with the Eclipse integrated development environment. Copyright © 2012 John Wiley & Sons, Ltd. Guido de Caso, Diego Garbervetsky, Daniel Gorín |
Softw. Pract. Exp. | 2 |
| 2013 | Enabledness-based program abstractions for behavior validationabstractCode artifacts that have nontrivial requirements with respect to the ordering in which their methods or procedures ought to be called are common and appear, for instance, in the form of API implementations and objects. This work addresses the problem of validating if API implementations provide their intended behavior when descriptions of this behavior are informal, partial, or nonexistent. The proposed approach addresses this problem by generating abstract behavior models which resemble typestates. These models are statically computed and encode all admissible sequences of method calls. The level of abstraction at which such models are constructed has shown to be useful for validating code artifacts and identifying findings which led to the discovery of bugs, adjustment of the requirements expected by the engineer to the requirements implicit in the code, and the improvement of available documentation. Guido de Caso, Víctor A. Braberman, Diego Garbervetsky, Sebastián Uchitel |
ACM Trans. Softw. Eng. Methodol. | 3 |
| 2012 | Automated Abstractions for Contract ValidationabstractPre/postcondition-based specifications are commonplace in a variety of software engineering activities that range from requirements through to design and implementation. The fragmented nature of these specifications can hinder validation as it is difficult to understand if the specifications for the various operations fit together well. In this paper, we propose a novel technique for automatically constructing abstractions in the form of behavior models from pre/postcondition-based specifications. Abstraction techniques have been used successfully for addressing the complexity of formal artifacts in software engineering; however, the focus has been, up to now, on abstractions for verification. Our aim is abstraction for validation and hence, different and novel trade-offs between precision and tractability are required. More specifically, in this paper, we define and study enabledness-preserving abstractions, that is, models in which concrete states are grouped according to the set of operations that they enable. The abstraction results in a finite model that is intuitive to validate and which facilitates tracing back to the specification for debugging. The paper also reports on the application of the approach to two industrial strength protocol specifications in which concerns were identified. Guido de Caso, Víctor A. Braberman, Diego Garbervetsky, Sebastián Uchitel |
IEEE Trans. Software Eng. | 3 |
| 2011 | Program abstractions for behaviour validationabstractCode artefacts that have non-trivial requirements with respect to the ordering in which their methods or procedures ought to be called are common and appear, for instance, in the form of API implementations and objects. This work addresses the problem of validating if API implementations provide their intended behaviour when descriptions of this behaviour are informal, partial or non-existent. The proposed approach addresses this problem by generating abstract behaviour models which resemble typestates. These models are statically computed and encode all admissible sequences of method calls. The level of abstraction at which such models are constructed has shown to be useful for validating code artefacts and identifying findings which led to the discovery of bugs, adjustment of the requirements expected by the engineer to the requirements implicit in the code, and the improvement of available documentation. Guido de Caso, Víctor A. Braberman, Diego Garbervetsky, Sebastián Uchitel |
ICSE | 3 |
| 2011 | A Dataflow Analysis to Improve SAT-Based Bounded Program Verification
Bruno Cuervo Parrino, Juan P. Galeotti, Diego Garbervetsky, Marcelo F. Frias |
SEFM | 3 |
| 2011 | Enforcing Structural Invariants Using Dynamic Frames
Diego Garbervetsky, Daniel Gorín, Ariel Neisen |
TACAS | 1 |
| 2011 | Quantitative dynamic-memory analysis for JavaabstractAbstract Space‐ and time‐predictability are hard to achieve for object‐oriented languages with automated dynamic‐memory management. Although there has been significant work to design APIs, such as the Real‐Time Specification for Java (RTSJ), and to implement garbage collectors to enable real‐time performance, quantitative space analysis is still in its infancy. This work presents the integration of a series of compile‐time analysis techniques to help predicting quantitative memory usage. In particular, we focus on providing tool assistance for identifying RTSJ scoped‐memory regions, their sizes, and overall memory usage. First, the tool‐suite synthesizes a memory organization where regions are associated with methods. Second, it infers their sizes inparametricclosed form in terms of relevant program variables. Third, it exhibits a parametric upper bound on the amount of available free memory required to execute a method. The experiments carried out with a RTSJ benchmark, a real‐time aircraft collision detector, show that semi‐automatic, tool‐assisted generation of scoped‐based code is both helpful and doable. Copyright © 2010 John Wiley & Sons, Ltd. Diego Garbervetsky, Sergio Yovine, Víctor A. Braberman, Martín Rouaux, Alejandro Taboada |
Concurr. Comput. Pract. Exp. | 1 |
| 2009 | Validation of contracts using enabledness preserving finite state abstractionsabstractPre/post condition-based specifications are common-place in a variety of software engineering activities that range from requirements through to design and implementation. The fragmented nature of these specifications can hinder validation as it is difficult to understand if the specifications for the various operations fit together well. In this paper we propose a novel technique for automatically constructing abstractions in the form of behaviour models from pre/post condition-based specifications. The level of abstraction at which such models are constructed preserves enabledness of sets of operations, resulting in a finite model that is intuitive to validate and which facilitates tracing back to the specification for debugging. The paper also reports on the application of the approach to an industrial strength protocol specification in which concerns were identified. Guido de Caso, Víctor A. Braberman, Diego Garbervetsky, Sebastián Uchitel |
ICSE | 3 |
| 2009 | Symbolic Polynomial Maximization Over Convex Sets and Its Application to Memory Requirement EstimationabstractMemory requirement estimation is an important issue in the development of embedded systems, since memory directly influences performance, cost and power consumption. It is therefore crucial to have tools that automatically compute accurate estimates of the memory requirements of programs to better control the development process and avoid some catastrophic execution exceptions. Many important memory issues can be expressed as the problem of maximizing a parametric polynomial defined over a parametric convex domain. Bernstein expansion is a technique that has been used to compute upper bounds on polynomials defined over intervals and parametric ldquoboxesrdquo. In this paper, we propose an extension of this theory to more general parametric convex domains and illustrate its applicability to the resolution of memory issues with several application examples. Philippe Clauss, Federico Javier Fernández, Diego Garbervetsky, Sven Verdoolaege |
IEEE Trans. Very Large Scale Integr. Syst. | 3 |
| 2008 | Parametric prediction of heap memory requirementsabstractThis work presents a technique to compute symbolic polynomial approximations of the amount of dynamic memory required to safely execute a method without running out of memory, for Javalike imperative programs. We consider object allocations and deallocations made by the method and the methods it transitively calls. More precisely, given an initial configuration of the stack and the heap, the peak memory consumption is the maximum space occupied by newly created objects in all states along a run from it. We over-approximate the peak memory consumption using a scopedmemory management where objects are organized in regions associated with the lifetime of methods. We model the problem of computing the maximum memory occupied by any region configuration as a parametric polynomial optimization problem over a polyhedral domain and resort to Bernstein basis to solve it. We apply the developed tool to several benchmarks. Víctor A. Braberman, Federico Javier Fernández, Diego Garbervetsky, Sergio Yovine |
ISMM | 3 |
| 2004 | ObsSlice: A Timed Automata Slicer Based on Observers
Víctor A. Braberman, Diego Garbervetsky, Alfredo Olivero |
CAV | 2 |
| 2002 | Improving the Verification of Timed Systems Using Influence Information
Víctor A. Braberman, Diego Garbervetsky, Alfredo Olivero |
TACAS | 2 |