What are the challenges facing software testers in integration testing?
I believe the greatest challenge for testers in integration testing is much the same as it is for any testing effort: over-simplification. There is a dangerous trap in the thought that “all you have to do is…”
With integration testing, many organizations and teams will view the test effort as a fairly end-to-end, linear effort. Check the points where systems make contact, and if no problems are found, then you can call it a success and ship – except that systems rarely work, or are used, in a linear fashion.
The most common problem I see with integration testing is that most attempts at integration testing do not recognize that people “using” the system have different expectations of the system, and will use the “integrations” differently depending on those expectations and their business needs.
The project that helped get me hooked on testing and concepts around overall quality of software development was an assignment to “just test” a system to make sure all the pieces worked together. It should not have taken too long because it was written by two experts – except none of the pieces actually worked together if you varied at all from the one path they had worked out as being “right.”
Real people don’t work that way. Real “users” get distracted and get pulled away and mis-key things and have bad days and sometimes end up in places where they should not have ended up.
If our integration testing does not consider these ideas, we are not really testing the application as it will be used in the field. We are not addressing the suitability of purpose. That being said, can we say then that our “testing” has done anything to advance our ability to assess how the system, application or function under test will actually integrate with other systems?
What it boils down to is this: following the easiest path in integration testing is fairly easy for planning purposes and getting a “green light;” however, it is not likely to help determine how the application or system will actually interact with other applications.
This was first published in March 2012