VLDB 2026 Research / reviewers in the wild / expert
Michael W. Whalen
dblp:70/5189 · also Mike Whalen
· DBLP profile ↗
57ranked-venue papers
9as first author
14since 2021 · last 2026
0000-0003-3824-1435ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 50 · 8 first-author · 11 since 2021Theory of computation · 10 · 2 first-author · 6 since 2021Artificial intelligence and machine learning · 6 · 1 first-author · 2 since 2021Security and privacy · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A Neurosymbolic Approach to Natural Language Formalization and VerificationabstractAbstract Large Language Models perform well at natural language interpretation and reasoning, but their lack of formal correctness guarantees limits their adoption in regulated industries like finance and healthcare that operate under strict policies. To address this limitation, we launched Automated Reasoning checks (ARc) : a public service that (1) uses LLMs with optional human guidance to formalize natural language policies, allowing fine-grained control of the formalization process, and (2) uses inference-time autoformalization to validate logical correctness of natural language statements against those policies. ARc performs multiple redundant formalization steps at inference time, checking the formalizations for semantic equivalence. Our benchmarks show that ARc exceeds 99% soundness and achieves a near-zero false positive rate in identifying logical validity. Our approach produces auditable artifacts that substantiate the verification outcomes and can be used to improve the original text. ARc is the first commercial offering from a major cloud provider to integrate automated reasoning into a generative AI guardrail. Chenyang An, Sam Bayless, Stefano Buliani, Darion Cassel, Byron Cook, Duncan Clough, Rémi Delmas, Nafi Diallo, Ferhat Erata, Nick Feng, Dimitra Giannakopoulou, Aman Goel, Aditya Gokhale, Joe Hendrix, Victor Heorhiadi, Marc Hudak, Dejan Jovanovic, Andrew M. Kent, Benjamin Kiesl-Reiter, Jeffrey J. Kuna, Nadia Labai, Joe Lilien, Divya Raghunathan, Zvonimir Rakamaric, Niloofar Razavi, Michael Tautschnig, Ali Torkamani, Nathaniel Weir, Michael W. Whalen, Jianan Yao |
CAV (2) | 29 |
| 2025 | Formally Verified Cloud-Scale AuthorizationabstractAll critical systems must evolve to meet the needs of a growing and diversifying user base. But supporting that evolution is challenging at increasing scale: Maintainers must find a way to ensure that each change does only what is intended, and will not inadvertently change behavior for existing users. This paper presents how we addressed this challenge for the Amazon Web Services (AWS) authorization engine, invoked 1 billion times per second, by using formal verification. Over a period of four years, we built a new authorization engine, one that behaves functionally the same as its predecessor, using the verification-aware programming language Dafny. We can now confidently deploy enhancements and optimizations while maintaining the highest assurance of both correctness and backward compatibility. We deployed the new engine in 2024 without incident and customers immediately enjoyed a threefold performance improvement. The methodology we followed to build this new engine was not an off-the-shelf application of an existing verification tool, and this paper presents several key insights: 1) Rather than prove correct the existing engine, written in Java, we found it more effective to write a new engine in Dafny, a language built for verification from the ground up, and then compile the result to Java. 2) To ensure performance, debuggability, and to gain trust from stakeholders, we needed to generate readable, idiomatic Java code, essentially a transliteration of the source Dafny. 3) To ensure that the specification matches the system's actual behavior, we performed extensive differential and shadow testing throughout the development process, ultimately comparing against 1015production samples prior to deployment. Our approach demonstrates how formal verification can be effectively applied to evolve critical legacy software at scale. Aleks Chakarov, Jaco Geldenhuys, Matthew Heck, Michael Hicks 0001, Sam Huang, Georges-Axel Jaloyan, Anjali Joshi, K. Rustan M. Leino, Mikael Mayer, Sean McLaughlin, Akhilesh Mritunjai, Clément Pit-Claudel, Sorawee Porncharoenwase, Florian Rabe 0001, Marianna Rapoport, Giles Reger, Cody Roux, Neha Rungta, Robin Salkeld, Matthias Schlaipfer, Daniel Schoepe, Johanna Schwartzentruber, Serdar Tasiran, Aaron Tomb, Emina Torlak, Jean-Baptiste Tristan, Lucas G. Wagner, Michael W. Whalen, Remy Willems, Tongtong Xiang, Taejoon Byun, Joshua M. Cohen, Ruijie Fang, Junyoung Jang 0001, Jakob Rath, Syeda Hira Taqdees, Dominik Wagner 0001, Yongwei Yuan |
ICSE | 28 |
| 2025 | Producing Proofs of Unsatisfiability with Distributed Clause-Sharing SAT SolversabstractAbstract Distributed clause-sharing SAT solvers can solve challenging problems hundreds of times faster than sequential SAT solvers by sharing derived information among multiple sequential solvers. Unlike sequential solvers, however, distributed solvers have not been able to produce proofs of unsatisfiability in a scalable manner, which limits their use in critical applications. In this work, we present a method to produce unsatisfiability proofs for distributed SAT solvers by combining the partial proofs produced by each sequential solver into a single, linear proof. We first describe a simple sequential algorithm and then present a fully distributed algorithm for proof composition, which is substantially more scalable and general than prior works. Our empirical evaluation with over 1500 solver threads shows that our distributed approach allows proof composition and checking within around 3 $$\times $$ × its own (highly competitive) solving time. Dawn Michaelson, Dominik Schreiber 0001, Marijn Heule, Benjamin Kiesl-Reiter, Michael W. Whalen |
J. Autom. Reason. | 5 |
| 2024 | SMT-D: New Strategies for Portfolio-Based SMT Solving
Clark W. Barrett, Pei-Wei Chen, Byron Cook, Bruno Dutertre, Robert B. Jones, Nham Le, Andrew Reynolds 0001, Kunal Sheth, Christopher Stephens, Michael W. Whalen |
FMCAD | 10 |
| 2024 | DRAT Proofs of Unsatisfiability for SAT Modulo Monotonic TheoriesabstractAbstract Generating proofs of unsatisfiability is a valuable capability of most SAT solvers, and is an active area of research for SMT solvers. This paper introduces the first method to efficiently generate proofs of unsatisfiability specifically for an important subset of SMT: SAT Modulo Monotonic Theories (SMMT), which includes many useful finite-domain theories (e.g., bit vectors and many graph-theoretic properties) and is used in production at Amazon Web Services. Our method uses propositional definitions of the theory predicates, from which it generates compact Horn approximations of the definitions, which lead to efficient DRAT proofs, leveraging the large investment the SAT community has made in DRAT. In experiments on practical SMMT problems, our proof generation overhead is minimal (7.41% geometric mean slowdown, 28.8% worst-case), and we can generate and check proofs for many problems that were previously intractable. Nick Feng, Alan J. Hu, Sam Bayless, Syed M. Iqbal, Patrick Trentin, Michael W. Whalen, Lee Pike, John D. Backes |
TACAS (1) | 6 |
| 2023 | Structural Test Input Generation for 3-Address Code Coverage Using Path-Merged Symbolic ExecutionabstractTest input generation is one of the key applications of symbolic execution (SE). However, being a path-sensitive technique, SE often faces path explosion even when creating a branch-adequate test suite. Path-merging symbolic execution (PM-SE) alleviates the path explosion problem by summarizing regions of code into disjunctive constraints, thus traversing at once a set of paths with the same prefixes. Previous work has shown that PM-SE can reduce run-time up to 38%, though these improvements can be impaired if the summarized code results in complex constraints or introduces additional symbols that increase the number of branching points in the later execution.Considering these trade-offs, examining the ability of PM-SE to generate branch-adequate test inputs is an open research problem. This paper investigates it by developing a technique that extracts structural coverage-related queries from disjoint constraints. Using this approach, we extend PM-SE to generate branch-adequate test inputs.Experiments compare the effectiveness and efficiency of test input generation by SE and PM-SE techniques. Results show that those techniques are complementary. For some programs, PM-SE yields faster coverage, with fewer generated tests, while for others, SE performs better. In addition, each technique covers branches that the other fails to discover. Soha Hussein, Stephen McCamant, Elena Sherman, Vaibhav Sharma 0001, Michael W. Whalen |
AST | 5 |
| 2023 | Automated Analyses of IOT Event Monitoring SystemsabstractAbstract AWS IoT Events is an AWS service that makes it easy to respond to events from IoT sensors and applications.Detector modelsin AWS IoT Events enable customers to monitor their equipment or device fleets for failures or changes in operation and trigger actions when such events occur. If these models are incorrect, they may become out-of-sync with the actual state of the equipment causing customers to be unable to respond to events occurring on it. Working backwards from common mistakes made when creating detector models, we have created a set of automated analyzers that allow customers to prove their models are free from six common mistakes. Our analyzers have been running in the AWS IoT Events production service since December 2021. Our analyzers check six correctness properties in the production service in real time. 93% of customers of AWS IoT Events have run our analyzers without needing to have any knowledge of them. Our analyzers have reported property violations in 22% of submitted detector models in the production service. Andrew Apicelli, Sam Bayless, Ankush Das, Andrew Gacek, Dhiva Jaganathan, Saswat Padhi, Vaibhav Sharma 0001, Michael W. Whalen, Raveesh Yadav |
CAV (1) | 8 |
| 2023 | Proofs for Incremental SAT with Inprocessing
Benjamin Kiesl-Reiter, Michael W. Whalen |
FMCAD | 2 |
| 2023 | Java Ranger: Supporting String and Array Operations in Java Ranger (Competition Contribution)abstractAbstract Java Ranger is a path-merging tool for Java Programs. It identifies branching regions of code and summarizes them by generating a disjunctive logical constraint that describes the behavior of the code region. Previously, Java Ranger showed that a reduction of 70% of execution paths is possible when used to merge branching regions of code that support numeric constraints. In this paper, we describe the support of two additional features since participation in SV-COMP 2020: symbolic array and symbolic string operations. Finally, we present a preliminary evaluation of the effect of the structure of the disjunctive constraint on the solver’s performance. Results suggest that certain constraint structures can speed up the performance of Java Ranger. Soha Hussein, Qiuchen Yan, Stephen McCamant, Vaibhav Sharma 0001, Michael W. Whalen |
TACAS (2) | 5 |
| 2023 | Unsatisfiability Proofs for Distributed Clause-Sharing SAT SolversabstractAbstract Distributed clause-sharing SAT solvers can solve problems up to one hundred times faster than sequential SAT solvers by sharing derived information among multiple sequential solvers working on the same problem. Unlike sequential solvers, however, distributed solvers have not been able to produce proofs of unsatisfiability in a scalable manner, which has limited their use in critical applications. In this paper, we present a method to produce unsatisfiability proofs for distributed SAT solvers by combining the partial proofs produced by each sequential solver into a single, linear proof. Our approach is more scalable and general than previous explorations for parallel clause-sharing solvers, allowing use on distributed solvers without shared memory. We propose a simple sequential algorithm as well as a fully distributed algorithm for proof composition. Our empirical evaluation shows that for large-scale distributed solvers (100 nodes of 16 cores each), our distributed approach allows reliable proof composition and checking with reasonable overhead. We analyze the overhead and discuss how and where future efforts may further improve performance. Dawn Michaelson, Dominik Schreiber 0001, Marijn Heule, Benjamin Kiesl-Reiter, Michael W. Whalen |
TACAS (1) | 5 |
| 2022 | Migrating Solver State
Armin Biere, Md. Solimul Chowdhury, Marijn Heule, Benjamin Kiesl-Reiter, Michael W. Whalen |
SAT | 5 |
| 2021 | From Partial to Global Assume-Guarantee Contracts: Compositional Realizability Analysis in FRET
Anastasia Mavridou, Andreas Katis, Dimitra Giannakopoulou, David Kooi, Thomas Pressburger, Michael W. Whalen |
FM | 6 |
| 2021 | Composition of Fault Forests
Danielle Stewart, Michael W. Whalen, Mats P. E. Heimdahl, Darren D. Cofer |
SAFECOMP | 2 |
| 2021 | Inductive Validity CoresabstractSymbolic model checkers can construct proofs of properties over highly complex models. However, the results reported by the tool when a proof succeeds do not generally provide much insight to the user. It is often useful for users to have traceability information related to the proof: which portions of the model were necessary to construct it. This traceability information can be used to diagnose a variety of modeling problems such as overconstrained axioms and underconstrained properties, measure completeness of a set of requirements over a model, and assist with design optimization given a set of requirements for an existing or synthesized implementation. In this paper, we present a comprehensive treatment of a suite of algorithms to compute inductive validity cores (IVCs), minimal sets of model elements necessary to construct inductive proofs of safety properties for sequential systems. The algorithms are based on the UNSAT core support built into current SMT solvers and novel encodings of the inductive problem to generate approximate and guaranteed minimal inductive validity cores as well as all inductive validity cores. We demonstrate that our algorithms are correct, describe their implementation in the JKind model checker for Lustre models, and present several use cases for the algorithms. We then present a substantial experiment in which we benchmark the efficiency and efficacy of the algorithms. Elaheh Ghassabani, Michael W. Whalen, Andrew Gacek, Mats P. E. Heimdahl |
IEEE Trans. Software Eng. | 2 |
| 2020 | Synthesis of Infinite-State Systems with Random BehaviorabstractDiversity in the exhibited behavior of a given system is a desirable characteristic in a variety of application contexts. Synthesis of conformant implementations often proceeds by discovering witnessing Skolem functions, which are traditionally deterministic. In this paper, we present a novel Skolem extraction algorithm to enable synthesis of witnesses with random behavior and demonstrate its applicability in the context of reactive systems. The synthesized solutions are guaranteed by design to meet the given specification, while exhibiting a high degree of diversity in their responses to external stimuli. Case studies demonstrate how our proposed framework unveils a novel application of synthesis in model-based fuzz testing to generate fuzzers of competitive performance to general-purpose alternatives, as well as the practical utility of synthesized controllers in robot motion planning problems. Andreas Katis, Grigory Fedyukovich, Jeffrey Chen, David A. Greve, Sanjai Rayadurgam, Michael W. Whalen |
ASE | 6 |
| 2020 | Java Ranger: statically summarizing regions for efficient symbolic execution of JavaabstractMerging execution paths is a powerful technique for reducing path explosion in symbolic execution. One approach, introduced and dubbed “veritesting” by Avgerinos et al., works by translating abounded control flow region into a single constraint. This approach is a convenient way to achieve path merging as a modification to a pre-existing single-path symbolic execution engine. Previous work evaluated this approach for symbolic execution of binary code, but different design considerations apply when building tools for other languages. In this paper, we extend the previous approach for symbolic execution of Java. Vaibhav Sharma 0001, Soha Hussein, Michael W. Whalen, Stephen McCamant, Willem Visser |
ESEC/SIGSOFT FSE | 3 |
| 2020 | Java Ranger at SV-COMP 2020 (Competition Contribution)abstractAbstract Path-merging is a known technique for accelerating symbolic execution. One technique, named “veritesting” by Avgerinos et al. uses summaries of bounded control-flow regions and has been shown to accelerate symbolic execution of binary code. But, when applied to symbolic execution of Java code, veritesting needs to be extended to summarize dynamically dispatched methods and exceptional control-flow. Such an extension of veritesting has been implemented in Java Ranger by implementing as an extension of Symbolic PathFinder, a symbolic executor for Java bytecode. In this paper, we briefly describe the architecture of Java Ranger and describe its setup for SV-COMP 2020. Vaibhav Sharma 0001, Soha Hussein, Michael W. Whalen, Stephen McCamant, Willem Visser |
TACAS (2) | 3 |
| 2020 | Introduction to the special issue on software engineering in practiceabstractThe ever increasing complexity of software and rapidly changing development environments continues to drive the evolution of new technologies, techniques, and tools. This special issue, Software Engineering in Practice, provides the software engineering community with a valuable collection of current high-quality research articles that explore topics driven by real problems in industry. The inspiration for this special issue has drawn upon the ICSE Software Engineering in Practice Track (ICSE SEIP 2019)1, part of the Industry Program at the 41st International Conference on Software Engineering2; it builds upon the success of the previous special issue with the same theme.1 The ICSE SEIP Track provides a premier venue for researchers and practitioners to discuss innovations and solutions to concrete software engineering problems. The guest coeditor team for this special issue is an international collaboration involving the co-organizers of the ICSE SEIP 2019 Track, Helen Sharp and Michael Whalen, and two editors of the Journal of Software: Practice and Experience3 (JSPE), Judith Bishop and Kendra M. L. Cooper. The Call for Papers was designed to encourage submissions that presented novel and innovative ideas that broadly spanned the software engineering discipline; ideas that provided rigorously validated solutions for real problems encountered by practitioners. In order to promote an inclusive environment, the call was broadly disseminated as an open call; it was advertised on the JSPE and the ICSE SEIP 2019 websites, established software engineering newsgroups (eg, SEWORLD) and conference announcement sites (eg, WikiCFP), in addition to numerous professional and social media platforms. The call required submissions be original manuscripts that had not been previously published and were also not under consideration for publication elsewhere. Submissions of research article, survey papers, short communication, and extended conference papers were welcome; extended conference papers were required to include at least 30% additional novel contributions. The response from the software engineering community was enthusiastic: the special issue received 25 manuscripts submitted by authors from 13 countries. Submissions featured international collaborations from researchers in academia and industry, cases studies from industry, and the use of open source data sets and systems provided by the broader community. The submissions were reviewed according to the JSPE standards, with a goal of publishing the online version of the articles in a timely fashion. Ultimately, six articles were selected for the special issue. Overviews of these accepted manuscripts are presented below, organized into two groups. Novel contributions in the area of intelligent code analysis are explored in several of the papers in the special issue. Kim et al present an automated code analysis approach based on machine learning to recommend an appropriate level for logging runtime events. Rong et al present an automated code analysis approach based on templates and rules to generate documentation in a timely manner within agile DevOps environments. In addition, Huang et al present an automated code analysis approach to identify the need for header comments with the goal of supporting the long-term evolution of the product. Several of the papers in the special issue are related to the broader topic of reuse, from different perspectives. Weir et al present an on-going lightweight security training program that has the potential to be reused by a wide range of development teams; the research has a grounded theory foundation. Koziolek et al present a reference architecture to further the standardization and automation of IoT integration. Hu et al present a data mining-based approach to search and filter existing code samples with the goal of establishing high quality software repositories. We would like to extend our warmest thanks to all the authors who submitted their manuscripts, the anonymous reviewers who provided timely, high-quality review comments in their generous service to the community, and the JSPE editorial board and personnel. Judith Bishop, Kendra M. L. Cooper, Helen Sharp, Michael W. Whalen |
Softw. Pract. Exp. | 4 |
| 2020 | Ensuring the Observability of Structural Test ObligationsabstractTest adequacy criteria are widely used to guide test creation. However, many of these criteria are sensitive to statement structure or the choice of test oracle. This is because such criteria ensure that execution reaches the element of interest, but impose no constraints on the execution path after this point. We are not guaranteed to observe a failure just because a fault is triggered. To address this issue, we have proposed the concept of observability-an extension to coverage criteria based on Boolean expressions that combines the obligations of a host criterion with an additional path condition that increases the likelihood that a fault encountered will propagate to a monitored variable. Our study, conducted over five industrial systems and an additional forty open-source systems, has revealed that adding observability tends to improve efficacy over satisfaction of the traditional criteria, with average improvements of 125.98 percent in mutation detection with the common output-only test oracle and per-model improvements of up to 1760.52 percent. Ultimately, there is merit to our hypothesis-observability reduces sensitivity to the choice of oracle and to the program structure. Gregory Gay 0002, Michael W. Whalen |
IEEE Trans. Software Eng. | 3 |
| 2018 | The JKind Model CheckerabstractJKind is an open-source industrial model checker developed by Rockwell Collins and the University of Minnesota. JKind uses multiple parallel engines to prove or falsify safety properties of infinite state models. It is portable, easy to install, performance competitive with other state-of-the-art model checkers, and has features designed to improve the results presented to users: inductive validity cores for proofs and counterexample smoothing for test-case generation. It serves as the back-end for various industrial applications. Andrew Gacek, John D. Backes, Michael W. Whalen, Lucas G. Wagner, Elaheh Ghassabani |
CAV (2) | 3 |
| 2018 | Online Enumeration of All Minimal Inductive Validity Cores
Jaroslav Bendík, Elaheh Ghassabani, Michael W. Whalen, Ivana Cerná |
SEFM | 3 |
| 2018 | Validity-Guided Synthesis of Reactive Systems from Assume-Guarantee Contracts
Andreas Katis, Grigory Fedyukovich, Huajun Guo, Andrew Gacek, John D. Backes, Arie Gurfinkel, Michael W. Whalen |
TACAS (2) | 7 |
| 2018 | Guest editorial: advanced topics in automated software engineering
Lars Grunske, Michael W. Whalen |
Autom. Softw. Eng. | 2 |
| 2017 | Efficient generation of all minimal inductive validity coresabstractSymbolic model checkers can construct proofs of safety properties over complex models, but when a proof succeeds, the results do not generally provide much insight to the user. Recently, proof cores (alternately, for inductive model checkers, Inductive Validity Cores (IVCs)) were introduced to trace a property to a minimal set of model elements necessary for proof. Minimal IVCs facilitate several engineering tasks, including performing traceability and analyzing requirements completeness, that usually rely on the minimality of IVCs. However, existing algorithms for generating an IVC are either expensive or only able to find an approximately minimal IVC. Besides minimality, computing all minimal IVCs of a given property is an interesting problem that provides several useful analyses, including regression analysis for testing/proof, determination of the minimum (as opposed to minimal) number of model elements necessary for proof, the diversity examination of model elements leading to proof, and analyzing fault tolerance. This paper proposes an efficient method for finding all minimal IVCs of a given property proving its correctness and completeness. We benchmark our algorithm against existing IVC-generating algorithms and show, in many cases, the cost of finding all minimal IVCs by our technique is similar to finding a single minimal IVC using existing algorithms. Elaheh Ghassabani, Michael W. Whalen, Andrew Gacek |
FMCAD | 2 |
| 2017 | Proof-based coverage metrics for formal verificationabstractWhen using formal verification on critical software, an important question involves whether we have we specified enough properties for a given implementation model. To address this question, coverage metrics for property-based formal verification have been proposed. Existing metrics are usually based on mutation, where the implementation model is repeatedly modified and re-analyzed to determine whether mutant models are "killed" by the property set. These metrics tend to be very expensive to compute, as they involve many additional verification problems. This paper proposes an alternate family of metrics that can be computed using the recently introduced idea of Inductive Validity Cores (IVCs). IVCs determine a minimal set of model elements necessary to establish a proof. One of the proposed metrics is both rigorous and substantially cheaper to compute than mutation-based metrics. In addition, unlike the mutation-based techniques, the design elements marked as necessary by the metric are guaranteed to preserve provability. We demonstrate the metrics on a large corpus of examples. Elaheh Ghassabani, Andrew Gacek, Michael W. Whalen, Mats P. E. Heimdahl, Lucas G. Wagner |
ASE | 3 |
| 2016 | Complete Traceability for Requirements in Satisfaction ArgumentsabstractWhen establishing associations, known as tracelinks, between a requirement and the artifacts that lead to itssatisfaction, it is essential to know what the links mean. Whileresearch into this type of traceability-what we call RequirementsSatisfaction Traceability-has been an active research area forsome time, none of the literature discusses the fact that thereare often multiple ways in which a requirement can be satisfied, i.e., there are multiple satisfaction arguments. The distinctionbetween establishing a single satisfaction argument between arequirement and its implementation (tracing one way the requirement is implemented) vs. tracing all satisfaction arguments, and the possible ramifications for how the trace links can beused in analysis, has not been well studied. We examine how thisdistinction changes the way traceability is perceived, established, maintained, and used. In this RE@Next! paper, we introduce anddiscuss the notion of "complete" traceability, which considersall trace links between the requirements and the artifacts thatwork to satisfy the requirements, and contrast it with the partialtraceability common in practice. Anitha Murugesan, Michael W. Whalen, Elaheh Ghassabani, Mats P. E. Heimdahl |
RE | 2 |
| 2016 | Efficient generation of inductive validity cores for safety propertiesabstractSymbolic model checkers can construct proofs of properties over very complex models. However, the results reported by the tool when a proof succeeds do not generally provide much insight to the user. It is often useful for users to have traceability information related to the proof: which portions of the model were necessary to construct it. This traceability information can be used to diagnose a variety of modeling problems such as overconstrained axioms and underconstrained properties, and can also be used to measure completeness of a set of requirements over a model. In this paper, we present a new algorithm to efficiently compute the em inductive validity core (IVC) within a model necessary for inductive proofs of safety properties for sequential systems. The algorithm is based on the UNSAT core support built into current SMT solvers and a novel encoding of the inductive problem to try to generate a minimal inductive validity core. We prove our algorithm is correct, and describe its implementation in the JKind model checker for Lustre models. We then present an experiment in which we benchmark the algorithm in terms of speed, diversity of produced cores, and minimality, with promising results. Elaheh Ghassabani, Andrew Gacek, Michael W. Whalen |
SIGSOFT FSE | 3 |
| 2016 | Reasoning About Algebraic Data Types with Abstractions
Tuan-Hung Pham, Andrew Gacek, Michael W. Whalen |
J. Autom. Reason. | 3 |
| 2016 | The Effect of Program and Model Structure on the Effectiveness of MC/DC Test Adequacy CoverageabstractTest adequacy metrics defined over the structure of a program, such as Modified Condition and Decision Coverage (MC/DC), are used to assess testing efforts. However, MC/DC can be “cheated” by restructuring a program to make it easier to achieve the desired coverage. This is concerning, given the importance of MC/DC in assessing the adequacy of test suites for critical systems domains. In this work, we have explored the impact of implementation structure on the efficacy of test suites satisfying the MC/DC criterion using four real-world avionics systems. Our results demonstrate that test suites achieving MC/DC over implementations with structurally complex Boolean expressions are generally larger and more effective than test suites achieving MC/DC over functionally equivalent, but structurally simpler, implementations. Additionally, we found that test suites generated over simpler implementations achieve significantly lower MC/DC and fault-finding effectiveness when applied to complex implementations, whereas test suites generated over the complex implementation still achieve high MC/DC and attain high fault finding over the simpler implementation. By measuring MC/DC over simple implementations, we can significantly reduce the cost of testing, but in doing so, we also reduce the effectiveness of the testing process. Thus, developers have an economic incentive to “cheat” the MC/DC criterion, but this cheating leads to negative consequences. Accordingly, we recommend that organizations require MC/DC over a structurally complex implementation for testing purposes to avoid these consequences. Gregory Gay 0002, Ajitha Rajan, Matthew Staats, Michael W. Whalen, Mats P. E. Heimdahl |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2015 | A Flexible and Non-intrusive Approach for Computing Complex Structural Coverage MetricsabstractSoftware analysis tools and techniques often leverage structural code coverage information to reason about the dynamic behavior of software. Existing techniques instrument the code with the required structural obligations and then monitor the execution of the compiled code to report coverage. Instrumentation based approaches often incur considerable runtime overhead for complex structural coverage metrics such as Modified Condition/Decision (MC/DC). Code instrumentation, in general, has to be approached with great care to ensure it does not modify the behavior of the original code. Furthermore, instrumented code cannot be used in conjunction with other analyses that reason about the structure and semantics of the code under test. In this work, we introduce a non-intrusive preprocessing approach for computing structural coverage information. It uses a static partial evaluation of the decisions in the source code and a source-to-bytecode mapping to generate the information necessary to efficiently track structural coverage metrics during execution. Our technique is flexible; the results of the preprocessing can be used by a variety of coverage-driven software analysis tasks, including automated analyses that are not possible for instrumented code. Experimental results in the context of symbolic execution show the efficiency and flexibility of our non- intrusive approach for computing code coverage information. Michael W. Whalen, Suzette Person, Neha Rungta, Matthew Staats, Daniela Grijincu |
ICSE (1) | 1 |
| 2015 | Efficient observability-based test generation by dynamic symbolic executionabstractStructural coverage metrics have been widely used to measure test suite adequacy as well as to generate test cases. In previous investigations, we have found that the fault-finding effectiveness of tests satisfying structural coverage criteria is highly dependent on program syntax - even if the faulty code is exercised, its effect may not be observable at the output. To address these problems, observability-based coverage metrics have been defined. Specifically, Observable MC/DC (OMC/DC) is a criterion that appears to be both more effective at detecting faults and more robust to program restructuring than MC/DC. Traditional counterexample-based test generation for OMC/DC, however, can be infeasible on large systems. In this study, we propose an incremental test generation approach that combines the notion of observability with dynamic symbolic execution. We evaluated the efficiency and effectiveness of our approach using seven systems from the avionics and medical device domains. Our results show that the incremental approach requires much lower generation time, while achieving even higher fault finding effectiveness compared with regular OMC/DC generation. Dongjiang You, Sanjai Rayadurgam, Michael W. Whalen, Mats P. E. Heimdahl, Gregory Gay 0002 |
ISSRE | 3 |
| 2015 | Hierarchical multi-formalism proofs of cyber-physical systemsabstractTo manage design complexity and provide verification tractability, models of complex cyber-physical systems are typically hierarchically organized into multiple abstraction layers. High-level analysis explores interactions of the system with its physical environment, while embedded software is developed separately based on derived requirements. This separation of low-level and high-level analysis also gives hope to scalability, because we are able to use tools that are appropriate for each level. When attempting to perform compositional reasoning in such an environment, care must be taken to ensure that results from one tool can be used in another to avoid errors due to “mismatches” in the semantics of the underlying formalisms. This paper proposes a formal approach for linking high-level continuous time models and lower-level discrete time models. Michael W. Whalen, Sanjai Rayadurgam, Elaheh Ghassabani, Anitha Murugesan, Oleg Sokolsky, Mats P. E. Heimdahl, Insup Lee 0001 |
MEMOCODE | 1 |
| 2015 | The Risks of Coverage-Directed Test Case GenerationabstractA number of structural coverage criteria have been proposed to measure the adequacy of testing efforts. In the avionics and other critical systems domains, test suites satisfying structural coverage criteria are mandated by standards. With the advent of powerful automated test generation tools, it is tempting to simply generate test inputs to satisfy these structural coverage criteria. However, while techniques to produce coverage-providing tests are well established, the effectiveness of such approaches in terms of fault detection ability has not been adequately studied. In this work, we evaluate the effectiveness of test suites generated to satisfy four coverage criteria through counterexample-based test generation and a random generation approach-where tests are randomly generated until coverage is achieved-contrasted against purely random test suites of equal size. Our results yield three key conclusions. First, coverage criteria satisfaction alone can be a poor indication of fault finding effectiveness, with inconsistent results between the seven case examples (and random test suites of equal size often providing similar-or even higher-levels of fault finding). Second, the use of structural coverage as a supplement-rather than a target-for test generation can have a positive impact, with random test suites reduced to a coverage-providing subset detecting up to 13.5 percent more faults than test suites generated specifically to achieve coverage. Finally, Observable MC/DC, a criterion designed to account for program structure and the selection of the test oracle, can-in part-address the failings of traditional structural coverage criteria, allowing for the generation of test suites achieving higher levels of fault detection than random test suites of equal size. These observations point to risks inherent in the increase in test automation in critical systems, and the need for more research in how coverage criteria, test generation approaches, the test oracle used, and system structure jointly influence test effectiveness. Gregory Gay 0002, Matthew Staats, Michael W. Whalen, Mats P. E. Heimdahl |
IEEE Trans. Software Eng. | 3 |
| 2015 | Automated Oracle Data Selection SupportabstractThe choice of test oracle-the artifact that determines whether an application under test executes correctly-can significantly impact the effectiveness of the testing process. However, despite the prevalence of tools that support test input selection, little work exists for supporting oracle creation. We propose a method of supporting test oracle creation that automatically selects the oracle data-the set of variables monitored during testing-for expected value test oracles. This approach is based on the use of mutation analysis to rank variables in terms of fault-finding effectiveness, thus automating the selection of the oracle data. Experimental results obtained by employing our method over six industrial systems (while varying test input types and the number of generated mutants) indicate that our method-when paired with test inputs generated either at random or to satisfy specific structural coverage criteria-may be a cost-effective approach for producing small, effective oracle data sets, with fault finding improvements over current industrial best practice of up to 1,435 percent observed (with typical improvements of up to 50 percent). Gregory Gay 0002, Matthew Staats, Michael W. Whalen, Mats P. E. Heimdahl |
IEEE Trans. Software Eng. | 3 |
| 2014 | Structuring simulink models for verification and reuseabstractModel-based development (MBD) tool suites such as Simulink and Stateflow offer powerful tools for design, development, and analysis of models. These models can be used for several purposes: for code generation, for prototyping, as descriptions of an environment (plant) that will be controlled by software, as oracles for a testing process, and many other aspects of software development. In addition, a goal of model-based development is to develop reusable models that can be easily managed in a version-controlled continuous integration process. Michael W. Whalen, Anitha Murugesan, Sanjai Rayadurgam, Mats P. E. Heimdahl |
MiSE | 1 |
| 2013 | Observable modified Condition/Decision coverageabstractIn many critical systems domains, test suite adequacy is currently measured using structural coverage metrics over the source code. Of particular interest is the modified condition/decision coverage (MC/DC) criterion required for, e.g., critical avionics systems. In previous investigations we have found that the efficacy of such test suites is highly dependent on the structure of the program under test and the choice of variables monitored by the oracle. MC/DC adequate tests would frequently exercise faulty code, but the effects of the faults would not propagate to the monitored oracle variables. In this report, we combine the MC/DC coverage metric with a notion of observability that helps ensure that the result of a fault encountered when covering a structural obligation propagates to a monitored variable; we term this new coverage criterion Observable MC/DC (OMC/DC). We hypothesize this path requirement will make structural coverage metrics 1.) more effective at revealing faults, 2.) more robust to changes in program structure, and 3.) more robust to the choice of variables monitored. We assess the efficacy and sensitivity to program structure of OMC/DC as compared to masking MC/DC using four subsystems from the civil avionics domain and the control logic of a microwave. We have found that test suites satisfying OMC/DC are significantly more effective than test suites satisfying MC/DC, revealing up to 88% more faults, and are less sensitive to program structure and the choice of monitored variables. Michael W. Whalen, Gregory Gay 0002, Dongjiang You, Mats P. E. Heimdahl, Matthew Staats |
ICSE | 1 |
| 2013 | RADA: a tool for reasoning about algebraic data types with abstractionsabstractWe present RADA, a portable, scalable tool for reasoning about formulas containing algebraic data types using catamorphism (fold) functions. It can work as a back-end for reasoning about recursive programs that manipulate algebraic types. RADA operates by successively unrolling catamorphisms and uses either CVC4 and Z3 as reasoning engines. We have used RADA for reasoning about functional implementations of complex data structures and to reason about guard applications that determine whether XML messages should be allowed to cross network security domains. Promising experimental results demonstrate that RADA can be used in several practical contexts. Tuan-Hung Pham, Michael W. Whalen |
ESEC/SIGSOFT FSE | 2 |
| 2012 | On the Danger of Coverage Directed Test Case Generation
Matthew Staats, Gregory Gay 0002, Michael W. Whalen, Mats P. E. Heimdahl |
FASE | 3 |
| 2012 | The Guardol Language and Verification System
David S. Hardin, Konrad Slind, Michael W. Whalen, Tuan-Hung Pham |
TACAS | 3 |
| 2012 | The hidden models of model checking
Willem Visser, Matthew B. Dwyer, Michael W. Whalen |
Softw. Syst. Model. | 3 |
| 2011 | Programs, tests, and oracles: the foundations of testing revisitedabstractIn previous decades, researchers have explored the formal foundations of program testing. By exploring the foundations of testing largely separate from any specific method of testing, these researchers provided a general discussion of the testing process, including the goals, the underlying problems, and the limitations of testing. Unfortunately, a common, rigorous foundation has not been widely adopted in empirical software testing research, making it difficult to generalize and compare empirical research. Matthew Staats, Michael W. Whalen, Mats P. E. Heimdahl |
ICSE | 2 |
| 2011 | Better testing through oracle selectionabstractIn software testing, the test oracle determines if the application under test has performed an execution correctly. In current testing practice and research, significant effort and thought is placed on selecting test inputs, with the selection of test oracles largely neglected. Here, we argue that improvements to the testing process can be made by considering the problem of oracle selection. In particular, we argue that selecting the test oracle and test inputs together to complement one another may yield improvements testing effectiveness. We illustrate this using an example and present selected results from an ongoing study demonstrating the relationship between test suite selection, oracle selection, and fault finding. Matthew Staats, Michael W. Whalen, Mats P. E. Heimdahl |
ICSE | 2 |
| 2011 | Polyglot: modeling and analysis for multiple Statechart formalismsabstractIn large programs such as NASA Exploration, multiple systems that interact via safety-critical protocols are already designed with different Statechart variants. To verify these safety-critical systems, a unified framework is needed based on a formal semantics that captures the variants of Statecharts. We describe Polyglot, a unified framework for the analysis of models described using multiple State-chart formalisms. In this framework, Statechart models are translated into Java and analyzed using pluggable semantics for different variants operating in a polymorphic execution environment. The framework has been built on the basis of a parametric formal semantics that captures the common core of Statecharts with extensions for different variants, and addresses previous limitations. Polyglot has been integrated with the Java Pathfinder verification tool-set, providing analysis and test-case generation capabilities. We describe the application of this unified framework to the analysis of NASA/JPL's MER Arbiter whose interacting components were modeled using multiple Statechart formalisms. Daniel Balasubramanian, Corina Pasareanu, Michael W. Whalen, Gabor Karsai, Michael R. Lowry |
ISSTA | 3 |
| 2009 | Development of Security Software: A High Assurance Methodology
David S. Hardin, T. Douglas Hiratzka, D. Randolph Johnson, Lucas G. Wagner, Michael W. Whalen |
ICFEM | 5 |
| 2008 | Requirements Coverage as an Adequacy Measure for Conformance Testing
Ajitha Rajan, Michael W. Whalen, Matthew Staats, Mats P. E. Heimdahl |
ICFEM | 2 |
| 2008 | The effect of program and model structure on mc/dc test adequacy coverageabstractIn avionics and other critical systems domains, adequacy of test suites is currently measured using the MC/DC metric on source code (or on a model in model-based development). We believe that the rigor of the MC/DC metric is highly sensitive to the structure of the implementation and can therefore be misleading as a test adequacy criterion. We investigate this hypothesis by empirically studying the effect of program structure on MC/DC coverage. Ajitha Rajan, Michael W. Whalen, Mats P. E. Heimdahl |
ICSE | 2 |
| 2007 | Integration of Formal Analysis into a Model-Based Software Development Process
Michael W. Whalen, Darren D. Cofer, Steven P. Miller, Bruce H. Krogh, Walter Storm |
FMICS | 1 |
| 2006 | Coverage metrics for requirements-based testingabstractIn black-box testing, one is interested in creating a suite of tests from requirements that adequately exercise the behavior of a software system without regard to the internal structure of the implementation. In current practice, the adequacy of black box test suites is inferred by examining coverage on an executable artifact, either source code or a software model.In this paper, we define structural coverage metrics directly on high-level formal software requirements. These metrics provide objective, implementation-independent measures of how well a black-box test suite exercises a set of requirements. We focus on structural coverage criteria on requirements formalized as LTL properties and discuss how they can be adapted to measure finite test cases. These criteria can also be used to automatically generate a requirements-based test suite. Unlike model or code-derived test cases, these tests are immediately traceable to high-level requirements. To assess the practicality of our approach, we apply it on a realistic example from the avionics domain. Michael W. Whalen, Ajitha Rajan, Mats P. E. Heimdahl, Steven P. Miller |
ISSTA | 1 |
| 2006 | Proving the shalls
Steven P. Miller, Alan C. Tribble, Michael W. Whalen, Mats P. E. Heimdahl |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2005 | Deviation Analysis: A New Use of Model Checking
Mats P. E. Heimdahl, Yunja Choi, Michael W. Whalen |
Autom. Softw. Eng. | 3 |
| 2003 | NIMBUS: A Tool for Specification Centered DevelopmentabstractAssurance that a formal specification (system specification or software specification) possesses desired properties can be achieved through (1) manual inspections, (2) formal verification of the desired properties, or (3) simulation and testing of the specification. To achieve the high level of confidence in the correctness required in a safety-critical system, all three approaches must be used in concert. We have developed an specification language, called RSML/sup -e/, and an environment, called NIMBUS, which provides support for all these activities. The three V&V techniques fill complementary roles within the validation and verification process. Manual inspections and visualization provide the specification team, customers, and regulatory representatives the means to informally verify that the behavior described formally matches the desired "real world" behavior of the system. RSML/sup -e/ is a fully formal, synchronous, data-flow language. NIMBUS supports large-scale, distributed simulation of specifications through communications over Microsoft's distributed COM or OMG's CORBA. Mats P. E. Heimdahl, Michael W. Whalen, Jeffrey M. Thompson |
RE | 2 |
| 2002 | AutoBayes/CC - Combining Program Synthesis with Automatic Code Certification - System Description
Michael W. Whalen, Johann Schumann, Bernd Fischer 0002 |
CADE | 1 |
| 2002 | Deviation Analysis Through Model CheckingabstractInaccuracies, or deviations, in the measurements of monitored variables in a control system are facts of life that control software must accommodate $the software is expected to continue functioning correctly in the face of an expected range of deviations in the inputs. Deviation analysis can be used to determine how a software specification will behave in the face of such deviations in data from the environment. The idea is to describe the correct values of an environmental quantity; along with a range of potential deviations, and then determine the effects on the outputs of the system. The analyst can then check whether the behavior of the software is acceptable with respect to these deviations. In this report we wish to propose a new approach to deviation analysis using model checking techniques. This approach allows for more precise analysis than previous techniques, and refocuses deviation analysis from an exploratory analysis to a verification task, allowing us to investigate a different range of questions regarding a system's response to deviations. Mats P. E. Heimdahl, Yunja Choi, Michael W. Whalen |
ASE | 3 |
| 2000 | High-integrity code generation for state-based formalismsabstractWe are attempting to create a translator for a formal state-based specification language (RSML-ε) that is suitable for use in safety-critical systems. For such a translator, there are two main concerns: the generated code must be shown to be semantically equivalent to the specification, and it must be fast enough to be used in the intended target environment. We address the first concern by providing a formal proof of the translation, and by keeping the implementation of the tool as simple as possible. The second concern is addressed through a variety of methods: (1) decomposing a specification into parallel subtasks, (2) providing provably-correct optimizations, and (3) making worst-case performance guarantees on the generated code. Michael W. Whalen |
ICSE | 1 |
| 1999 | An Approach to Automatic Code Generation for Safety-Critical SystemsabstractAutomated translation, or code generation, of a formal requirements model to production code can alleviate many of the problems associated with design and implementation. In this paper, we outline the requirements of such code generation to obtain a high level of confidence in the correctness of the translation process. We then describe a translator for a state-based modeling language called RSML (Requirements Specification Modeling Language) that largely meets these requirements. Michael W. Whalen, Mats P. E. Heimdahl |
ASE | 1 |
| 1995 | Handprinted word recognition on a NIST data set
Paul D. Gader, Michael W. Whalen, Margaret Ganzberger, Daniel J. Hepp |
Mach. Vis. Appl. | 2 |
| 1991 | Recognition of handwritten digits using template and model matching
Paul D. Gader, Brian Forester, Margaret Ganzberger, Andrew M. Gillies, Brian T. Mitchell, Michael W. Whalen, Todd Yocum |
Pattern Recognit. | 6 |