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
Generating test cases to expose concurrency bugs in Android applications
Hongyin Tang,Guoquan Wu,Jun Wei,Hua Zhong +3 more
- 25 Aug 2016
TL;DR: RacerDroid is proposed, a novel technique that aims to expose concurrency bugs in android applications by actively controlling event schedule and thread interleaving, given the test cases that have potential data races.
CTrigger: exposing atomicity violation bugs from their hiding places
Soyeon Park,Shan Lu,Yuanyuan Zhou +2 more
- 07 Mar 2009
TL;DR: CTrigger focuses on a special type of interleavings that are inherently correlated to atomicity violation bugs, and uses trace analysis to systematically identify (likely) feasible unserializable interleAVings with low occurrence-probability that are exposed in large programs.
Testing database transaction concurrency
Yuetang Deng,Phyllis Frankl,Zhongqiang Chen +2 more
- 06 Oct 2003
TL;DR: A dataflow analysis technique for identifying schedules of transaction execution aimed at revealing concurrency faults of this nature is presented, along with techniques for controlling the DBMS or the application so that execution of transaction sequences follows generated schedules.
Noise Makers Need to Know Where to be Silent Producing Schedules That Find Bugs
Yosi Ben-Asher,Eitan Farchi,Yaniv Eytani,Shmuel Ur +3 more
- 15 Nov 2006
TL;DR: A novel fault model is introduced that classifies locations as "good", "neutral", or "bad," based on the effect of a thread switch at the location, which explores the terms under which an efficient search for real-life concurrent bugs can be conducted.
Effective and precise dynamic detection of hidden races for Java programs
Yan Cai,Lingwei Cao +1 more
- 30 Aug 2015
TL;DR: The proposed DrFinder, an effective and precise dynamic technique to detect hidden races, is effective to detect 89 new data races in 10 runs, which could not be detected by existing techniques even in 100 runs.
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