Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Parallel program design: a foundation
Parallel program design: a foundation
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Symbolic execution and program testing
Communications of the ACM
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Using symbolic execution for verifying safety-critical systems
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
The complexity of theorem-proving procedures
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
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
Testing, abstraction, theorem proving: better together!
Proceedings of the 2006 international symposium on Software testing and analysis
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Compositional may-must program analysis: unleashing the power of alternation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JPF-SE: a symbolic execution extension to Java PathFinder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Pex: white box test generation for .NET
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Hi-index | 0.00 |
The software industry favors dynamic testing over static analysis of software, because traditional static software analysis techniques do not adequately balance automation, precision and scalability. Recently several researchers have combined static and dynamic techniques to overcome these problems. Undergoing efforts include concolic execution, testing-based correctness prove, execution driven abstract interpretation and dynamic invariant generation. This paper summarizes the state of the art about combining dynamic testing and static analysis, and designs a roadmap towards a modern approach to software V&V that enhances dynamic testing with static analysis techniques. In particular, this paper surveys the most promising approaches to combine dynamic testing and static program analysis. It classifies the techniques against a framework of combination patterns, to facilitate the identification of commonalities and complementarities between the techniques. It quantifies analytically the gain that stems from the most important combination patterns. It provides a roadmap for future research.