Information Technology Reference
In-Depth Information
level. Such emergent behavior requires that quality be defined and assured
at a system level. As James Madison said (and Robert Jervis quotes in his
excellent topic,
): “had every Athenian citizen been a
Socrates, every Athenian assembly would have been a mob.” The wings,
the engines, and the wheels may all be working fine independently and
still the plane might not fly. Similarly, each of the screens may have passed
QA; yet when the application is put together, the performance is far from
satisfactory. Performance, therefore, is an emergent property of systems.
Systems testing validates the behavior of the system as a whole. An
example of testing at this level is the beta test. It is an essential step that
some organizations ignore, assuming that integration testing, which deals
with integration between internal components, is sufficient in uncovering
“system-level” problems.
System Effects
Integration Testing
Integration testing is slightly different from systems testing. Integration
testing deals with the relationships between the components of a system.
If two modules, A and B, are tested together to ensure that the output of
A is readable by B, it is an example of integration testing. Integration
testing is essential whenever two modules are developed independently.
Factors that determine the efforts required for integration testing include:
Frequency of data exchange
Number of integration points
Quantity of data being transferred
Whether it is unidirectional or bi-directional integration
Integration testing best captures any idiosyncratic behavior of a com-
ponent, for example, one that does not check for (or sends) duplicate
records and expects the receiving component to remove duplicates (de-
dup). Integration testing has its own set of test cases, which are invariably
of the black-box type. Even when individual modules have passed their
own tests, internal problems can be discovered through integration testing.
Unit Testing
Unit testing deals with the internals of a component and conventionally
refers to the testing done by the developer. Developers should be encour-
aged to test their code before submitting it for formal QA. The developer's
closeness to the code, and his or her immersion in the coding process,
Search WWH ::




Custom Search