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
Test data generation for path coverage of message-passing parallel programs based on co-evolutionary genetic algorithms
Tian Tian,Dunwei Gong +1 more
- 01 Sep 2016
TL;DR: This study investigates automatic test data generation for path coverage of message-passing parallel programs without non-determinacy by using co-evolutionary genetic algorithms, and finds that the proposed method has the best success rate and the least number of evaluated individuals and time consumption.
Detecting atomic-set serializability violations in multithreaded programs through active randomized testing
Zhifeng Lai,Shing-Chi Cheung,W. K. Chan +2 more
- 01 May 2010
TL;DR: A two-phase testing technique that can effectively detect atomic-set serializability violations and can identify more concurrency bugs than two recent testing tools RaceFuzzer and AtomFuzzers is proposed.
Effective random testing of concurrent programs
Koushik Sen
- 05 Nov 2007
TL;DR: This work proposes a random partial order sampling algorithm (or RAPOS) that partly removes this non-uniformity in sampling the state space and empirically compares the proposed algorithm with the simple random testing algorithm and shows that the former outperforms the latter.
Finding Atomicity-Violation Bugs through Unserializable Interleaving Testing
TL;DR: This study finds a coverage criterion (Unserializable Interleaving Coverage) that balances the complexity and the capability of exposing atomicity-violation bugs well and designs CTrigger following the unserializable interleaving coverage criterion.
A systematic survey on automated concurrency bug detection, exposing, avoidance, and fixing techniques
TL;DR: This paper provides a systematic review of the existing research on fighting against concurrency bugs, including automated concurrency bug exposing, detection, avoidance, and fixing, and summarizes the classical benchmarks widely used in previous empirical studies.
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