What type of designs are needed to write integration test cases?
A user asks, "What type of design documents/designs (data flow, use case) exactly are required to write integration test cases?" Mike Kelly provides an approach to this question.
To answer this, I'll take a different approach. Instead, let me tell you what I look for when I'm doing integration testing. I'm often looking for disagreements between the parts. To be able to test for those disagreements, it's often helpful to understand what's supposed to happen. There are a number of ways I can develop my understanding of what the various components should be doing.
I can learn about expectations for the interaction based on:
- my understanding of the business problem trying to be solved.
- conversations about the functionality with other people on the project team.
- design documents for the components, the integration or the system in general.
- mapping documents or data-flow diagrams that show how information is moved through the components and what transformations take place.
- state diagrams that show what events take place and when.
- database, XML and other data schemas used in the process.
- other testing I've done or reviewed (at the unit level or system level).
- other similar types of integration I've worked with on past projects.
- and the very last integration test case I've executed (because I'm always thinking of new tests as I'm executing tests).
I suspect I even missed a couple of things I do to come up with test case ideas when I'm doing integration testing. The point is, there are a number of ways you can come up with your integration test cases, only some of them are requirements or design documents. Your project development methodology will likely dictate what's required, but that doesn't mean it's either sufficient or useful to actually accomplish the testing you'll be doing -- it does typically indicate that in the past those documents have been found helpful when solving integration testing problems.