Compatibility testing shall use a model of the software/system that specifies its compatibility requirements. Compatibility requirements are concerned with the ability of two or more components to perform their required functions while resident (but not necessarily communicating) in the same environment. Compatibility testing may also be applied to multiple copies of the same component.
NOTE: Compatibility requirements should normally include one or more of the following sub-requirements:
|Order of installation. Explicit order(s) of installation (otherwise it shall be assumed that all possible orders of installation are valid) shall result in a configuration where each component will subsequently perform its required functions correctly.|
|Order of instantiation. Explicit order(s) of instantiation (otherwise it shall be assumed that all possible orders of instantiation are valid) shall result in a run-time configuration where each component will subsequently perform its required functions correctly.|
|Concurrent use. The ability of two or more components to perform their required functions while running (but not necessarily communicating) in the same environment.|
|Environment constraints. Those features of the environment, such as memory and processor, that may affect the ability of the components to perform their required functions correctly.|
Test cases shall be designed to exercise the specified compatibility requirements. Where necessary a systematic approach to the selection of the possible permutations of requirements shall be employed.
For each test case, the following shall be specified:
|The input(s) to the system|
|The compatibility requirements to be exercised|
|The expected outcome|
Compatibility testing shall be measured as the percentage exercised of the total specified compatibility requirements.