Race Frontier: reproducing data races in parallel-program debugging
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
RecPlay: a fully integrated practical record/replay system
ACM Transactions on Computer Systems (TOCS)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Lessons Learned in Software Testing
Lessons Learned in Software Testing
Test Driven Development: By Example
Test Driven Development: By Example
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Tool Support for Testing Concurrent Java Components
IEEE Transactions on Software Engineering
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
KISS: keep it simple and sequential
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Associating synchronization constraints with data in an object-oriented language
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatically classifying benign and harmful data races using replay analysis
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
TRaDe, a topological approach to on-the-fly race detection in java programs
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Fault Detection in Multi-Threaded C++ Server Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
HARD: Hardware-Assisted Lockset-based Race Detection
HPCA '07 Proceedings of the 2007 IEEE 13th International Symposium on High Performance Computer Architecture
Unit testing concurrent software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Next Generation Java Testing: TestNG and Advanced Concepts
Next Generation Java Testing: TestNG and Advanced Concepts
Learning from mistakes: a comprehensive study on real world concurrency bug characteristics
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Dynamic detection of atomic-set-serializability violations
Proceedings of the 30th international conference on Software engineering
Finding synchronization defects in java programs: extended static analyses and code patterns
Proceedings of the 1st international workshop on Multicore software engineering
On-the-fly race detection in multi-threaded programs
PADTAD '08 Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
Multithreaded java program test generation
IBM Systems Journal
Industry use cases for the Java environment for parallel realtime development
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Hi-index | 0.00 |
Unit testing focuses on testing the smallest units that comprise a software system and allows developers to detect bugs early in the development process. However, unit testing is unsuitable for detecting concurrency bugs in multi-threaded programs. Most concurrency bug detection tools work only with full programs. Hence, they can only be used at a later phase of development, thus postponing the detection of concurrency bugs. This paper presents a unit testing framework for detecting concurrency bugs in multi-threaded Java programs. Concurrency bugs are uncovered by applying model checking techniques to explore all possible execution paths of concurrent unit tests. We have implemented our approach based on the JUnit unit testing framework and the Java PathFinder software model checker. Concurrent unit tests can be integrated seamlessly into existing unit test suites. Our approach does not report false positives.