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
Testing concurrent programs to achieve high synchronization coverage
Shin Hong,Jaemin Ahn,Sangmin Park,Moonzoo Kim,Mary Jean Harrold +4 more
- 15 Jul 2012
TL;DR: A new technique is presented that aims to achieve high coverage of concurrent programs by generating thread schedules to cover uncovered coverage requirements by first estimates synchronization-pair coverage requirements, and then generates thread schedules that are likely to cover covered coverage requirements.
A trace simplification technique for effective debugging of concurrent programs
Nicholas Jalbert,Koushik Sen +1 more
- 07 Nov 2010
TL;DR: This paper formalize and prove the trace simplification problem is NP-hard, and proposes a heuristic algorithm, Tinertia, that transforms a buggy execution trace into an easier-to-understand simplified trace.
65
Unit testing concurrent software
William Pugh,Nathaniel Ayewah +1 more
- 05 Nov 2007
TL;DR: The MultithreadedTC framework is described which allows the construction of deterministic and repeatable unit tests for concurrent abstractions and allows us to demonstrate that code does provide specific concurrent functionality.
Demand-driven software race detection using hardware performance counters
Joseph L. Greathouse,Zhiqiang Ma,Matthew I. Frank,Ramesh Peri,Todd Austin +4 more
- 04 Jun 2011
TL;DR: This paper is able to observe cache events that are indicative of data sharing between threads by taking advantage of hardware available on modern commercial microprocessors and uses these to build a race detector that is only enabled when it is likely that inter-thread data sharing is occurring.
52
Structural testing for message-passing concurrent programs: an extended test model
TL;DR: The main contribution of the paper is to present a more flexible test model that provides improved coverage for message‐passing programs and at the same time reduces the cost of testing significantly.
44
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