Component-Based Software Testing with UML

4.3: Model and Architecture of Built-in Contract Testing

4.3 Model and Architecture of Built-in Contract Testing

As explained in the previous section, a component interacts with its environment, the other components in the infrastructure, at runtime by means of client/server interactions. One of the parties in an interaction plays the role of a client, the other that of the server. When an otherwise fault-free component is deployed in a new environment, there are only two basic things that could go wrong during its execution:

  • either the component itself is used incorrectly by others,

  • or one or more components that it uses and is depending on malfunction.

Both of these scenarios can be characterized in terms of the client/server relationship: the former implies that one or more of a component's clients behave incorrectly, while the latter implies that one or more of a component's servers behave inappropriately. Checking that these errors do not arise, therefore, can be characterized as checking that the contract between components is adhered to. The two situations identified above are highlighted in the generic deployment scenario illustrated in Fig. 4.1. In terms of this diagram, there are two things that should ideally be checked at runtime to ensure that a deployed component's contracts are adhered to:

  • The deployed component (with the thickened border in Fig. 4.1) must check that it receives the required support from its servers. This includes the explicitly acquired servers, in this particular instance components C and E, and the implicitly acquired servers. The implicit servers are the components that the runtime...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Time Servers
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.