It's Never Going To Happen To Me!
So, what exactly is a disaster? The word ‘Disaster’ is widely used in our modern-day language, Crystal Palace FC would use it to sum up their first four games of the 2017 season, people of America use it to report on Hurricane Irma and Bake Off would use it to describe a soggy bottom…. So, when we come to talk about software the same rules seem to apply. Whether a software bug disrupts an End Users ability to perform their everyday tasks, or a bug makes your online retail outlet fail to deliver goods, or worse still your data is compromised like what we have seen with the Equifax and their 143 million customers. In all cases these software disasters could have been prevented by better testing.
So, before you embark on your next project, think on the above and take the following advice to avoid that disaster. At inception, getting your requirements right at the beginning of a project is vital. This is where it could all go wrong, poor validation of the original requirements can escalate defects through the SDLC and as you well know, the later the defect is found in the life-cycle, the greater the impact and costs it has. Defects found late in the development life-cycle cost exponentially more than those found early in the project, especially at the requirements stage. Once your objectives are known, do proper test planning and estimating. It sounds simple but don’t do it right and you’ll be heading for trouble, understating and underestimating the effort to test will come back to bite you. Squeeze testing and you’ll add risk to the project success unless you have a well thought out plan to be able to adapt to a changing timeline.
Once you have validated the requirements and done your test planning and estimations you get into the bones of the project and start crunching code. During the development stage, you’ll then need to start validating the code released. Understanding the unit test results and the coverage is an important part of testing. Unit test results give an early indication to both the complexity of the code being developed and also the quality of the code being deployed into the system test environment. Tell-tale signs of poor development are light/non-existent unit test results, multiple compiles of the same code and code reviews are not conducted.
If you are satisfied that Development has been done correctly, then you can move with confidence into System Testing. System Testing to the User Acceptance phase can use Automation testing to compliment this process and accelerate time to market. Automation greatly increases the speed of the testing process and shortens the testing life-cycle. Automation never sleeps, so you can run scripts at any time of the day or night, along with running Automation around a range of machines and platforms at the same time. Obviously, Automation test scripts run faster than executing them manually.
Lastly, when it comes to system performance and security of the system, it is more common than you would like to think that the client has failed to tie anyone down to a meaningful (i.e. measurable) Service Level Agreement or ownership when a problem is detected. The hosting centre for example says they cannot be responsible for the performance or security of another company’s application. The software vendor says they are not responsible for the specification and delivery of the hardware and therefore cannot guarantee the performance or security. And so, it goes on…sound familiar yet? You need to get to a point where ownership is understood and agreed and a clear strategy for testing is understood and executed at the right point of the project to ensure that the system is operationally and production ready.
Poor quality found in the system/acceptance testing phase that leads to defects being detected will result in code rework or change requests; both will cost you time and money and subsequently you’ll miss your original requirements without correction. Either way this is a software failure. A review of your current processes and procedure will help determine the best approach for you to take and give you a clear roadmap for success and avoiding any software disasters.
nFocus Testing are ideally placed to help advise, support and deliver a Software test assessment in a cost-effective manner to your organisation.