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
Automatic software repair: a survey
Luca Gazzola,Daniela Micucci,Leonardo Mariani +2 more
- 27 May 2018
TL;DR: A new class of approaches, namely program repair techniques, whose key idea is to try to automatically repair software systems by producing an actual fix that can be validated by the testers before it is finally accepted, or that is adapted to properly fit the system.
Falcon: fault localization in concurrent programs
Sangmin Park,Richard Vuduc,Mary Jean Harrold +2 more
- 01 May 2010
TL;DR: A new dynamic fault-localization technique that can pinpoint faulty data-access patterns in multi-threaded concurrent programs and effectively and efficiently localize the faults for subjects is presented.
165
ConSeq: detecting concurrency bugs through sequential errors
Wei Zhang,Junghee Lim,Ramya Olichandran,Joel Scherpelz,Guoliang Jin,Shan Lu,Thomas Reps +6 more
- 05 Mar 2011
TL;DR: ConSeq's backwards approach, (3)!(2)!(1), provides advantages in bug-detection coverage and accuracy but is challenging to carry out, because phases (2) and (3) usually are short and occur within one thread.
Testing Concurrent Java Programs using Randomized Scheduling
TL;DR: The approach discussed here is more scalable but less systematic, which transforms a given Java program by inserting calls to a scheduling function at selected points, ensuring that for each reachable deadlock and assertion violation, there is a sequence of choices by the scheduling function that leads to it.
141
Reachability testing of concurrent programs
Yu Lei,Richard H. Carver +1 more
TL;DR: A general execution model for concurrent programs that allows reachability testing to be applied to several commonly used synchronization constructs is presented and a new method for performing reachable testing is presented.
135
References
Model-checking multi-threaded distributed Java programs
TL;DR: It is described the design of a new tool for state-less state-space exploration of Java programs that incorporates a reduction that exploits a common pattern of synchronization, namely, the use of locks to protect shared data structures.
Mutation 2000: uniting the orthogonal
A. Jefferson Offutt,Ronald H. Untch +1 more
- 01 May 2001
TL;DR: This paper outlines a design for a system that will approximate mutation, but in a way that will be accessible to every day programmers, and believes this system could be efficient enough to be adopted by leading-edge software developers.
Eraser: a dynamic data race detector for multi-threaded programs
Stefan Savage,Michael Burrows,Greg Nelson,Patrick G. Sobalvarro,Thomas Anderson +4 more
- 01 Oct 1997
TL;DR: Eraser as mentioned in this paper uses binary rewriting techniques to monitor every shared memory reference and verify that consistent locking behavior is observed in lock-based multi-threaded programs, which can be used to detect data races.
Toward Integration of Data Race Detection in DSM Systems
TL;DR: In this article, a distributed algorithm, called djit, is presented for detecting data races in Dsm systems, detecting a race condition as soon as one is created and displaying to the user the precise place in the program where the race occurred.
Deterministic replay of Java multithreaded applications
Jong-Deok Choi,Harini Srinivasan +1 more
- 01 Aug 1998
TL;DR: A multithreaded program includes sequences of events wherein each sequence is associated with one of a plurality of execution threads and, in a record mode, the software tool of the present invention records a run-time representation of the program by distinguishing critical events from non-critical events of theprogram and identifying the execution order of such critical events.