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
Are concurrency coverage metrics effective for testing: a comprehensive empirical investigation
TL;DR: The results indicate that the metrics are moderate to strong predictors of testing effectiveness and effective at providing test generation targets, and highlight the need for additional work on concurrency coverage metrics.
The Impact of Concurrent Coverage Metrics on Testing Effectiveness
Shin Hong,Matt Staats,Jaemin Ahn,Moonzoo Kim,Gregg Rothermel +4 more
- 18 Mar 2013
TL;DR: The relationship between concurrent coverage and fault detection effectiveness is explored by studying the application of eight concurrent coverage metrics in testing nine concurrent programs.
Coverage Based Testing for Concurrent Software
J. Takahashi,Hideharu Kojima,Z. Furukawa +2 more
- 17 Jun 2008
TL;DR: The concurrent coverage criteria would intend to find concurrent software specific defects, such as race conditions, and is used for concurrent software testing in this research.
21
Localizing defects in multithreaded programs by mining dynamic call graphs
Frank Eichinger,Victor Pankratius,Philipp W. L. Große,Klemens Böhm +3 more
- 03 Sep 2010
TL;DR: Compared to race detectors that report just on wrong synchronization, this method can detect a wider range of defects affecting parallel execution, and works on a condensed representation of the call graphs of multithreaded applications and employs data-mining techniques to locate a method containing a defect.
Forcing small models of conditions on program interleaving for detection of concurrent bugs
Ehud Trainin,Yarden Nir-Buchbinder,Rachel Tzoref-Brill,Aviad Zlotnick,Shmuel Ur,Eitan Farchi +5 more
- 19 Jul 2009
TL;DR: Two simple models of conditions on program interleaving targeted at the insufficient-synchronization-scope bug pattern are defined and it is shown that relatively small models can detect insufficient- Synchronized-scope bugs.
19
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