Laser Focused QA and its Role in Improving Your Software Development ROI

Modern society’s dependence on software requires it to be as reliable as possible. However, software is developed by fallible humans, inevitably resulting in software with bugs. Ironically, one solution to identifying bugs is to use more software. The software development process has an increasing need for quality assurance (QA) tools, which may be grouped into several categories. For example, QA tools may enable developers to work together more effectively or examine source code for problems. Other tools may help project managers to prioritize fixes by quantifying variables for fixing a particular bug such as programmer productivity, code quality and cost effectiveness.

Daniel Sabbah, general manager of IBM’s Rational Software unit, says “[software development tools] really have gotten much better over the years.” However, their impact is difficult for most users to notice, compared to the more obvious impact of improvements in processing speed, storage capacity and network speed. Sabbah adds that the software industry may require several years to adopt new tools, whereas manufacturers typically adopt hardware improvements much more quickly.

However, according to Capers Jones at Software Productivity Research, new code still contains an average of five bugs per feature. He adds that only 85 percent of these bugs are eliminated before the software is implemented. These statistics don’t indicate if the software does anything useful, accomplishes its task within a required timeframe or benefits a business.

The CHAOS Report produced by the Standish Group also suggests that software quality is improving. This report found that 35 percent of the software projects started in 2006 were completed on time and on budget, compared to only 16 percent in 1994. The number of software projects that failed completely in 2006 was 31 percent, compared to 19 percent in 1994.

Automation

C-level executives prefer automated software testing because it results in the development of higher quality software in less time and for a lower cost. However, the specific return on investment (ROI) can be difficult to predict as it requires consideration of a number of capital and operational expenditures. For example, the cost of automatic testing include the tools themselves, implementation, execution and maintenance.

The cost of the tools is dependent upon the platform and its available technologies, but relatively straightforward once you make your selection. This cost may even be zero, if you use open-source tools. However, these tools don’t always address an organization’s automation requirements. Some outsourcing providers of quality assurance software include tool costs in their fee structure, making this an operational rather than a capital expenditure.

The resources needed to develop, implement and maintain automated testing is more difficult to calculate, according to GlobalNow IT. One complicating factor is the practice of cutting testing short due to time constraints, which can significantly reduce the ROI of software testing. The cost of developing test cases and data shouldn’t be considered as part of the investment in automated QA tools, as these tasks must be performed whether testing is performed manually or automatically.

Automated QA software provides intangible benefits such as greater quality since it executes all of the tests each time that QA is performed on the software. Enhancements can also be delivered more quickly due to the reduction in cycle time for QA testing. Furthermore, automated testing avoids the time compression that frequently occurs in manual QA testing due to complications in the development process. This time compression usually results in a reduction of test coverage, virtually guaranteeing an increase in production defects. Assigning a specific cost to these intangible benefits may be impractical, although they still reduce the ROI period.

Testing

Software testers have a different focus than that of developers. Developers are motivated to demonstrate that their applications work, while testers are motivated to demonstrate an application’s weaknesses. For example, software testers at Redgate describe themselves as tenacious, thorough and uncompromising. Software testing may therefore require twice as much time as development, which can create a bottleneck in production when developers must wait for the test team to report their results. Testing is also time consuming because many aspects of software testing are labor-intensive even when using automated tools. These activities include the following:

  • Setting up the test environment
  • Developing test cases
  • Writing test scripts
  • Developing running load tests
  • Writing bug reports

However, agile software development can minimize the testing bottleneck through careful management of the dynamic between developers and testers. This development methodology relies on collaboration between cross-functional teams and encourages a flexible, rapid response to change.

David Atkinson, Head of Product Strategy at Red Gate Software, has noted that software testing often involves going “beyond [what is] sensible” by ensuring the software doesn’t break under extreme conditions. Testers often find at least one bug for every ten lines of source code, so prioritization is a routine part of the QA process. This process can be challenging since the difficulty in fixing a bug is often unrelated to its effect. For example, a bug that has a major effect on the system may be trivial to identify and resolve, while an apparently minor bug may require an unexpectedly large amount of time to fix.

Organizations tend to avoid adequate software testing due to the significant capital expenditure typically involved. A full appreciation of the ROI that testing provides requires careful consideration of factors such as the business impact of selling substandard products. This impact may take many forms such as a reduction in future sales, loss of reputation and more work for support staff.

Outsourcing

Software must be updated regularly to respond to customer needs. This continuous development cycle means that software providers are improving current products while also developing new ones. This scenario often causes quality to suffer because companies don’t have the resources needed to perform a full round of QA before shipping a product.

Outsourcing QA can improve ROI in a number of ways, according to iBeta. These include finding bugs in a product that goes to market in minimal working order before consumers find them. In-house QA teams are more likely to make mistakes when under pressure to complete testing by a tight deadline. An outsourced team can reduce this pressure by taking on some of the work.

A company is also more likely to make production deadlines when the in-house QA team is augmented by an outsourced team. These two teams can be integrated to ensure that products are fully functional before they’re released. Outsourced QA also provides the in-house team with more time for innovation. A development team that’s constantly behind schedule has little time for developing new features for their products.

Tiempo Development collaborates with clients in building high-quality software by using agile software development. We have over 10 years of experience in developing complex business requirements. Read our whitepaper to find out more about the Tiempo software development process.

At Tiempo, we are making the business of software development easier and more affordable with a unique combination of a nearshore business model, agile methodology, and advanced talent management. Our Development teams engineer powerful technologies that align with the goals and strategies of our customers for both their internal and public-facing development initiatives. Tiempo’s proprietary agile product lifecycle management framework, the Tiempo Quality System or TQS, is composed of principals and best practices that ensure productive client and team interactions. The result is highly efficient software development that supports companies in launching software releases sooner without draining resources. To learn more please visit us at: www.tiempodev.com or contact Tiempo Development directly.