Why Teams Need to Make Testing a Priority
Why Teams Need to Make Testing a Priority
Test managers and software teams need to make testing a top priority when developing mobile applications and when dealing with compressed release cycles.
Join the DZone community and get the full member experience.Join For Free
DevOps involves integrating development, testing, deployment and release cycles into a collaborative process. Learn more about the 4 steps to an effective DevSecOps infrastructure.
On August 1st, 2012, Knight Capital lost $440 million in 30 minutes due to a software defect. The software automated electronic stock trades, using a strategy known as High-Frequency Trading, or HFT, and literally caused the software to buy high and sell low. We may never know the root cause of the problem; it could have been caused by bad internal controls, product management, or careless development, and it was certainly made worse by a lack of testing.
One possible reason Knight Capital did not find the bug is because testing is often an afterthought in the software development process. Testing happens when there is time, and in this case, there might “not have been time.” The lack of time led to a $440 million loss.
Here are two examples when test managers and software teams need to make testing a top priority: when developing mobile applications and dealing with compressed release cycles.
Mobile App Feedback
According to this report from 2015, 57% percent of people will abandon a product that takes more than three seconds to load. There are so many alternative versions of most products in the app marketplace that a user doesn’t need to wait for a bug to be fixed, or spend time giving feedback. They can just search for a competing app that is highly rated, install it, and get back to what they were doing before bad software slowed them down. The only feedback the software maker gets is a shrinking customer base.
While beta tools and feedback forms exist, they are too late. Feedback from live users typically means bad reviews on the iTunes or Android store and low ratings, which lead to poor search results. Properly executed software testing will predict how end users will perceive the app, whether good, bad, or indifferent. While testing is a critical component to success in today’s software landscape, some companies still entrust testing, to the newest employees fresh out of college. This hiring strategy results in teams of people who aren’t fluent in software testing and miss important problems. Once software is in production, development teams either think that no news is good news or get the poor results mentioned earlier.
A good test management plan helps managers make decisions about where to focus and what is at risk. Software testing informs management:
- If the software is performing fast enough.
- If there are bugs that prevent people from using important parts of the product.
- If the software taxes system resources, memory or battery.
Once managers have that information they can make informed decisions about how to fix the product, rather than customers silently deciding they no longer want to deal with the problems.
Modern Release Cycles
In the not so distant past, software was a physical product that came on CDs, disks or even magnetic tape. Today, software is released at a much faster pace, often in the cloud, where the customer having to install anything.
When it was delivered as a hard copy, software was expensive to fix and redeploy. It needed to be right, or as close to right as possible, on the first try. Test management at that time reflected the high stakes of each release. Today, the pendulum of release intervals has swung far in the other direction. Companies routinely release software every two weeks; some are pushing new code into production several times every day.
While these shorter release cycles mean that a problem introduced today can potentially be fixed in two weeks or less, it also means that customers have to deal with new bugs introduced at the same rate.
Good test management on Agile teams helps find problems and get them fixed, faster. Small code changes flow from development to test in days or hours instead of weeks or months. Testers are embedded in the technical teams to help find problems early and often, instead of the day before a release or, worse: in production. Getting to that ideal means not only testing new features but also tracking changes along with possible emergent risk.
Invest in Test Management
Companies that make test management a priority are able to release good products that people are happy to use. Those that neglect this priority may not find out they need to correct until it is too late and the customers have vanished.
The knight capital scandal happened in a fast monitor and fix environment – yet, still, the company lost $440 million in about an hour.
Don’t let a Knight Capital scandal happen to you.
Interested in more free software testing resources? Check out our resource library.
Published at DZone with permission of Kyle McMeekin , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.