The Cost of Software Bugs
Software development is a complex and expensive process, and ensuring that software is free from defects is crucial to reducing costs and maximising return on investment. The economics of software testing refers to the study of the costs and benefits of software testing, and how it impacts the overall economics of software development and maintenance. Axinqa explores the economic impact of software defects and the role of software testing in reducing the costs of software development and maintenance.
Software defects can have a significant economic impact on organisations. Here in the United Kingdom during 2018, an IT blunder meant that more than 10,000 patients may have been given the incorrect medication. The actual failure, which was identified in August of 2018 (affecting up to 10,053 patients at 330 general practices), meant that repeat prescriptions that should have been cancelled continued to be provided to patients.
Separately, another issue occurred when a system that was designed to update patient records failed to do so, meaning that doctors were viewing out of date information when deciding on medications to prescribe. Surprisingly, both softwares were governed by one of the two major general practitioner IT systems that is used in the United Kingdom. Although not an economic impact for the NHS, this case demonstrates the level of impact of what poorly tested software can achieve.
Moving across the pond -- in 2002, software bugs cost the United States (US) economy approximately £46.7 billion, then in 2016 that number jumped to £87 billion, and then again in 2020 the Consortium for Information and Software Quality reported that poor software cost US companies £1.65 trillion. The losses over the years span all industries and include costs from operational failures, unsuccessful projects, and software errors in legacy systems.
The costs of software defects can be broken down into two categories: internal costs and external costs. Internal costs include the costs associated with fixing defects and performing maintenance, while external costs include the costs associated with lost productivity, downtime, and damage to a company's reputation. External costs are often more significant than internal costs, as they can have long-lasting effects on a company's bottom line.
Software testing plays a critical role in reducing the costs of software development and maintenance.
By identifying defects early in the development process, software testing can help to reduce the costs associated with rectifying issues and performing maintenance. Testing can also help to identify potential issues before they cause downtime or lost productivity, reducing the costs associated with external costs.
Capers Jones, Vice President and Chief Technology Officer of Namcook Analytics explains in his research textbook, 'Applied Software Measurement: Global Analysis of Productivity and Quality', that the cost to address bugs post-release is £13,000, but a bug found at the design phase costs £21. That means a company's quality assurance budget is being spent on fixing bugs that could have been solved for much less, and earlier on in the release cycle.
"Removing 100% of software defects is almost impossible, but achieving defect removal efficiency levels that are higher than 95% should be a minimum professional requirement. In fact such levels of defect removal efficiency should probably be included in software outsource contracts."
One way that software testing can reduce the costs of software development and maintenance is through the use of continuous testing. Continuous testing involves integrating testing into every stage of the software development process, from design to deployment. By integrating testing into every stage of the development process, continuous testing can help to identify defects early and reduce the costs associated with fixing defects and performing maintenance.
A great quality assurance and software testing team does not come for free, but the cost incurred by fixing bugs post-release can be overwhelming. In order to safeguard the future of any business, particularly those that are tech-centric, testing needs to be at the forefront of everyone’s minds.
The final point here is that the economics of software testing is a critical aspect of software development and maintenance. Software defects can have a significant economic impact on organisations, and software testing plays a crucial role in reducing the costs associated with those defects. By using continuous testing (or any other genuine approach to testing), company's can reduce the costs of software development and maintenance and ensure that their software is functional, reliable, and meets the needs of their end-users.