O'Reilly logo

Quality Code: Software Testing Principles, Practices, and Patterns by Stephen Vance

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Use Supervisory Control

Sometimes, when you are testing, you just cannot find a seam. Maybe a class is too well encapsulated. Perhaps the designer of the software under test did not recognize a need to allow the calling code to insert behavioral or monitoring hooks into the software. Maybe the software is already highly synchronized to a point at which it “couldn’t possibly have a race condition,” at least until the ongoing evolution of the system changes the assumptions under which it was originally thread-safe.

The latter happened in a system I worked with at one time. Imagine a system in which autonomous agents10 collaborate in a manner governed by a tightly designed state machine to collectively achieve the application goal. In this particular ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required