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
Isolating failure-inducing thread schedules
Jong-Deok Choi,Andreas Zeller +1 more
- 01 Jul 2002
TL;DR: By systematically narrowing down the difference between a thread schedule that makes the program pass and another schedule that make the program fail, the Delta Debugging approach can pinpoint the error location automatically---namely, the location(s) where a thread switch causes the program to fail.
Applications of synchronization coverage
Arkady Bron,Eitan Farchi,Yonit Magid,Yarden Nir,Shmuel Ur +4 more
- 15 Jun 2005
TL;DR: This work presents a new coverage model: synchronization coverage, which is simple to understand and the action items generated by each uncovered task are clear to testers and developers and could become one of the more commonly used coverage models.
Fully automatic and precise detection of thread safety violations
Michael Pradel,Thomas R. Gross +1 more
- 11 Jun 2012
TL;DR: This paper presents an automatic testing technique that reveals concurrency bugs in supposedly thread-safe classes, independent of hand-written tests and explicit specifications.
89
Selective mutation testing for concurrent code
Milos Gligoric,Lingming Zhang,Cristiano Pereira,Gilles Pokam +3 more
- 15 Jul 2013
TL;DR: The results identify several sets of concurrent mutation operators that can effectively reduce the number of mutants, show that operator-based selection is slightly better than random mutant selection, and show that sequential and concurrent mutations operators are independent, demonstrating the importance of studying concurrent mutation Operators.
•Journal Article
Performance Regression Testing of Concurrent Classes.
TL;DR: In this paper, the authors present SpeedGun, an automatic performance regression testing technique for thread-safe classes, which generates multi-threaded performance tests and compares two versions of a class with each other.
70
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