ROI of functional and non-functional testing
Return on investment is somewhat of a controversial topic in the software testing community. Some say that there is no definitive way to calculate ROI of software testing, while others go as far as to claim that ROI in software testing is a myth.
As it’s often the case, the truth is somewhere in the middle. Calculating the return on investment of your software testing efforts is incredibly difficult for one reason: you can know for sure how much your testing project costs, but you can’t know exactly how it influenced your profit.
On its own, software testing, neither functional nor non-functional, does not generate profit. But with the help of timely testing, you can increase your profit by preventing software bugs, security issues, usability problems, and other factors negatively affecting your product’s position in the market.
So is there a difference between functional and nonfunctional testing in terms of ROI? If we look at the place of these two types of testing in the testing process, we will see that functional testing often takes place earlier than non-functional testing. And we know from Boehm’s law that the earlier bugs are spotted, the fewer resources are spent on fixing them. Plus, functional bugs are often easier to locate, especially when there is enough documentation to begin with. All of this makes functional testing noticeably cost-effective.
Non-functional testing, on the other hand, typically happens at the final stages of the software product development or sometimes even after its release. At this point, fixing a bug takes significantly more time and money. Moreover, non-functional bugs are often harder to spot because they deal with the finer aspects of the software product’s operation.
However, you should always keep in mind that non-functional testing should not be viewed as secondary to functional testing. Both of these testing types have a direct impact on the reception of your software product, so even in situations where the ROI is different from your expectations, it’s not a reason to limit your testing efforts.
Can you skip some types of testing to save money?
There is no standardized set of functional or non-functional tests that need to be performed on the product. In every situation, the scope of testing is defined by the factors we have talked about earlier in this article. However, in most cases, QA engineers run both functional and non-functional tests on a software product. This is done to make the testing process comprehensive and effective, which will result in a thoroughly tested product with a minimum probability of failure.
If we are talking about an abstract software product, then yes, it’s sometimes possible to scale down the scope of testing if you are strapped for resources. However, your testing project still needs to include both functional and non-functional tests.
The only time you can skip non-functional testing entirely is when you are developing a product that is not intended to be interacted with by regular users, such as a utility software product with no user interface. And even then, you will likely need to test its performance, installation, ability to withstand different loads, and other qualities that factor into the success of a software product.
Why non-functional testing is as important as functional testing when it comes to investing your time and money
The importance of functional testing is usually not a subject of a lot of debate since it deals directly with the intended functionality of the product — the exact things it was designed to do. However, for those who are new to software development and testing, non-functional testing may not seem as essential. Moreover, since non-functional testing tends to be resource-intensive, product owners often wonder whether it’s a worthwhile investment.
The bottom line here is simple: a software product with insufficient or missing non-functional testing is never going to perform as well in the market as a product where every non-functional aspect has been tested down to the smallest possible detail. Although there is more than one important functional and non functional testing difference, these are not mutually exclusive testing efforts. Your job here is not to try to cut down on non-functional testing in an attempt to spend fewer resources, but to find a QA team that is a perfect fit for your needs and budgets.