Integration Testing

Written by Joey Godin

What is Integration Testing?

Take a 3/8” bolt with a fine thread and a hexagonal head. Count its threads, measure its width, count the sides on its head, everything checks out. This bolt is machined to an exact specification, and has no flaws in it’s design or form. Take a 1/2” coarse threaded hole, examine it the same. Perfectly machined, perfectly designed to perform it’s function. Both parts have no flaws, no defects, but when put together they’re essentially useless. They don’t fit together.

What Is Its Purpose?

The basic nature of integration testing is not to see how individual components work, but to see how those components or even entire systems fit together. It checks that the nuts match the bolts and the engine takes the oil. No matter how well made a part is, it is useless if it does not fit into the machine as a whole. It is also useless if it does not fit into all the machines it is supposed to fit into. We perform rigorous integration testing in order to root out defects and errors caused by interacting software components in a system and to ensure the system works on all technical platforms within which it will be implemented.

How Is It Executed?

Integration testing is performed in many ways. One of the most common is by USE CASES: following an end-to-end workflow that a user may undertake and making sure everything is passed correctly between each software component used. Oftentimes data can be lost or corrupted, or simply misformatted to be passed to the next software component. These are errors that can be difficult to catch in functional testing, but become easily visible with proper integration testing.

Consequences Of Inadequate Integration Testing?

Poorly designed or executed integration testing, or extreme cases of no integration testing at all, can lull a team into a false sense of security. Just because our components work well does not mean our system functions well as a whole and in the environment in which it will be in production. Very costly defects can turn up after the system has been released, which can result in loss of credibility, loss of reputation, and additional costs. This worst case scenario is a risk that must be properly mitigated with careful and focused integration testing.