Learning regular sets from queries and counterexamples
Information and Computation
Inference of finite automata using homing sequences
Information and Computation
Symbolic execution and program testing
Communications of the ACM
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Learning to divide and conquer: applying the L* algorithm to automate assume-guarantee reasoning
Formal Methods in System Design
Three optimizations for Assume---Guarantee reasoning with L*
Formal Methods in System Design
Learning Minimal Separating DFA's for Compositional Verification
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Interface Generation and Compositional Verification in JavaPathfinder
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Refining interface alphabets for compositional verification
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Automated assumption generation for compositional verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Line-up: a complete and automatic linearizability checker
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Generating models of infinite-state communication protocols using regular inference with abstraction
ICTSS'10 Proceedings of the 22nd IFIP WG 6.1 international conference on Testing software and systems
Automata learning with automated alphabet abstraction refinement
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
MACE: model-inference-assisted concolic exploration for protocol and vulnerability discovery
SEC'11 Proceedings of the 20th USENIX conference on Security
Underspecified harnesses and interleaved bugs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated assume-guarantee reasoning through implicit learning
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Learning component interfaces with may and must abstractions
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Inferring canonical register automata
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Sigma*: symbolic learning of input-output specifications
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hybrid learning: interface generation through static, dynamic, and symbolic analysis
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Producing software by integration: challenges and research directions (keynote)
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Given a white-box component 𝒷 with specified unsafe states, we address the problem of automatically generating an interface that captures safe orderings of invocations of 𝒷's public methods. Method calls in the generated interface are guarded by constraints on their parameters. Unlike previous work, these constraints are generated automatically through an iterative refinement process. Our technique, named Psyco (Predicate-based SYmbolic COmpositional reasoning), employs a novel combination of the L* automata learning algorithm with symbolic execution. The generated interfaces are three-valued, capturing whether a sequence of method invocations is safe, unsafe, or its effect on the component state is unresolved by the symbolic execution engine. We have implemented Psyco as a new prototype tool in the JPF open-source software model checking platform, and we have successfully applied it to several examples.