Structural Testing of Concurrent Programs
IEEE Transactions on Software Engineering
Software unit test coverage and adequacy
ACM Computing Surveys (CSUR)
All-du-path coverage for parallel programs
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Platform independent dynamic Java virtual machine analysis: the Java Grande Forum Benchmark suite
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
A parallel java grande benchmark suite
Proceedings of the 2001 ACM/IEEE conference on Supercomputing
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing
IEEE Transactions on Software Engineering
Automated Software Engineering
Testing Concurrent Systems: A Formal Approach
CONCUR '99 Proceedings of the 10th International Conference on Concurrency Theory
Concurrent Bug Patterns and How to Test Them
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Benchmark and Framework for Encouraging Research on Multi-Threaded Testing Tools
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Testing concurrent programs: a formal evaluation of coverage criteria
ICCSSE '96 Proceedings of the 7th Israeli Conference on Computer-Based Systems and Software Engineering
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
VYRD: verifYing concurrent programs by runtime refinement-violation detection
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Applications of synchronization coverage
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Accurate and efficient runtime detection of atomicity errors in concurrent programs
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Effective static race detection for Java
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
A classification of concurrency bugs in java benchmarks by developer intent
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Producing scheduling that causes concurrent programs to fail
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Mutation Operators for Concurrent Java (J2SE 5.0)
MUTATION '06 Proceedings of the Second Workshop on Mutation Analysis
A study of interleaving coverage criteria
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
ConTest listeners: a concurrency-oriented infrastructure for Java test and heal tools
Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
Testing concurrent programs using value schedules
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Monitoring Atomicity in Concurrent Programs
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Inter-context control-flow and data-flow test adequacy criteria for nesC applications
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Saturation-based testing of concurrent programs
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Goldilocks: a race-aware Java runtime
Communications of the ACM
Finding and reproducing Heisenbugs in concurrent programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Testing Inter-layer and Inter-task Interactions in RTES Applications
APSEC '10 Proceedings of the 2010 Asia Pacific Software Engineering Conference
Using Property-Based Oracles when Testing Embedded System Applications
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
Hi-index | 0.00 |
We present a coverage metric targeted at shared-memory concurrent programs: the Location Pairs (LP) coverage metric. The goals of this metric are (i) to measure how thoroughly a program has been tested from a concurrency standpoint, i.e., whether enough qualitatively different thread interleavings have been explored, and (ii) to guide testing towards unexplored concurrency scenarios. This metric was inspired by an access pattern known to lead to high-level concurrency errors in industrial software and in the literature. We built a monitoring tool to measure LP coverage of test programs. We used the LP metric for interactive debugging, and compared LP coverage with other concurrency coverage metrics on Java benchmarks. We demonstrated that LP coverage corresponds better to concurrency errors, is a better measure of how well a program is exercised concurrency-wise by a test set, reaches saturation later than other coverage metrics, and is viable and useful as an interactive testing and debugging tool.