Chapter 13. Parallelism

This chapter introduces techniques to tackle one of the harder testing problems: deterministically reproducing multithreading race conditions. Unlike most of the other techniques presented in this book, the ones in this chapter are less likely to be used in a test-driven development scenario. Race conditions typically show up as bugs, not as behaviors that we predict during development or that we use to derive coverage. However, race-condition bugs can be some of the most frustrating for users, developers, and support people alike. Reproducing these bugs to ensure that they are fixed and stay fixed provides a significant advance in confidence for our software processes and systems. These techniques also apply quite well ...

Get Quality Code: Software Testing Principles, Practices, and Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.