AbstractThe difficulty of finding errors caused by unexpected interleavings of threads in concurrent programs is well known. Model checkers can pinpoint such errors and verify correctness but are not easily scalable to large programs. The approach discussed here is more scalable but less systematic. We transform a given Java program by inserting calls to a scheduling function at selected points. The scheduling function either does nothing or causes a context switch. The simplest scheduling function makes the choice blindly using a pseudo-random number generator; more sophisticated scheduling functions use heuristics to weight the choices. We try to insert as few calls as possible while still ensuring that for each reachable deadlock and ass...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
The main limitation of software model checking is that, due to state explosion, it does not scale to...
Bugs in multi-threaded programs often arise due to data races. Numerous static and dynamic program a...
AbstractThe difficulty of finding errors caused by unexpected interleavings of threads in concurrent...
A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives ...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Abstract We provide a parametric framework for verifying safety properties of concurrent Java progra...
AbstractConcurrency in multithreaded programs introduces additional complexity in software verificat...
AbstractA Random test generator generates executable tests together with their expected results. In ...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Abstract. Concurrent programs often exhibit bugs due to unintended interfer-ences among the concurre...
concurrent programs often exhibit wrong behaviors due to unintended interferences among the concurre...
AbstractDeterministic replay can help to understand the cause of a failing execution of a multi-thre...
We propose the first systematic concurrent program testing approach that is able to cover the entire...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
The main limitation of software model checking is that, due to state explosion, it does not scale to...
Bugs in multi-threaded programs often arise due to data races. Numerous static and dynamic program a...
AbstractThe difficulty of finding errors caused by unexpected interleavings of threads in concurrent...
A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives ...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Abstract We provide a parametric framework for verifying safety properties of concurrent Java progra...
AbstractConcurrency in multithreaded programs introduces additional complexity in software verificat...
AbstractA Random test generator generates executable tests together with their expected results. In ...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Abstract. Concurrent programs often exhibit bugs due to unintended interfer-ences among the concurre...
concurrent programs often exhibit wrong behaviors due to unintended interferences among the concurre...
AbstractDeterministic replay can help to understand the cause of a failing execution of a multi-thre...
We propose the first systematic concurrent program testing approach that is able to cover the entire...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
The main limitation of software model checking is that, due to state explosion, it does not scale to...
Bugs in multi-threaded programs often arise due to data races. Numerous static and dynamic program a...