The future of library specification
Proceedings of the FSE/SDP workshop on Future of software engineering research
Association of under-approximation techniques for generating tests from models
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Enhancing structural software coverage by incrementally computing branch executability
Software Quality Control
An empirical study about the effectiveness of debugging when random test cases are used
Proceedings of the 34th International Conference on Software Engineering
Frama-C: a software analysis perspective
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Finding optimum abstractions in parametric dataflow analysis
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Alias analysis: beyond the code
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
We present an algorithm Dash to check if a program P satisfies a safety property \varphi. The unique feature of this algorithm is that it uses only test generation operations, and it refines and maintains a sound program abstraction as a consequence of failed test generation operations. Thus, each iteration of the algorithm is inexpensive, and can be implemented without any global may-alias information. In particular, we introduce a new refinement operator {\rm {WP}}_\alpha that uses only the alias information obtained by symbolically executing a test to refine abstractions in a sound manner. We present a full exposition of the Dash algorithm and its theoretical properties. We have implemented Dash in a tool called Yogi that plugs into Microsoft's Static Driver Verifier framework. We have used this framework to run Yogi on 69 Windows Vista drivers with 85 properties and find that Yogi scales much better than Slam, the current engine driving Microsoft's Static Driver Verifier.