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
Empirical evaluation of a new composite approach to the coverage criteria and reachability testing of concurrent programs
TL;DR: A new composite approach that uses reachability testing to guide the selection of the synchronization sequences tests according to a specific structural testing criterion is presented and empirically evaluated in the context of message‐passing concurrent programs developed with MPI.
19
Benchmark and framework for encouraging research on multi-threaded testing tools
Klaus Havelund,Scott D. Stoller,Shmuel Ur +2 more
- 22 Apr 2003
TL;DR: A proposed project to facilitate research is outlined, to create a benchmark that can be used to evaluate different solutions in multi-threaded code and create a set of tools with open API that can been used to check ideas without building a large system.
A lightweight and portable approach to making concurrent failures reproducible
Qingzhou Luo,Sai Zhang,Jianjun Zhao,Min Hu +3 more
- 20 Mar 2010
TL;DR: This paper presents an approach, called ConCrash, that automatically and deterministically reproduces concurrent failures by recording logical thread schedule and generating unit tests, and employs a static data race detection technique to report potential possible race conditions.
Reachability graph-based test sequence generation for concurrent programs
W. Eric Wong,Yu Lei +1 more
TL;DR: This work proposes four methods to effectively generate a small set of test sequences that covers all the nodes in an RG and applies these methods to the corresponding dual graph for generating test sequences to cover all the edges.
A new algorithm for reachability testing of concurrent programs
Yu Lei,Richard H. Carver +1 more
- 08 Nov 2005
TL;DR: This paper presents a new reachability testing algorithm, RichTest, which does not save any synchronization sequences but still guarantees that every partially-ordered sequence will be exercised exactly once.
17
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