Consumers and businesses depend on software every day for a variety of functions, and when bugs strike or errors occur, the consequences can be staggering.
In a recent report, software testing company Tricentis analyzed 606 software fails from 314 companies to better understand the business and financial impact of software failures. The report revealed that these software failures affected 3.6 billion people, and caused $1.7 trillion in financial losses and a cumulative total of 268 years of downtime.
Here are five takeaways from the company's Software Fail Watch 2017 report:
1. Software failures vary by industry
Last year the retail and consumer technology space reported the most software failures, in large part thanks to problematic smartphone updates and the security/hacking exploits intended to target them.
Failures in both services and utilities and the entertainment industries saw a three-year low in media coverage against their 2015 and 2016 rankings. Transportation industry bug stories also dipped slightly.
Public services and healthcare reported 30% lower failures than in in 2016, yet still had significant issues: "We saw countless stories of hacking and tampering with international election processes, WiFi vulnerabilities that exposed the data of billions of people, IT issues that caused tens of thousands of letters that went unsent to patients and doctors, millions of dollars in overpaid medical billing —the list goes on and on."
SEE: Software quality control policy (Tech Pro Research)
2. Software failures vary by environment
Environment plays a role in dealing with software failures. On-premises software had the most prevalent amount of issues last year (300 instances). Mobile/cloud software came in second at 193 instances, and embedded software proved most reliable (relatively speaking) with just 113 failures examined.
3. Some types of software failures are more prevalent
Tricentis found that the bulk of software failures (331 instances) were produced by software bugs. Another 136 instances were caused by security vulnerabilities and 54 the result of usability glitches.
A software bug constitutes a coding error or fault in the program or system which can produce errors, unintended behavior or app failures. A usability glitch is more of a design flaw based on developmental shortcomings, such as producing an error which the user is unable to acknowledge or leaving out a function which might be useful such as providing the ability to paste content into a field.
Based on the above results, clearly, bugs are a significant source of the problem in developing stable and error-free software.
SEE: Job description: Quality assurance engineer (Tech Pro Research)
4. Software failures have a negative impact on company stock and brand
Software failures can be devastating to company value and reputation. UK-based loan company Provident Financial lost 1.7 billion pounds (about 2.4 billion American dollars) worth of market value last year after their scheduling application such that barely half of their loan debts were collected when due. This ended up costing the company 120 million pounds (170 million American dollars) in profit loss and the debacle is considered a record-breaking loss.
From a brand value perspective, consumer technology, public service, and services and utilities suffered the most negative repercussions from software failures last year. Health care and finance suffered the least amount of negative brand impact.
5. Software testing is inadequate
Herein lies the crux of the problem. Software failures occur because software testing sometimes allows problems to slip through the cracks. Software bugs were the most common reason behind these failures, but proper testing would have eliminated these issues, as well as at least some of the security vulnerabilities and usability glitches.
Wolfgang Platz, founder and CPO of Tricentis, observed in the report that software development has advanced significantly over the past decade, yet testing strategies have not evolved accordingly.
"Until recently, the ideas and tools that could make a difference were only fringe players. That dynamic is changing." Platz states that analyst reports like the 2017 Gartner Magic Quadrant for Test Automation indicate that legacy tools (developed two decades ago, some which are still heavily in use today, were never intended to support high levels of quality in the rapid release cycles of today) "can no longer keep pace with software development. A new era is upon us: one that requires us to rethink our software testing strategies, tool stacks, and priorities, and reimagine what we can accomplish in the software industry.
However, with the right strategies, approaches to automation, and better alignment with the business, I am confident that trend will change."
Stackify has detailed guidelines for modern software testing techniques which recommend asking a series of questions at the conclusion of testing for maximum efficacy: where the overall application works, all features function as they should, the application can handle heavy volume, whether there are risky vulnerabilities that could endanger users, and whether the usability factor of the application makes it compelling or frustrating.
Stackify also suggests formulating a software testing philosophy based on developing a testing culture, formulating a series of standard testing preparation tasks, establishing test methodologies, improving the efficiency of the test process and how best to utilize the end results.