The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a simplified memory abstraction based on threads with explicit synchronization does not scale well. With the advent of multi-core programming, the exploration of alternative concurrency models has begun. These alternatives avoid unprotected access of shared variables, therefore reducing the possibility of introducing race conditions, data races or locking complications. However, testing concurrent software remains problematic because of two properties inherent to the concurrent execution of software. First and foremost, concurrent software exhibits non-deterministic behavior. Namely, the test result is not guaranteed to be identical for each t...
[[abstract]]Software testing and metrics are two important approaches to assure the reliability and ...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
With the increasing dependency on software systems, we require them to be reliable and correct. Sof...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
Concurrent programs are hard to test because of the non- determinism inherit in them. Since non-dete...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Concurrent embedded software is prone to data races, race conditions and deadlock issues. Moreover, ...
Most software today is concurrent and are used in everything from cell- phones, washing machines, ...
While multi-threading has become commonplace in many application domains (e.g., embedded systems, di...
[[abstract]]Concurrent program is becoming commonplace in modern computing. However, the bugs in con...
Testing concurrent systems requires exploring all possible non-deterministic interleavings that the ...
[[abstract]]Software testing and metrics are two important approaches to assure the reliability and ...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
With the increasing dependency on software systems, we require them to be reliable and correct. Sof...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
Concurrent programs are hard to test because of the non- determinism inherit in them. Since non-dete...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Concurrent embedded software is prone to data races, race conditions and deadlock issues. Moreover, ...
Most software today is concurrent and are used in everything from cell- phones, washing machines, ...
While multi-threading has become commonplace in many application domains (e.g., embedded systems, di...
[[abstract]]Concurrent program is becoming commonplace in modern computing. However, the bugs in con...
Testing concurrent systems requires exploring all possible non-deterministic interleavings that the ...
[[abstract]]Software testing and metrics are two important approaches to assure the reliability and ...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...