Categories: Integration and Test
Learning a lesson the hard way for the second time is a bitter pill to swallow.
It will suffice to say that my believe in continuous I&T has been strongly reinforced. Partially due to my late arrival on one of my projects, and partially due to circumstances beyond the control of myself or my team, we were only able to do real integrated testing in the last few months.
We're still reeling from the consequences of not having started doing so much earlier.
Benefits of end-to-end testing, early and often:
- Find internal interface problems early - In a complex software system, unit testing is necessary but not sufficient. Those internal components need to be speaking the same language to talk to each other properly, and even if you are coding to the same set of specifications there will be difference in interpretation. That is why integrated testing is so important.
- Find external interface problems early - When your system interfaces with other systems built by other teams, this becomes even more important. There are more changes for interpretations to be different when teams attend different discussions and assumptions get made.
- Team building - I can't stress this one enough. If your team is made up of people working in silos on their own little components who rarely throw them together and see what breaks, you lose out on so much beneficial communication and collaboration amongst your team.
So, even if you are not doing an agile approach, it's still important to do a build of your system every few weeks or once a month and see what breaks. After all, the purpose of testing is to try to break what you've built. Your team may be uncomfortable with this, especially if they are used to being able to polish their own individual pieces before displaying them to the world.
In this case, it pays dividends to be uncomfortable. Discipline yourself and your teams to be comfortable with little, continuous simulated failures, so that you don't have to deal with a large, catastrophic failure on your project.
|Share this with your network|