What sort of person would you have become if your education and your tests had all only started when you were 18? Imagine all the things that could have gone awry, all the wrong turnings you could have taken if nobody had been there to help, to test, to correct, to guide… Maybe software projects don’t last quite as long as 18 years, but the same principle applies. Your software baby needs to be tested regularly from birth to maturity, to make sure all the vital parts are functioning properly and that everything is developing as it should.
Horror Stories of Faulty Testing
Why then do some software project teams shove testing to the back of the queue? ‘We’ll do it later’, ‘We’ll check it when it’s finished’, or simply ‘According to the time we have left’ are testing policies that are all too common. The results are what you’d expect: software that doesn’t work or that malfunctions, sometimes with the direst consequences.
- Is 35 million miles away too far to send a technician? Oh yes. But that’s where NASA software bugs started to play havoc with the robot sent to explore Mars.
- Paychecks with nothing but zeroes. A software engineer made a small change in a beta software accounting product, too small to need testing – in theory. The next day, fifty beta test customers phoned in to report the software malfunction.
- Exploding steel plants. This is what can happen with the ‘testing in production’ approach, also known as ‘We’ll do it later’. Except that when software sends red-hot steel slabs the wrong way in a steel plant, it’s too late.
You’ll Still Have to Pay in the End
Reasons for these kinds of problems include lack of time (the schedule is too tight to fit in adequate testing), lack of budget (not enough money to employ testers), lack of resources (no testers are available), and lack of understanding (being unaware of the importance of timely testing). However, ignoring testing while software development is being done will simply come back and bite you afterwards. The earlier problems occur in the software development cycle and the greater the delay in fixing them, the more pain and expense afterwards to fix them. This is why you had braces on your teeth as a kid. Now you have no braces and a nice smile. Think about it.
A Better Solution with Automated Testing
What can you do if you’re working within time, financial or resource constraints? One solution is to use automated testing. The condition is that such automation helps you to work within your constraints, rather than adding to them. The automated test software itself needs to be easy to use, affordable compared to hiring an additional test engineer, and effective. When all that is true, you can expect gains in productivity and reductions in cost. TheStreet, Inc. is an example of a digital financial media company using automated testing software to bring out products daily on demand, instead of the weeks-long process required previously.
All Part of Growing Up
But isn’t there a risk that testing in parallel will alter the software development? Absolutely, and that’s the whole point. Testing is not a separate activity to software development: testing is part of the software development, and helps to correct and guide software development to a fine, upstanding release. To underline the importance of it all, even Microsoft states that it employs as many software testers as developers and makes test automation templates available on its website.
So nurture your software development through smart application of parallel testing, and use automated testing software as long as it eases your constraints. And may you have many healthy software projects and all live happily ever after.