Loading

Component Vs Interface Vs Integration Testing


Testing, done at an early stage, of development life cycle, ensures the lesser probability of major defects & issue, at a later stage or after the software product development.

Component, interface & integration testing, are the some of a few testing techniques, which are used to catch bugs & defects, during the initial stage of the development process.

Let's go, through, each of these testing types, to visualize the differences, among them.

Component Testing

Basic Task:

To test, each and every testable component or module of the system, independently.

Goal:

To ensure the hassle free usability and desired functionality, of each & every component.

When to perform:

As soon as, the components are developed, and are in the condition, to deliver some output, on feeding with some input. Further, it is done, before the integration of these components, to form a system.

Involvement:

Mostly, developers are involved, in performing the component testing. However, a tester, may also, makes use of skills and traits, to assist a developer, to carry out the component testing, effectively and efficiently.

How to do it:

Generally, large number of the units, are to be tested, almost against the same requirements and functionalities, therefore, automation of test scripts execution, is usually, preferred, to perform the component testing.

Types:

It may not be further classified.

Tools or resources required:

Sometimes, the proper working of one module depends on the other, which has not been developed, yet. In that case, it seems a difficult task, to verify and validate the desired functioning of a component or a module. The prevailed circumstance, brings the stubs and drivers, in the picture, which are used to simulate the functionality of the missing module, in order to test a particular component.

Interface Testing

Basic Task:

Evaluates, the linking and connection or interfaces (command string, message string or other attributes), among the individual components.

Goal:

To ensure the proper communication, flow of data & control, and correct mapping, among the modules, within the system, and also outside the system, along with the error handling mechanism. Further, it also ensures the proper functioning of the GUI features of the software product.

When to perform:

During the system integration and the interaction with the external system(if any), such as hardware or software.

Involvement:

Normally, the testers are involved, in the activity of interface testing, but the technique, also welcomes, the developer, to assist the testers, in executing the testing activities.

How to do it:

May be carried out manually, by a tester, or with the help of the automation tools.

Types:

There are no further types of interface testing. However, this testing, may be used, to test two major interfaces,
  • Web server and application server interface.
  • Application server and Database server interface.
Other interface types may include work flow, individual system, and the interfaces having high density, using,"Performance, load and network testing".

Tools or resources required:

To automate the process of interface (GUI) testing, various specific tools are available in the market, such as Test Studio, Ranorex, Rational Functional Tester, HP's service test, etc.

Integration Testing

Basic Task:

Evaluates, the integrated component of the system as a single whole system.

Goal:

To ensure, the reliable and stable functioning of each unit or module, after the integration process.

When to perform:

As soon as, the integration of the components, has been completed, after the dusk of unit/component testing phase.

Involvement:

Either a developer or a tester, or both.

How to do it:

May be carried out manually, by a tester, or with the help of the automation tools.

Types:

Majorly, of three types
  • Top-down integration testing
  • Bottom-up integration testing
  • Big Bang Integration testing
Apart from these 3 types, there also exists, a 4th type, i.e. Sandwich integration testing, which is a mixed approach of top-down and bottom-up integration testing.

Tools or resources required:

Basically, stubs and drivers, with the similar use, as mentioned, in the component testing. Further, there are lot of tools available to perform the integration testing, such as Vector Software, LDRA, Citrus, etc.