As a software engineer, bugs are part of my daily life. I’ve developed a trained eye for bugs. Thanks to software errors, delayed projects are more the norm than the exception. Consequently, delayed projects cause high technical debt.
However, a better testing strategy can address the issue. I look at you puppeteer. But in software development, the budget for testing is often the first one to get reduced in favor of more features.
What's the financial damage caused by software bugs? Tricentis had issued a report on software failures in 2017. It was concluded that companies faced almost 1.7 trillion US dollars worth of software failures. This affected 3.6 billion of the population.
Let's have a look at a case study. In 2012 a server of Knight Capital Group was forgotten during a software update that created millions of stock orders. As a result, trades exceeded half a billion dollars within a short time. The owners bailed the company out with 400 million and the stock price fell by 75% within two days. This is an extreme example, but not a single case.
It doesn’t even need to be 75%. Even just 3% can amount to a large sum, given the company is considered the most valuable worldwide. In the case of a recent tragic Tesla crash, which is suspected to be linked to the autopilot software, 3% Tesla stock decline amounted to around 20 billion dollars. This exceeds the GDP of a small nation.
Yeah, sure. But the costs of fixing it later are much higher. A bug discovered in various phases leads to more work:
As you can see, bug-related costs are increasing with each step. With IT services generally on the upper end of the price scale, this is a lot of wasted effort.
Testing shouldn’t be a secondary priority. It’s nothing you should “add on later” or “when we have more time”. Testing needs to start at an early stage of the project.
The development of best practices plays a big role here. Ensure to have enough time for test-driven development. Make sure to cover end-to-end testing as well.
Towards the end of testing, there are a few questions that need to be addressed to ensure future problems won’t arise:
Also developing a software testing philosophy is imperative. This would include developing a testing culture, building a group of standard testing preparation tasks, implementing test methodologies, improving the effectiveness of the test process, and the appropriate way to use the final outcomes.
If you liked my article, you might want to check out my dev blog or business blog. I occasionally send out an email for those who are interested.