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
ConMem: Detecting Crash-Triggering Concurrency Bugs through an Effect-Oriented Approach
TL;DR: ConMem was built to monitor program execution, analyze memory accesses and synchronizations, and predictively detect common and severe concurrency-memory bugs, and built a validator,ConMem-v, to automatically prune false positives by enforcing potential bug-triggering interleavings.
17
Advances in noise-based testing of concurrent software
TL;DR: Multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way and a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented.
17
SHADOWS: Self-healing complex software systems
O. Shehory
- 15 Sep 2008
TL;DR: Initial results of this evaluation indicate clear advantages of SHADOWS self-healing technologies, and integrates these technologies into a common solution that validates the solution in industrial environments.
15
Extracting static and dynamic structural information from java concurrent programs for coverage testing
Rafael R. Prado,Paulo Sergio Lopes de Souza,George G. M. Dourado,Simone R. S. Souza,Julio Cezar Estrella,Sarita Mazzini Bruschi,João Lourenço +6 more
- 17 Dec 2015
TL;DR: The results show the techniques can generate both an instrumented code and a PCFG for Java concurrent programs effectively, extracting static and runtime information required for structural testing.
15
Execution Hijacking: Improving Dynamic Analysis by Flying off Course
Petar Tsankov,Wei Jin,Alessandro Orso,Saurabh Sinha +3 more
- 21 Mar 2011
TL;DR: The results of the study show that execution hijacking, if suitably performed, can indeed improve dynamic analysis and improve a common dynamic analysis: memory error detection.
15
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