Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Deterministic replay of Java multithreaded applications
SPDT '98 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Runtime aspect weaving through metaprogramming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Model-Checking Multi-threaded Distributed Java Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Benchmark and Framework for Encouraging Research on Multi-Threaded Testing Tools
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
IEEE Software
Applications of synchronization coverage
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
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)
Multithreaded java program test generation
IBM Systems Journal
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
AtomRace: data race and atomicity violation detector and healer
PADTAD '08 Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
Deadlocks: From Exhibiting to Healing
Runtime Verification
Improving throughput via slowdowns
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
A platform for search-based testing of concurrent software
Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
A meta-aspect protocol for developing dynamic analyses
RV'10 Proceedings of the First international conference on Runtime verification
Detection of deadlock potentials in multithreaded programs
IBM Journal of Research and Development
Location pairs: a test coverage metric for shared-memory concurrent programs
Empirical Software Engineering
Hi-index | 0.00 |
With the proliferation of the new multi-core personal computers, and the explosion of the usage of highly concurrent machine configuration, concurrent code moves from being written by the select few to the masses. As anyone who has written such code knows, there are many traps awaiting. This increases the need for good concurrency-aware tools to be used in the program quality cycle: monitoring, testing, debugging, and the emerging field of self-healing. Academics who build such tools face two main difficulties; writing the instrumentation infrastructure for the tool, and integrating it into real user environments to obtain meaningful results. As these difficulties are hard to overcome, most academic tools do not make it past the toy stage. The ConTest Listener architecture provides instrumentation and runtime engines to which writers of test and heal tools, especially concurrency-oriented, can easily plug their code. This paper describes this architecture, mainly from the point of view of a user intending to create a testing/healing tool. This architecture enables tool creators to focus on the concurrent problem they are trying to solve without writing the entire infrastructure. In addition, once they create a tool within the ConTest Listeners framework the tool can be used by the framework users with no additional work, enabling access to real industrial applications. We show how to create tools using the architecture and describe some work that has already taken place.