Using Software Architecture for Code Testing
IEEE Transactions on Software Engineering
Automated replay and failure detection for web applications
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Formal verification of control software: a case study
IEA/AIE'2005 Proceedings of the 18th international conference on Innovations in Applied Artificial Intelligence
Testing concurrent java components
Proceedings of the 28th international conference on Software engineering
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Automated Generation of Context-Aware Tests
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Testing Concurrent Java Components
ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
Unit testing concurrent software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Dynamic Symbolic Execution for Testing Distributed Objects
TAP '09 Proceedings of the 3rd International Conference on Tests and Proofs
Unit testing for multi-threaded Java programs
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
IMUnit: improved multithreaded unit testing
Proceedings of the 3rd International Workshop on Multicore Software Engineering
Extensible transactional memory testbed
Journal of Parallel and Distributed Computing
Model Testing Asynchronously Communicating Objects using Modulo AC Rewriting
Electronic Notes in Theoretical Computer Science (ENTCS)
The reliability estimation, prediction and measuring of component-based software
Journal of Systems and Software
Improved multithreaded unit testing
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Tiddle: a trace description language for generating concurrent benchmarks to test dynamic analyses
WODA '09 Proceedings of the Seventh International Workshop on Dynamic Analysis
CONCURRIT: testing concurrent programs with programmable state-space exploration
HotPar'12 Proceedings of the 4th USENIX conference on Hot Topics in Parallelism
CONCURRIT: a domain specific language for reproducing concurrency bugs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
EnforceMOP: a runtime property enforcement system for multithreaded programs
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
Concurrent programs are hard to test due to the inherent nondeterminism. This paper presents a method and tool support for testing concurrent Java components. Tool support is offered through ConAn (Concurrency Analyser), a tool for generating drivers for unit testing Java classes that are used in a multithreaded context. To obtain adequate controllability over the interactions between Java threads, the generated driver contains threads that are synchronized by a clock. The driver automatically executes the calls in the test sequence in the prescribed order and compares the outputs against the expected outputs specified in the test sequence. The method and tool are illustrated in detail on an asymmetric producer-consumer monitor. Their application to testing over 20 concurrent components, a number of which are sourced from industry and were found to contain faults, is presented and discussed.