Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggering the failure of a test are difficult to reproduce. When debugging, the failing behavior might disappear altogether, a so-called Heisenbug. The cause of these concurrency problems is non-deterministic thread interleaving, introducing data races and race conditions. In literature, three categories of techniques have been described to effectively test concurrent software. First, random testing or fuzzing approaches have been implemented in a tool such as Contest. These techniques force threads to interleave at random intervals. As fuzzing strategies encounter a faulty set of thread interleaving by chance these might increase the chances of fin...
This paper presents Lincheck, a new practical and user-friendly framework for testing concurrent alg...
In this work we focus on creating a benchmark suite of concurrent programs for various programming l...
While multi-threading has become commonplace in many application domains (e.g., embedded systems, di...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...
With the increasing dependency on software systems, we require them to be reliable and correct. Sof...
Verification and validation is one of the most important concerns in the area of software engineerin...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
Testing concurrent software is notoriously difficult due to problems with non-determinism and synchr...
Part 1: Full PapersInternational audienceConcurrent programming puts demands on software debugging a...
Testing concurrent software is notoriously difficult due to problems with non-determinism and synchr...
Concurrent software has been increasingly adopted in recent years, mainly due to the introduction of...
Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the depen...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
This paper presents Lincheck, a new practical and user-friendly framework for testing concurrent alg...
In this work we focus on creating a benchmark suite of concurrent programs for various programming l...
While multi-threading has become commonplace in many application domains (e.g., embedded systems, di...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...
With the increasing dependency on software systems, we require them to be reliable and correct. Sof...
Verification and validation is one of the most important concerns in the area of software engineerin...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
Testing concurrent software is notoriously difficult due to problems with non-determinism and synchr...
Part 1: Full PapersInternational audienceConcurrent programming puts demands on software debugging a...
Testing concurrent software is notoriously difficult due to problems with non-determinism and synchr...
Concurrent software has been increasingly adopted in recent years, mainly due to the introduction of...
Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the depen...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
This paper presents Lincheck, a new practical and user-friendly framework for testing concurrent alg...
In this work we focus on creating a benchmark suite of concurrent programs for various programming l...
While multi-threading has become commonplace in many application domains (e.g., embedded systems, di...