Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Eraser: a dynamic data race detector for multi-threaded programs
Proceedings of the sixteenth ACM symposium on Operating systems principles
Context-sensitive synchronization-sensitive analysis is undecidable
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated Software Engineering
Hybrid dynamic data race detection
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Choosing among Alternative Pasts
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Combining Static Analysis and Model Checking for Software Analysis
Proceedings of the 16th IEEE international conference on Automated software engineering
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
RaceTrack: efficient detection of data race conditions via adaptive tracking
Proceedings of the twentieth ACM symposium on Operating systems principles
Optimized run-time race detection and atomicity checking using partial discovered types
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Effective static race detection for Java
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Conditional must not aliasing for static race detection
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a framework and a benchmark for testing tools for multi-threaded programs: Research Articles
Concurrency and Computation: Practice & Experience - Parallel and Distributed Systems: Testing and Debugging (PADTAD)
Blended analysis for performance understanding of framework-based applications
Proceedings of the 2007 international symposium on Software testing and analysis
Testing concurrent programs using value schedules
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Multi-threaded testing with AOP is easy, and it finds bugs!
Euro-Par'05 Proceedings of the 11th international Euro-Par conference on Parallel Processing
Choosing among alternative futures
HVC'05 Proceedings of the First Haifa international conference on Hardware and Software Verification and Testing
A self-adaptive test framework for concurrent programs
Proceedings of the International Conference on Management of Emergent Digital EcoSystems
A platform for search-based testing of concurrent software
Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Research in concurrent software testing: a systematic review
Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
A systematic mapping study on the combination of static and dynamic quality assurance techniques
Information and Software Technology
Hi-index | 0.00 |
Testing concurrent programs remains a difficult task due to the non-deterministic nature of concurrent executions. Many approaches have been proposed to combine static and dynamic analysis to reduce the complexity of uncovering potential concurrency bugs. However, the existing collaboration schemes only provide a limited mechanism for exchanging relevant information between the two analyses. For example, alias information only flows from the static analysis module to the dynamic analysis module at the beginning of the dynamic analysis. Therefore, we cannot fully exploit the advantages of each type of analysis. Motivated by this observation, in this paper we present a new testing technique which enables a tighter collaboration between static analysis and dynamic analysis. In this collaboration scheme, static analysis and dynamic analysis interact iteratively throughout the whole testing process. Static analysis uses coarse-grained analysis to guide the dynamic analysis to concentrate on the relevant search space, while dynamic analysis collects concrete runtime information during the guided exploration. The runtime information provided by the dynamic analysis helps the static analysis to refine its coarse-grained analysis and provides better guidance on dynamic analysis. Currently, our implementation consists of a static analysis module based on Soot and a dynamic analysis module based on JPF (Java PathFinder).