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 State Exploration-Based Approach to Testing Java Monitors
Yu Lei,Richard H. Carver,David Chenho Kung,V. Gupta,M. Hernandez +4 more
- 07 Nov 2006
TL;DR: A novel aspect of this approach is that during exploration, threads are introduced on-the-fly, and as needed, to simulate race conditions that can occur when multiple threads try to access a monitor object at the same time.
6
Probabilistic Alternative Regression Suites.
Shady Copty,Shai Fine,Shmuel Ur,Avi Ziv +3 more
- 01 Jan 2004
TL;DR: This work shows how the set of greedy algorithms commonly used for selecting tests for regression suites may be adapted to selecting specifications for randomly generated regression suites, and introduces a new class of greed algorithms, referred to as future-aware greedy algorithms.
5
Model Based Testing for Workflow Enabled Applications
Mario E. Sánchez,Camilo Jiménez,Jorge Villalobos +2 more
- 31 Dec 2011
TL;DR: This paper presents both the ATF and the TDR, and illustrates their usage in the context of a workflow engine built using the Cumbia platform.
Choosing among alternative futures
Steve MacDonald,Jun Chen,Diego Novillo +2 more
- 13 Nov 2005
TL;DR: Some preliminary work in deterministically executing a multithreaded program is presented using a combination of an intermediate compiler form that identifies the set of writes of a shared variable by other threads are visible at a given read of that variable and aspect-oriented programming to control program execution.
Automatically Reproducing Timing-Dependent Flaky-Test Failures
Shanto Rahman,Aaron K. Massey,Wing Lam,August Shi,Jonathan Bell +4 more
- 27 May 2024
5
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