Involve quality in the entire application development process, instead of concentrating on it only from the software debugging stage, industry watchers have urged companies.
According to Partha Iyengar, vice president and distinguished analyst at Gartner India, the amount of time spent on testing or debugging of applications ranges between 25 percent and 50 percent of the software development lifecycle. Companies with tried and tested processes, methodologies and tools are likely to spend less time, he said in an e-mail interview.
But while software testing is a necessary component of application development, companies need to think beyond using testing as a means to ensure quality in the product, noted Iyengar, who is also Gartner's regional research director for India.
"The longer-term challenge for companies is to move away from 'testing quality into the product' to 'building quality into the product', which requires addressing the entire software development process, not just bug fixing at the end," he pointed out.
Aaron Tan Dani, Asia-Pacific chairman of the International Association of Software Architects (IASA), told ZDNet Asia in an e-mail interview that businesses face consequences for not focusing on quality early on in the application development process.
Using a diagram, Tan Dani noted that bugs found during the user requirement, design or coding stages have little or no impact to project cost. However, when flaws are found during the system testing or user acceptance testing stages, costs can become rather significant. Consequences, he added, could be huge when bugs are discovered in the production environment--from monetary damage for businesses to more extreme impact on human health and safety.
Tang Chok Siing, head of Singapore Computer Systems' Technology Innovation Centre, agreed with Tan Dani's assessment. "From experience, it is much cheaper to capture the bugs or security vulnerabilities earlier in the software development tools," he said in an e-mail.
Mike Scott, head of innovations at TCS UK, said taking corrective action early in the development cycle requires an "agile approach" that breaks down the development into manageable "chunks", thereby allowing serious errors to be more easily discovered.
"Using a combination of automated code generation and world-class tools, development environments and methodologies, any mistake can be rectified within the time and cost envelope," he pointed out.
Software complexity, debugging costs up
Industry players ZDNet Asia interviewed were not able to offer statistics on how much companies in the Asia-Pacific region are spending on eradicating bugs, but ZDNet Asia's sister site ZDNet reported last month an IDC study that found U.S. organizations now spend between US$5 million and US$22 million a year fixing software defects.
Gartner's Iyengar noted, however, code testing has become "one of the fastest growing segments" of IT outsourcing in the United States and EMEA (Europe, Middle East and Africa), with the trend likely to pick up in the Asia-Pacific region within the next 12 months.
"The reason companies are increasingly looking to service providers to assist with this is that they don't have the internal capability to address this issue and believe they need specialists to assist with improving their testing capability initially, and to help them improve their overall software development processes and methodology in the long run," he said.
With the increase in application complexity due to industry shifts such as SOA (service-oriented architecture) and Web 2.0, software development and testing have become more tricky, say observers.
According to Gartner's Iyengar, enterprises that tap on SOA "will definitely" witness an increase in testing challenges and complexity. "With things like SOA, it becomes a challenge how to even test something, since some parts of the architecture may actually be out of the enterprise's control and access from a testing perspective."
Tan Dani said: "For instance, Web2.0 is a brilliant technology that gives the business user a great user experience. However, there are limited prescriptive guidance and architecture [as to] how best to implement it."
He added, however, that ultimately it was important for developers to understand the software architecture disciplines. "When the developers understand the software architecture disciplines, writing code is like writing a statement and it is very easy for someone to identify the spelling or grammar mistake."