Proceedings Article10.1145/376656.376848
Multithreaded Java program test generation
Orit Edelstein,Eitan Farchi,Yarden Nir,Gil Ratsaby,Shmuel Ur +4 more
- 01 Jun 2001
- pp 181
TL;DR: ConTest, a tool for detecting synchronization faults in multithreaded Java programs that makes random or coveragebased decisions as to whether the seeded primitive is to be executed, increases the probability of finding concurrent faults.
read more
Abstract: We describe ConTest, a tool for detecting synchronization faults in multithreaded Java™ programs. The program under test is seeded with a sleep(), yield(), or priority() primitive at shared memory accesses and synchronization events. At run time, ConTest makes random or coverage-based decisions as to whether the seeded primitive is to be executed. Thus, the probability of finding concurrent faults is increased. A replay algorithm facilitates debugging by saving the order of shared memory accesses and synchronization events.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
A Unified Approach for Localizing Non-deadlock Concurrency Bugs
Sangmin Park,Richard Vuduc,Mary Jean Harrold +2 more
- 17 Apr 2012
TL;DR: The evaluation shows that UNICORN can effectively compute and rank the patterns that represent concurrency bugs, and perform computation and ranking with reasonable efficiency.
Fault Detection in Multi-Threaded C++ Server Applications
Arndt Mühlenfeld,Franz Wotawa +1 more
TL;DR: Improvements to the runtime analysis of C++ programs are presented that result in a dramatic reduction of false warnings, mainly race-conditions and deadlocks.
38
Instrumenting where it hurts: an automatic concurrent debugging technique
Rachel Tzoref,Shmuel Ur,Elad Yom-Tov +2 more
- 09 Jul 2007
TL;DR: This work creates and evaluates two algorithms for automatically pinpointing program locations that are in the vicinity of the bugs on a number of industrial programs, and builds an open infrastructure for automatic debugging algorithms for concurrent applications, based on noise injection based concurrent testing using instrumentation.
A method for verifying concurrent Java components based on an analysis of concurrency failures
TL;DR: A method for verifying concurrent Java components that includes ConAn and complements it with other static and dynamic verification tools and techniques is proposed, based on an analysis of common concurrency problems and concurrency failures in Java components.
36
Saturation-based testing of concurrent programs
Elena Sherman,Matthew B. Dwyer,Sebastian Elbaum +2 more
- 24 Aug 2009
TL;DR: This study defines a family of coverage metrics for concurrent program testing that are well-suited to saturation-based adequacy and presents a study that explores their cost and effectiveness.
36
References
Time, clocks, and the ordering of events in a distributed system
TL;DR: In this article, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
Time, clocks, and the ordering of events in a distributed system
TL;DR: In this paper, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
•Book
Design and validation of computer protocols
Gerard J. Holzmann
- 01 Jan 1991
TL;DR: Part 1 Basic: introduction protocol structure error control flow control and design tools: a protocol simulator a protocol validator using the validator.
Eraser: a dynamic data race detector for multithreaded programs
TL;DR: A new tool, called Eraser, is described, for dynamically detecting data races in lock-based multithreaded programs, which uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed.
A general-purpose algorithm for analyzing concurrent programs
TL;DR: A static analysis algorithm is presented here that addresses the following problems: how processes are synchronized, what determines when programs are run in parallel, and how errors are detected in the synchronization structure.
322