REAL-WORLD INTEGRATION

architects without artefacts

Integration war story - Mind the gap

10/12/2009 12:07 PM

Once upon an ERP project, somewhere near production deployment, a nasty show-stopper bug tore down the dream of production use of ERP in scheduled time. Well, nothing out of the ordinary in that. Bugs should be found before production deployment.  And this tiny little bug was not even the nastiest sort, a mere data mapping flaw that revealed itself only with certain rare message and content. Why am I even writing about it? Well, in this particular customer case, these show-stoppers started to be more of a habit than a rare accident. What really made the customer to hit the roof was the fact that bugs were always found in either deployment testing or in integration testing and yes – sometimes they were not found at all. Or actually they were found, but not by the testing steps. They were found by the end users in production.

Before I go further with the story, I think I should open up how we manage/execute testing of an integration solution in general. Testing happens in steps:

1.      Unit Tests during implementation

2.      System Testing  with partial processes (e.g. 2 units) with mock-ups emulating  interfaces (a.k.a Component Testing)

3.      Integration Tests in customer’s test environment

4.      Load and Stress Testing (if requirements define so)

5.      Production Deployment tests (in cyclic-deployment) when putting solutions online.

With this customer Integration Competency Center is responsible of defining processes and continuously evaluating their execution. Among other indicators, quality of development process execution is measured by the amount of bugs found in integration and deployment tests. I was participating as an external supplier member in a weekly ICC meeting when this issue of continuous bugs was brought up and problem solving was assigned to me.

I was surprised how that well-defined development process with lots of built-in testing could end up with such a lousy quality. Closer study revealed that persons, who were writing the business use cases at the customer side, provided us with only one or two successful test cases with test materials. This oversight led to situation where all testing steps using that material failed to cover the whole solution sufficiently and bugs were able to hide themselves easily in non-tested work-flow paths or maps. Pointing out the fault was really easy. But hey, wait a minute! Why ICC did not find out that well-defined deployment process was just missing adequate amount of test cases? The reason for this was also obvious: in that incarnation of ICC, no one was responsible of testing. What they were missing was a Test Manager, whose mission among other things is to whip out the test cases and test material.

Ever worked in an organization in which processes are well-defined and also realize in daily work? I have. So I emphasized the meaning of the process definition in our Integration Competency Center Guide.  Application integration has similar processes as software development. Well done process definition carefully designs inputs, actions and outputs of each step that process must take to achieve its goal.  In addition ICC defines also roles, responsibilities and tasks that are required to execute those steps. Nothing shall fall in the gap between these steps or roles, not even the test material. As underground in London so kindly reminds us: mind the gap.

Posted by Antti Toivanen

Response to “Integration war story - Mind the gap”

12/18/2009 02:00 PM - by whopper
Actually I think those guys at that Company are a light-year ahead. Are they really testing that much? How Integration tests of integration solution should be managed?

Response to “Integration war story - Mind the gap”

12/21/2009 03:43 PM - by Antti Toivanen
Well yes they are testing a lot - and for a reason. Integration plays highly business critical part in their business.

In our methodology Integration testing of an integration solution means that we really test the whole sequence of messaging and related systems. For simplified example:

1. When integration receives, lets say work order, it is validated, transformed and put to ERP via its interface. Technical acknowledgement is sent to original sender. Testing this part is called System Testing - not integration testing from our point of view.

2. ERP's user handles the order and sets parameters to it. ERP gives an Acknowledgement of scheduled work to Integration, which transforms it and sends it back to orginal work order sender.

3. Orginal sender acknowledges technically the business acknowledgement it just received.

4. Change request.... and so the sequence continues.

Integration testing of integration means that we should test the whole process as an entity instead of just looking small parts of it.

Leave a reply

Blog Archives
Search from Blog