Though we are all fallible, but in the software testing industry, the implications of a single defect can be colossal. The costs of finding and fixing defects rise noticeably as we proceed further in the software development lifecycle. A research by IBM validates the same. If an error is detected in the requirement specifications stage, it’s economical to resolve it there and then with iterative reviews and inspections.
Similarly, if an error is discovered at the design stage, then the design can be rectified and re-issued without a major strain on resources. However, if the defect slips into deployment, and later gets detected by the client, the cost to resolve the problem at this stage swells substantially. Further, if the defect is a high severity defect, the software may need to be completely uninstalled- a faux pas.
A research by Tricentis revealed that in 2016, the cumulative cost of software bugs, glitches and security failures worldwide was a whopping USD$1.1 trillion in assets. Overall, software failures at some 363 companies affected 4.4 billion customers and caused more than 315 ½ years of lost time. Indisputably, we are dealing with life-size numbers here that cannot be overlooked!
In addition to the tangible quantifiable costs of developing and distributing a buggy software, the intangible costs in terms of lost customers are massive. Branding and marketing expenditure to attain and retain consumer attention and interest, and the market value and goodwill generated as a result can all be lost in a jiffy. Besides, while happy customers might tell nine friends, unhappy customers, on an average, tell sixteen, and that’s a fairly heavy price to pay.
An example of a poor website performance is adequate to illustrate how customers may completely abandon your website, and may influence others too in the process:
Hence, it is imperative to take crucial and timely measures to discover and rectify defects early in the SDLC. And although the concept of Zero Defects cannot be applied literally, yet reducing wastes and defects to a minimum is what product owners must strive for.
According to Tricentis, the majority of software related defects were linked to software bugs, then security flaws, and finally, usability glitches. With a specific focus on this chronology, let us figure out how to manage defects from the beginning for a superior end-product and an increased speed to market.
Defect Management is best taken care of by means of Defect Prevention and Defect Detection. These play a vital role in preventing huge costs and delivering a quality end product— speedily.
Defect prevention is a QA process whereby the testers study and review requirement specification documents, expose the ambiguities, if any, and involve stakeholders early on to clarify the doubts. The document is then updated and a number of defects are thus prevented from being introduced into the product at an early stage. But all defects cannot be caught upfront, and a number of defects get introduced along the development process too. As such, continuous defect detection at each stage, with a specific focus on the areas where the chances of defects are high, is equally significant.
For this, testers need to execute both scripted test cases and exploratory tests. Exploratory tests are apt for dynamic functional requirements. They offer wider scope for debugging and exception handling and are exhaustive, detail oriented and user-focused. At the same time, the power, time-saving capability, and accuracy of automation testing tools cannot be undermined; hence, an ideal approach to track defects should involve a combination of both. Open source bug tracking systems like Bugzilla, Mantis BT, Redmine and Fossil can prove useful in keeping a track of the reported software bugs in software development projects.
Further, when fixing these defects, the developers should initially focus on the important defects worth fixing, rather than falling for the numbers— defect severity and defect priority must be taken into account. And finally, once the defects are fixed by the developer, the tester should then retest the particular defect(s). Once an open bug is closed, the defect journey ends, but the defect must be verified in later releases to check if the expected behavior is being achieved, and the defect has been completely fixed. No doubt, some level of duplicity of work, time and resources is required to handle these defects, but it is worth the effort considering the costs and implications of a buggy end-product. Nevertheless, the key takeaway is to prevent most of the defects from occurring in the first place— Defect Prevention.
Code Review and Root Cause Analysis, in addition to the Requirement Specification analysis, are good practices to count on for defect prevention and detection.
To err is human, but the costs of these errors need to be considered and contained. In addition to pre-test reviews and investigations, rigorous testing must be done at all points in software development lifecycle, potentially saving a lot of time, effort and money.
Defect Prevention & Detection can be especially helpful in:
- Reducing the rework effort
- Reducing the errors and hence lowering the cost of the project
- Better utilization of resources
- Offering superior software quality assurance
- Minimizing project risks
- Improving end-user experience
At Astegic, we have a dedicated team of QA & software testing professionals that apply QA best practices to consistently deliver a superior end-product with reduced time to market, reduced cost and high efficiency in IT operational processes. Our professionals are adept at applying both QA automation and manual QA testing at each of the SDLC to optimize the deliverables.
So, bid goodbye to bugs!