The old saying goes: “a chain is only as strong as its weakest link”. In that sense it’s rather strange that a lot of the IT projects I’ve witnessed have skirted around the combined integration testing between two teams.
Usually this becomes apparent when the product is being demoed for the first time. The teams show how the two systems connect with each other. Then it’s time for the questions. I’ve got a pre-selected bundle of questions that I ask:
- What happens if the system A tries to send information to system B but the system B is down? Is the message queued or is it lost?
- What happens if the system A is sending information to system B but the data connection breaks during the send? Is the entire message resent? Is there a possibility that some of the data has reached system B and for instance the message’s unique id number is already filled?
- Does system B send back any confirmation to system A? What if this confirmation is not sent? Will system A retry its message?
- Does the system A allow system B to change anything? Is the integration push or pull or does it work with queries?
These questions might seem obvious and the answers to them should be obvious as well. If the development team can answer them right away with good arguments, the situation is good. However if any of them are answered with a blank stare and “well…I don’t really know” then the situation is bad.