I was reading this
blog post this morning (Arlo works here, by the way) in which the author gives
some advantages of a good test suite. It
is a great read and I want to use it as a springboard to summing up the
benefits of integration testing.
In our example, we
had one integration test that compared the written specification of a proposed
muffler combined with a proposed engine.
If the engineers want to use a new muffler, we can immediately tell if
it can handle the exhaust from the engine currently being used. We don't need to pay to order a test muffler,
pay to remove the old one, install the new one and then finally find out it
doesn't work. (In this example, we would
actually damage the engine or some other physical component. That seldom happens in the software world -
just restore the previous build and keep going). This test can save thousands of dollars and
several days worth of work if the muffler + engine combination are not
compatible.
The actual hardware
test will also pay off. If the
specification is not right, or if the engine is operating outside of
specifications, we can find that out before
the car is sold. To say the least, that
would benefit customer satisfaction since the engine will work properly
always. You can imagine the downside to
shipping a defective car - especially if good testing would have alerted us to
the defect early enough to address it.
Thanks for following
along with the notional integration testing thought experiment. I'm going to get back to doing that right
now!
Questions, comments,
concerns and criticisms always welcome,
John