Component-Based Software Testing with UML

4.2: Motivation for Built-in Contract Testing

4.2 Motivation for Built-in Contract Testing

The philosophy behind all built-in testing concepts is that an upfront investment on verification and validation infrastructure pays off during reuse. In component-based development, this follows the same fundamental ideas of gaining return on testing investment through reuse of the built-in testing artifacts. The more often a component will be reused, the higher is its rate of return, and this applies to its functionality as well as its testing. This is the case only if the testing artifacts are permanently built-in, and are always deployed, or at least purchased, together with the component.

4.2.1 Objective of Built-in Contract Testing

The objective of built-in contract testing is to ascertain that the environment of a component meets the component's expectations, and that the component meets the environment's expectations. These two views are the only things that can change in component integration. This is illustrated in Fig. 4.1. Typically, if we bring components together to form a new application, we will find a number of individual units that are nearly good enough for the purpose. It is extremely unlikely that we will find all components in forms that exactly match all other components that we are going to reuse. Normally, we will have to perform some syntactic and semantic mapping at the boundary between the deployed component and the component infrastructure in Fig. 4.1. In Chap. 2, I explained how this is typically done in a development method. In order to achieve this mapping we cannot usually...

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: Product and Component Testing Services
Finish!
Privacy Policy

This is embarrasing...

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