Testing is a vital part of the software development process, but it’s easy to take it too far. Most people want to avoid failures, but spending too much time on testing can lead to delays in releasing products and add to costs unnecessarily.
Testing plans
Testing is usually planned into the development cycle, and there will be an appropriate budget set aside for the software testing services needed. How much testing you need to plan can be partly determined by the experience gained from previous projects.
You do need to ensure flexibility. If lots of faults are found based on the initial set of tests, you may need to allow additional testing to ensure that they are fully eliminated. On the other hand, it’s important not to become complacent. If only a few errors are found initially, that is not an invitation to cut corners.
There will usually be a master test plan in place, but within this there will be individual phases so parts of the software may have their own sub-plans leading into the master.
Avoiding the headlines
Software failures sometimes make the headlines. If you want to avoid making the news for the wrong reasons, it’s important to test properly. External organisations such as www.bugfinders.com can help if in-house resources are limited.
Companies often turn to risk analysis techniques to determine the best testing strategy. This can help uncover which aspects of the software will have the greatest impact on users or safety, or which are most visible to users and therefore need the most thorough attention. In cases where there isn’t time to test the whole application, attention can be focussed on the critical areas.
Code complexity also needs to be taken into account. The more code there is and the more complex it is, the greater the opportunity there is for errors to creep in. Since much modern software is built on a modular basis, it isn’t always necessary to carry out extensive testing of individual modules. However, it is vital to look at the interactions between them.
Knowing when it’s time to stop testing ultimately comes down to risk. Tests need to be prioritised according to impact, complexity and visibility so that any errors that do occur will not be severe.