Friday 14 August 2015

Concurrency In Practice - PART III [Liveness, Performance, and Testing]

Concurrency In Practice  - PART III  [Liveness, Performance, and Testing]

Testing Concurrent Programs

Liveness properties present their own testing challenges. Liveness tests include tests of progress and non-progress, which are hard to quantify—how do you verify that a method is blocking and not merely running slowly? Similarly, how do you test that an algorithm does not deadlock? How long should you wait before you declare it to have failed?

Related to liveness tests are performance tests. Performance can be measured in a number of ways, including:
Throughput: the rate at which a set of concurrent tasks is completed;
Responsiveness: the delay between a request for and completion of some action (also called latency);
Scalability: the improvement in throughput (or lack thereof) as more resources (usually CPUs) are made available.


No comments:

Post a Comment