Contemplating OO testing
Software testing is immensely important prior to any code deployment. Testing object-oriented software will require different techniques than other types of software. Because OO software contains relationships between classes, we must understand how to test dependencies and relationships that may exist between classes. Additionally, each object may progress through different states based on the order that operations are applied to each instance, as well as through specific interactions with related objects (for example, via association). The overall flow of control through an OO application is much more complex than with procedural applications, as the combinations and order of operations applied to a given object and influences from associated objects are numerous.
Nonetheless, there are metrics and processes we can apply to test OO software. These range from understanding idioms and patterns we can apply for class specification, to creating drivers to...