EDBT 2026 Demo / reviewers in the wild / expert
Maria Christakis
dblp:05/7730
· DBLP profile ↗
47ranked-venue papers
19as first author
21since 2021 · last 2025
0000-0002-2649-1958ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 39 · 18 first-author · 15 since 2021Artificial intelligence and machine learning · 6 · 1 first-author · 5 since 2021Theory of computation · 5 · 3 first-author · 3 since 2021Graphics, computer vision, multimedia, augmented reality and games · 3 · 1 first-author · 3 since 2021Security and privacy · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Fuzzing Processing Pipelines for Zero-Knowledge CircuitsabstractZero-knowledge (ZK) protocols have recently found numerous practical applications, such as in authentication, online-voting, and blockchain systems. These protocols are powered by highly complex pipelines that process deterministic programs, called circuits, written in one of many domain-specific programming languages, e.g., Circom, Noir, and others. Logic bugs in circuit-processing pipelines could have catastrophic consequences and cause significant financial and reputational damage. As an example, consider that a logic bug in a ZK pipeline could result in attackers stealing identities or assets. It is, therefore, critical to develop effective techniques for checking their correctness. Christoph Hochrainer, Anastasia Isychev, Valentin Wüstholz, Maria Christakis |
CCS | 4 |
| 2025 | Lazy Testing of Machine-Learning ModelsabstractChecking the reliability of machine-learning models is a crucial, but challenging task. Nomos is an existing, automated framework for testing general, user-provided functional properties of models, including so-called hyperproperties expressed over more than one model execution. Nomos aims to find model inputs that expose ``bugs'', that is, property violations. However, performing thousands of model invocations during testing is costly both in terms of time and money (for metered APIs, such as OpenAI's). We present LaZ (pronounced ``lazy''), an extension of Nomos that automatically minimizes the number of model invocations to boost the test throughput and thereby find bugs more efficiently. During test execution, LaZ automatically identifies redundant invocations---invocations where the model output does not affect the final test outcome---and skips them, much like lazy evaluation in certain programming languages. This optimization enables a second one that dynamically reorders model invocations to skip the more expensive ones. As a result, LaZ finds the same number of bugs as Nomos, but does so median 33% and up to 60% faster. Anastasia Isychev, Valentin Wüstholz, Maria Christakis |
IJCAI | 3 |
| 2025 | Using Action-Policy Testing in RL to Reduce the Number of BugsabstractReinforcement learning is becoming ever more prominent in solving combinatorial search problems, in particular ones where states are images. Prior work has devised action-policy testing methodology, that identifies so-called bug states where policy performance is sub-optimal. Here we show how to leverage this methodology during the RL process, using action-policy testing to find bugs and injecting those as alternate start states for the training runs. Running experiments across six 2D games, we find that our testing-guided training often achieves similar expected reward while reducing the number of bugs. Hasan Ferit Eniser, Songtuan Lin, Nicola J. Müller, Anastasia Isychev, Valentin Wüstholz, Isabel Valera, Jörg Hoffmann 0001, Maria Christakis |
SOCS | 8 |
| 2024 | Automatically Testing Functional Properties of Code Translation ModelsabstractLarge language models are becoming increasingly practical for translating code across programming languages, a process known as transpiling. Even though automated transpilation significantly boosts developer productivity, a key concern is whether the generated code is correct. Existing work initially used manually crafted test suites to test the translations of a small corpus of programs; these test suites were later automated. In contrast, we devise the first approach for automated, functional, property-based testing of code translation models. Our general, user-provided specifications about the transpiled code capture a range of properties, from purely syntactic to purely semantic ones. As shown by our experiments, this approach is very effective in detecting property violations in popular code translation models, and therefore, in evaluating model quality with respect to given properties. We also go a step further and explore the usage scenario where a user simply aims to obtain a correct translation of some code with respect to certain properties without necessarily being concerned about the overall quality of the model. To this purpose, we develop the first property-guided search procedure for code translation models, where a model is repeatedly queried with slightly different parameters to produce alternative and potentially more correct translations. Our results show that this search procedure helps to obtain significantly better code translations. Hasan Ferit Eniser, Valentin Wüstholz, Maria Christakis |
AAAI | 3 |
| 2024 | Verifying Global Two-Safety Properties in Neural Networks with ConfidenceabstractAbstract We present the first automated verification technique for confidence-based 2-safety properties, such as global robustness and global fairness, in deep neural networks (DNNs). Our approach combines self-composition to leverage existing reachability analysis techniques and a novel abstraction of the softmax function, which is amenable to automated verification. We characterize and prove the soundness of our static analysis technique. Furthermore, we implement it on top of Marabou, a safety analysis tool for neural networks, conducting a performance evaluation on several publicly available benchmarks for DNN verification. Anagha Athavale, Ezio Bartocci, Maria Christakis, Matteo Maffei, Dejan Nickovic, Georg Weissenbacher |
CAV (2) | 3 |
| 2024 | Inductive Predicate Synthesis Modulo ProgramsabstractA growing trend in program analysis is to encode verification conditions within the language of the input program. This simplifies the design of analysis tools by utilizing off-the-shelf verifiers, but makes communication with the underlying solver more challenging. Essentially, the analyzer operates at the level of input programs, whereas the solver operates at the level of problem encodings. To bridge this gap, the verifier must pass along proof-rules from the analyzer to the solver. For example, an analyzer for concurrent programs built on an inductive program verifier might need to declare Owicki-Gries style proof-rules for the underlying solver. Each such proof-rule further specifies how a program should be verified, meaning that the problem of passing proof-rules is a form of invariant synthesis. Similarly, many program analysis tasks reduce to the synthesis of pure, loop-free Boolean functions (i.e., predicates), relative to a program. From this observation, we propose Inductive Predicate Synthesis Modulo Programs (IPS-MP) which extends high-level languages with minimal synthesis features to guide analysis. In IPS-MP, unknown predicates appear under assume and assert statements, acting as specifications modulo the program semantics. Existing synthesis solvers are inefficient at IPS-MP as they target more general problems. In this paper, we show that IPS-MP admits an efficient solution in the Boolean case, despite being generally undecidable. Moreover, we show that IPS-MP reduces to the satisfiability of constrained Horn clauses, which is less general than existing synthesis problems, yet expressive enough to encode verification tasks. We provide reductions from challenging verification tasks -- such as parameterized model checking -- to IPS-MP. We realize these reductions with an efficient IPS-MP-solver based on SeaHorn, and describe a application to smart-contract verification. Scott Wesley, Maria Christakis, Jorge A. Navas, Richard J. Trefler, Valentin Wüstholz, Arie Gurfinkel |
ECOOP | 2 |
| 2024 | New Fuzzing Biases for Action Policy TestingabstractTesting was recently proposed as a method to gain trust in learned action policies in classical planning. Test cases in this setting are states generated by a fuzzing process that performs random walks from the initial state. A fuzzing bias attempts to bias these random walks towards policy bugs, that is, states where the policy performs sub-optimally. Prior work explored a simple fuzzing bias based on policy-trace cost. Here, we investigate this topic more deeply. We introduce three new fuzzing biases based on analyses of policy-trace shape, estimating whether a trace is close to looping back on itself, whether it contains detours, and whether its goal-distance surface does not smoothly decline. Our experiments with two kinds of neural action policies show that these new biases improve bug-finding capabilities in many cases. Jan Eisenhut, Xandra Schuler, Daniel Fiser, Daniel Höller, Maria Christakis, Jörg Hoffmann 0001 |
ICAPS | 5 |
| 2024 | Olympia: Fuzzer Benchmarking for SolidityabstractOver the last few years, smart-contract hacks have resulted in the loss of billions of assets. To efficiently identify such vulnerabilities, academic and industrial researchers have developed several popular smart-contract fuzzers. However, it has been challenging to objectively compare their bug-finding effectiveness. In this paper, we present Olympia, the first benchmark-generation tool that is designed for smart-contract, rather than general-purpose, fuzzers. We have used Olympia to evaluate the effectiveness of four well known, open-source fuzzers for Solidity smart contracts. Jana Chadt, Christoph Hochrainer, Valentin Wüstholz, Maria Christakis |
ASE | 4 |
| 2024 | Constraint-Based Test Oracles for Program AnalyzersabstractProgram analyzers implement complex algorithms and, as any software, can contain bugs. Bugs in their implementation may lead to analyzers being imprecise and failing to verify safe programs, i.e., programs with no reachable error locations; or worse, analyzer bugs may lead to reporting unsound results by verifying unsafe programs, i.e., programs with reachable error locations. Markus Fleischmann, David Kaindlstorfer, Anastasia Isychev, Valentin Wüstholz, Maria Christakis |
ASE | 5 |
| 2024 | Interrogation Testing of Program Analyzers for Soundness and Precision IssuesabstractProgram analyzers are critical in safeguarding software reliability. However, due to their inherent complexity, they are likely to contain bugs themselves, and the question of how to detect them arises. Existing approaches, primarily based on specification-based, differential, or metamorphic testing, have been successful in finding analyzer bugs, but also come with certain limitations. David Kaindlstorfer, Anastasia Isychev, Valentin Wüstholz, Maria Christakis |
ASE | 4 |
| 2023 | Specifying and Testing k-Safety Properties for Machine-Learning ModelsabstractMachine-learning models are becoming increasingly prevalent in our lives, for instance assisting in image-classification or decision-making tasks. Consequently, the reliability of these models is of critical importance and has resulted in the development of numerous approaches for validating and verifying their robustness and fairness. However, beyond such specific properties, it is challenging to specify, let alone check, general functional-correctness expectations from models. In this paper, we take inspiration from specifications used in formal methods, expressing functional-correctness properties by reasoning about k different executions---so-called k-safety properties. Considering a credit-screening model of a bank, the expected property that "if a person is denied a loan and their income decreases, they should still be denied the loan" is a 2-safety property. Here, we show the wide applicability of k-safety properties for machine-learning models and present the first specification language for expressing them. We also operationalize the language in a framework for automatically validating such properties using metamorphic testing. Our experiments show that our framework is effective in identifying property violations, and that detected bugs could be used to train better models. Maria Christakis, Hasan Ferit Eniser, Jörg Hoffmann 0001, Adish Singla, Valentin Wüstholz |
IJCAI | 1 |
| 2023 | Dependency-Aware Metamorphic Testing of Datalog EnginesabstractDatalog is a declarative query language with wide applicability, especially in program analysis. Queries are evaluated by Datalog engines, which are complex and thus prone to returning incorrect results. Such bugs, called query bugs, may compromise the soundness of upstream program analyzers, having potentially detrimental consequences in safety-critical settings. Muhammad Numair Mansur, Valentin Wüstholz, Maria Christakis |
ISSTA | 3 |
| 2023 | Green Fuzzer BenchmarkingabstractOver the last decade, fuzzing has been increasingly gaining traction due to its effectiveness in finding bugs. Nevertheless, fuzzer evaluations have been challenging during this time, mainly due to lack of standardized benchmarking. Aiming to alleviate this issue, in 2020, Google released FuzzBench, an open-source benchmarking platform, that is widely used for accurate fuzzer benchmarking. Jiradet Ounjai, Valentin Wüstholz, Maria Christakis |
ISSTA | 3 |
| 2022 | Metamorphic relations via relaxations: an approach to obtain oracles for action-policy testingabstractTesting is a promising way to gain trust in a learned action policy π, in particular if π is a neural network. A “bug” in this context constitutes undesirable or fatal policy behavior, e.g., satisfying a failure condition. But how do we distinguish whether such behavior is due to bad policy decisions, or whether it is actually unavoidable under the given circumstances? This requires knowledge about optimal solutions, which defeats the scalability of testing. Related problems occur in software testing when the correct program output is not known. Hasan Ferit Eniser, Timo P. Gros, Valentin Wüstholz, Jörg Hoffmann 0001, Maria Christakis |
ISSTA | 5 |
| 2022 | Input splitting for cloud-based static application security testing platformsabstractAs software development teams adopt DevSecOps practices, application security is increasingly the responsibility of development teams, who are required to set up their own Static Application Security Testing (SAST) infrastructure. Maria Christakis, Thomas Cottenier, Antonio Filieri, Linghui Luo, Muhammad Numair Mansur, Lee Pike, Nicolás Rosner, Martin Schäf, Aritra Sengupta, Willem Visser |
ESEC/SIGSOFT FSE | 1 |
| 2022 | Verifying Solidity Smart Contracts via Communication Abstraction in SmartACE
Scott Wesley, Maria Christakis, Jorge A. Navas, Richard J. Trefler, Valentin Wüstholz, Arie Gurfinkel |
VMCAI | 2 |
| 2021 | Automated Safety Verification of Programs Invoking Neural NetworksabstractAbstract State-of-the-art program-analysis techniques are not yet able to effectively verify safety properties of heterogeneous systems, that is, systems with components implemented using diverse technologies. This shortcoming is pinpointed by programs invoking neural networks despite their acclaimed role as innovation drivers across many application areas. In this paper, we embark on the verification of system-level properties for systems characterized by interaction between programs and neural networks. Our technique provides a tight two-way integration of a program and a neural-network analysis and is formalized in a general framework based on abstract interpretation. We evaluate its effectiveness on 26 variants of a widely used, restricted autonomous-driving benchmark. Maria Christakis, Hasan Ferit Eniser, Holger Hermanns, Jörg Hoffmann 0001, Yugesh Kothari, Jorge A. Navas, Valentin Wüstholz |
CAV (1) | 1 |
| 2021 | Automatically Tailoring Abstract Interpretation to Custom Usage ScenariosabstractAbstract In recent years, there has been significant progress in the development and industrial adoption of static analyzers, specifically of abstract interpreters. Such analyzers typically provide a large, if not huge, number of configurable options controlling the analysis precision and performance. A major hurdle in integrating them in the software-development life cycle is tuning their options to custom usage scenarios, such as a particular code base or certain resource constraints. In this paper, we propose a technique that automatically tailors an abstract interpreter to the code under analysis and any given resource constraints. We implement this technique in a framework, tAIlor, which we use to perform an extensive evaluation on real-world benchmarks. Our experiments show that the configurations generated by tAIlor are vastly better than the default analysis options, vary significantly depending on the code under analysis, and most remain tailored to several subsequent code versions. Muhammad Numair Mansur, Benjamin Mariano, Maria Christakis, Jorge A. Navas, Valentin Wüstholz |
CAV (2) | 3 |
| 2021 | Compositional Verification of Smart Contracts Through Communication Abstraction
Scott Wesley, Maria Christakis, Jorge A. Navas, Richard J. Trefler, Valentin Wüstholz, Arie Gurfinkel |
SAS | 2 |
| 2021 | Metamorphic testing of Datalog enginesabstractDatalog is a popular query language with applications in several domains. Like any complex piece of software, Datalog engines may contain bugs. The most critical ones manifest as incorrect results when evaluating queries—we refer to these as query bugs. Given the wide applicability of the language, query bugs may have detrimental consequences, for instance, by compromising the soundness of a program analysis that is implemented and formalized in Datalog. In this paper, we present the first metamorphic-testing approach for detecting query bugs in Datalog engines. We ran our tool on three mature engines and found 13 previously unknown query bugs, some of which are deep and revealed critical semantic issues. Muhammad Numair Mansur, Maria Christakis, Valentin Wüstholz |
ESEC/SIGSOFT FSE | 2 |
| 2021 | A Two-Phase Approach for Conditional Floating-Point VerificationabstractAbstract Tools that automatically prove the absence or detect the presence of large floating-point roundoff errors or the special values NaN and Infinity greatly help developers to reason about the unintuitive nature of floating-point arithmetic. We show that state-of-the-art tools, however, support or provide non-trivial results only for relatively short programs. We propose a framework for combining different static and dynamic analyses that allows to increase their reach beyond what they can do individually. Furthermore, we show how adaptations of existing dynamic and static techniques effectively trade some soundness guarantees for increased scalability, providing conditional verification of floating-point kernels in realistic programs. Debasmita Lohar, Clothilde Jeangoudoux, Joshua Sobel, Eva Darulova, Maria Christakis |
TACAS (2) | 5 |
| 2020 | Targeted greybox fuzzing with static lookahead analysisabstractAutomatic test generation typically aims to generate inputs that explore new paths in the program under test in order to find bugs. Existing work has, therefore, focused on guiding the exploration toward program parts that are more likely to contain bugs by using an offline static analysis. Valentin Wüstholz, Maria Christakis |
ICSE | 2 |
| 2020 | Synthesizing Tasks for Block-based ProgrammingabstractBlock-based visual programming environments play a critical role in introducing computing concepts to K-12 students. One of the key pedagogical challenges in these environments is in designing new practice tasks for a student that match a desired level of difficulty and exercise specific programming concepts. In this paper, we formalize the problem of synthesizing visual programming tasks. In particular, given a reference visual task $\task^{in}$ and its solution code $\code^{in}$, we propose a novel methodology to automatically generate a set $\{(\task^{out}, \code^{out})\}$ of new tasks along with solution codes such that tasks $\task^{in}$ and $\task^{out}$ are conceptually similar but visually dissimilar. Our methodology is based on the realization that the mapping from the space of visual tasks to their solution codes is highly discontinuous; hence, directly mutating reference task $\task^{in}$ to generate new tasks is futile. Our task synthesis algorithm operates by first mutating code $\code^{in}$ to obtain a set of codes $\{\code^{out}\}$. Then, the algorithm performs symbolic execution over a code $\code^{out}$ to obtain a visual task $\task^{out}$; this step uses the Monte Carlo Tree Search (MCTS) procedure to guide the search in the symbolic tree. We demonstrate the effectiveness of our algorithm through an extensive empirical evaluation and user study on reference tasks taken from the Hour of Code: Classic Maze challenge by Code.org and the Intro to Programming with Karel course by CodeHS.com. Umair Z. Ahmed, Maria Christakis, Aleksandr Efremov, Nigel Fernandez, Ahana Ghosh, Abhik Roychoudhury, Adish Singla |
NeurIPS | 2 |
| 2020 | Detecting critical bugs in SMT solvers using blackbox mutational fuzzingabstractFormal methods use SMT solvers extensively for deciding formula satisfiability, for instance, in software verification, systematic test generation, and program synthesis. However, due to their complex implementations, solvers may contain critical bugs that lead to unsound results. Given the wide applicability of solvers in software reliability, relying on such unsound results may have detrimental consequences. In this paper, we present STORM, a novel blackbox mutational fuzzing technique for detecting critical bugs in SMT solvers. We run our fuzzer on seven mature solvers and find 29 previously unknown critical bugs. STORM is already being used in testing new features of popular solvers before deployment. Muhammad Numair Mansur, Maria Christakis, Valentin Wüstholz, Fuyuan Zhang |
ESEC/SIGSOFT FSE | 2 |
| 2020 | Harvey: a greybox fuzzer for smart contractsabstractWe present Harvey, an industrial greybox fuzzer for smart contracts, which are programs managing accounts on a blockchain. Valentin Wüstholz, Maria Christakis |
ESEC/SIGSOFT FSE | 2 |
| 2020 | DeepSearch: a simple and effective blackbox attack for deep neural networksabstractAlthough deep neural networks have been very successful in image-classification tasks, they are prone to adversarial attacks. To generate adversarial inputs, there has emerged a wide variety of techniques, such as black- and whitebox attacks for neural networks. In this paper, we present DeepSearch, a novel fuzzing-based, query-efficient, blackbox attack for image classifiers. Despite its simplicity, DeepSearch is shown to be more effective in finding adversarial inputs than state-of-the-art blackbox approaches. DeepSearch is additionally able to generate the most subtle adversarial inputs in comparison to these approaches. Fuyuan Zhang, Sankalan Pal Chowdhury, Maria Christakis |
ESEC/SIGSOFT FSE | 3 |
| 2020 | Perfectly parallel fairness certification of neural networksabstractRecently, there is growing concern that machine-learned software, which currently assists or even automates decision making, reproduces, and in the worst case reinforces, bias present in the training data. The development of tools and techniques for certifying fairness of this software or describing its biases is, therefore, critical. In this paper, we propose a perfectly parallel static analysis for certifying fairness of feed-forward neural networks used for classification of tabular data. When certification succeeds, our approach provides definite guarantees, otherwise, it describes and quantifies the biased input space regions. We design the analysis to be sound, in practice also exact, and configurable in terms of scalability and precision, thereby enabling pay-as-you-go certification. We implement our approach in an open-source tool called Libra and demonstrate its effectiveness on neural networks trained on popular datasets. Caterina Urban, Maria Christakis, Valentin Wüstholz, Fuyuan Zhang |
Proc. ACM Program. Lang. | 2 |
| 2019 | Differentially testing soundness and precision of program analyzersabstractIn the last decades, numerous program analyzers have been developed both in academia and industry. Despite their abundance however, there is currently no systematic way of comparing the effectiveness of different analyzers on arbitrary code. In this paper, we present the first automated technique for differentially testing soundness and precision of program analyzers. We used our technique to compare six mature, state-of-the art analyzers on tens of thousands of automatically generated benchmarks. Our technique detected soundness and precision issues in most analyzers, and we evaluated the implications of these issues to both designers and users of program analyzers. Christian Klinger, Maria Christakis, Valentin Wüstholz |
ISSTA | 2 |
| 2019 | Semantic Fault Localization and Suspiciousness RankingabstractStatic program analyzers are increasingly effective in checking correctness properties of programs and reporting any errors found, often in the form of error traces. However, developers still spend a significant amount of time on debugging. This involves processing long error traces in an effort to localize a bug to a relatively small part of the program and to identify its cause. In this paper, we present a technique for automated fault localization that, given a program and an error trace, efficiently narrows down the cause of the error to a few statements. These statements are then ranked in terms of their suspiciousness. Our technique relies only on the semantics of the given program and does not require any test cases or user guidance. In experiments on a set of C benchmarks, we show that our technique is effective in quickly isolating the cause of error while out-performing other state-of-the-art fault-localization techniques. Maria Christakis, Matthias Heizmann, Muhammad Numair Mansur, Christian Schilling 0001, Valentin Wüstholz |
TACAS (1) | 1 |
| 2018 | CFar: A Tool to Increase Communication, Productivity, and Review Quality in Collaborative Code ReviewsabstractCollaborative code review has become an integral part of the collaborative design process in the domain of software development. However, there are well-documented challenges and limitations to collaborative code review---for instance, high-quality code reviews may require significant time and effort for the programmers, whereas faster, lower-quality reviews may miss code defects. To address these challenges, we introduce CFar, a novel tool design for extending collaborative code review systems with an automated code reviewer whose feedback is based on program-analysis technologies. To validate this design, we implemented CFar as a production-quality tool and conducted a mixed-method empirical evaluation of the tool usage at Microsoft. Through the field deployment of our tool and a laboratory study of professional programmers using the tool, we produced several key findings showing that CFar enhances communication, productivity, and review quality in human--human collaborative code review. Austin Z. Henley, KIotavanç Muçlu, Maria Christakis, Scott D. Fleming, Christian Bird |
CHI | 3 |
| 2018 | Automatically testing implementations of numerical abstract domainsabstractStatic program analyses are routinely applied as the basis of code optimizations and to detect safety and security issues in software systems. For their results to be reliable, static analyses should be sound (i.e., should not produce false negatives) and precise (i.e., should report a low number of false positives). Even though it is possible to prove properties of the design of a static analysis, ensuring soundness and precision for its implementation is challenging. Complex algorithms and sophisticated optimizations make static analyzers difficult to implement and test. Alexandra Bugariu, Valentin Wüstholz, Maria Christakis, Peter Müller 0001 |
ASE | 3 |
| 2017 | A general framework for dynamic stub injectionabstractStub testing is a standard technique to simulate the behavior of dependencies of an application under test such as the file system. Even though existing frameworks automate the actual stub injection, testers typically have to implement manually where and when to inject stubs, in addition to the stub behavior. This paper presents a novel framework that reduces this effort. The framework provides a domain specific language to describe stub injection strategies and stub behaviors via declarative rules, as well as a tool that automatically injects stubs dynamically into binary code according to these rules. Both the domain specific language and the injection are language independent, which enables the reuse of stubs and injection strategies across applications. We implemented this framework for both unmanaged (assembly) and managed (.NET) code and used it to perform fault injection for twelve large applications, which revealed numerous crashes and bugs in error handling code. We also show how to prioritize the analysis of test failures based on a comparison of the effectiveness of stub injection rules across applications. Maria Christakis, Patrick Emmisberger, Patrice Godefroid, Peter Müller 0001 |
ICSE | 1 |
| 2017 | Failure-directed program trimmingabstractThis paper describes a new program simplification technique called program trimming that aims to improve the scalability and precision of safety checking tools. Given a program P, program trimming generates a new program P' such that P and P' are equi-safe (i.e., P' has a bug if and only if P has a bug), but P' has fewer execution paths than P. Since many program analyzers are sensitive to the number of execution paths, program trimming has the potential to improve the effectiveness of safety checking tools. Kostas Ferles, Valentin Wüstholz, Maria Christakis, Isil Dillig |
ESEC/SIGSOFT FSE | 3 |
| 2016 | Guiding dynamic symbolic execution toward unverified program executionsabstractMost techniques to detect program errors, such as testing, code reviews, and static program analysis, do not fully verify all possible executions of a program. They leave executions unverified when they do not check certain properties, fail to verify properties, or check properties under certain unsound assumptions such as the absence of arithmetic overflow. Maria Christakis, Peter Müller 0001, Valentin Wüstholz |
ICSE | 1 |
| 2016 | What developers want and need from program analysis: an empirical studyabstractProgram Analysis has been a rich and fruitful field of research for many decades, and countless high quality program analysis tools have been produced by academia. Though there are some well-known examples of tools that have found their way into routine use by practitioners, a common challenge faced by researchers is knowing how to achieve broad and lasting adoption of their tools. In an effort to understand what makes a program analyzer most attractive to developers, we mounted a multi-method investigation at Microsoft. Through interviews and surveys of developers as well as analysis of defect data, we provide insight and answers to four high level research questions that can help researchers design program analyzers meeting the needs of software developers. Maria Christakis, Christian Bird |
ASE | 1 |
| 2016 | Bounded Abstract Interpretation
Maria Christakis, Valentin Wüstholz |
SAS | 1 |
| 2016 | Integrated Environment for Diagnosing Verification Errors
Maria Christakis, K. Rustan M. Leino, Peter Müller 0001, Valentin Wüstholz |
TACAS | 1 |
| 2015 | IC-Cut: A Compositional Search Strategy for Dynamic Test Generation
Maria Christakis, Patrice Godefroid |
SPIN | 1 |
| 2015 | An Experimental Evaluation of Deliberate Unsoundness in a Static Program Analyzer
Maria Christakis, Peter Müller 0001, Valentin Wüstholz |
VMCAI | 1 |
| 2015 | Proving Memory Safety of the ANI Windows Image Parser Using Compositional Exhaustive Testing
Maria Christakis, Patrice Godefroid |
VMCAI | 1 |
| 2014 | Formalizing and Verifying a Modern Build Language
Maria Christakis, K. Rustan M. Leino, Wolfram Schulte |
FM | 1 |
| 2014 | Dynamic Test Generation with Static Fields and Initializers
Maria Christakis, Patrick Emmisberger, Peter Müller 0001 |
RV | 1 |
| 2014 | Synthesizing Parameterized Unit Tests to Detect Object Invariant Violations
Maria Christakis, Peter Müller 0001, Valentin Wüstholz |
SEFM | 1 |
| 2013 | Systematic Testing for Detecting Concurrency Errors in Erlang ProgramsabstractWe present the techniques used in Concuerror, a systematic testing tool able to find and reproduce a wide class of concurrency errors in Erlang programs. We describe how we take advantage of the characteristics of Erlang's actor model of concurrency to selectively instrument the program under test and how we subsequently employ a stateless search strategy to systematically explore the state space of process interleaving sequences triggered by unit tests. To ameliorate the problem of combinatorial explosion, we propose a novel technique for avoiding process blocks and describe how we can effectively combine it with preemption bounding, a heuristic algorithm for reducing the number of explored interleaving sequences. We also briefly discuss issues related to soundness, completeness and effectiveness of techniques used by Concuerror. Maria Christakis, Alkis Gotovos, Konstantinos Sagonas |
ICST | 1 |
| 2012 | Collaborative Verification and Testing with Explicit Assumptions
Maria Christakis, Peter Müller 0001, Valentin Wüstholz |
FM | 1 |
| 2011 | Detection of Asynchronous Message Passing Errors Using Static Analysis
Maria Christakis, Konstantinos Sagonas |
PADL | 1 |
| 2010 | Static Detection of Race Conditions in Erlang
Maria Christakis, Konstantinos Sagonas |
PADL | 1 |