10.6 Metrics for OO Designs
10.6.1 General Aspects
Experience gained in recent years has shown that OO designs bring new problems to the testing process. As shown in Figure 10.35, whether we're dealing with classes, objects, or systems, three aspects are central to the design: structure, dynamics, and function.
From an overall perspective, testing is much the same for all systems structured as sets of software machines – with one proviso. If the machines are OO objects and inheritance is used, then new, significant factors come into play. Many specific issues are discussed in the following sections.
As portrayed here, system-level testing is akin to integration testing. Here, the following aspects have a major effect on the amount of testing needed:
- Coupling between objects
- Responses to messages
- Methods available (which impacts on the first two points)
By testing such features, we can establish the following:
- Overall functional behavior...