Why can’t you build a great software program without proper testing?


A consumer’s buying patterns depend on various parameters, such as socioeconomic conditions, peer pressure, etc. However, most people dream of buying brand-name products, such as shoes, perfumes, and phones. Branded products normally come with a higher cost, but provide a higher degree of satisfaction and have a longer life span.

If you further analyze why branded products often command a higher price, one of the most evident reasons is strict quality control processes. Even in the manufacturing of branded products we use every day, QA/QC is given the utmost importance, and this is true for software, too. A product’s life cycle, maturity, quality, and branding all impact the revenue the product generates. If we want repeat business and positive references from our clients, then our most important goal should be to deliver an end product of the highest possible quality. Improving the product’s reliability ultimately results in customer satisfaction and brand loyalty. Companies with reliable, quality products gain a favorable reputation in their industries.

Importance of Software Testing

The importance of software testing and its impact on software cannot be underestimated. Software testing is a fundamental component of software quality assurance and includes reviews of specifications, design, and coding. The high visibility of software systems and the cost associated with software failure are motivating factors for the use of good planning techniques, such as software testing. It is not uncommon for a software organization to spend 40% of its working hours on testing.

The amount of external QA/QC used should be a function of the project risk and the process maturity of an organization. As organizations mature, management and staff will begin to implement best practices for effective QA and QC as a matter of habit. When this happens, only minimal external guidance and review are needed.

QC activities focus on finding defects in specific deliverables – e.g., making sure the defined requirements are the right requirements. Testing is one example of a QC activity, but there are others, such as inspections. Generally, both QA and QC activities are required for successful software development.

QC measures users’ actual behavior, not their preferences. Users are notoriously bad at articulating what they want; however, by observing and measuring their behavior, we can understand their motivations, what software features and design strategies best support their goals, and how to improve the user experience.

A poor user experience can and will have a negative impact on the brand. Users expect a good user experience on any website they visit, especially when competitors are only a click away.

Even the most skilled, “perfect” developer can write code with bugs. These bugs may result from discrepancies between:

  • Users’ needs and specification documents
  • Specifications and design
  • Expected and actual hardware and software environments

In order to build bug-free software, there are various stages in the development process at which the end product or customized application should be validated to ensure optimum quality. These stages include unit testing, integration testing, system testing, performance testing, installation testing, compatibility testing, and user acceptance testing.

Examples of a product’s failure due to improper QC     (choose any 2)

1) Facebook app bugs found by users:

Users are the main stakeholders in software and mobile app testing, but most of the time, they are ignored. When the application or software is launched, the users are the ones who encounter difficulties in using it. That is the big question mark on the usability of a mobile application.

This is what happened with a Facebook application developed for the iPad. Users reported that the Facebook application had minor bugs, including a bug that made it impossible to post comments while clicking through panel icons.

2) Mobile application failure restricted the services of a smartphone company across the world:

In October 2011, BlackBerry dealt with the failure of a mobile application. The software was designed to fail over to a backup switch, but in the production environment, this failover process did not function, even though it had been working properly during testing. This indicates that there must have been some  mistakes during the software’s performance testing.

This testing failure led to a complete outage of all BlackBerry services across Europe, the Middle East, Africa, and Latin America, which lasted for 3-4 days. The company fixed the bug later on, but it had to apologize to its customers for the inconvenience, since Internet browsing and email services had come to a halt because of the application failure.

This service disruption severely impacted BlackBerry’s reputation, since flaws in BlackBerry’s software testing process had led to loss of reputation for numerous enterprises and entrepreneurs all over the world.

In general, software failure happens only when the testing performed on the system has been inadequate. To prevent software failures like this one, a sound software testing strategy should be developed. Quality software will give your business a competitive edge, attract customers, win new proposals, reinforce and improve business relationships, and eventually reduce the overall operating costs of your entire IT infrastructure.

3) Australian ATM defect gives customers extra money

When 40 ATMs suddenly began giving out significant sums of money by mistake, the customers of a certain Australian bank thought they had hit the jackpot. Apparently, with the machines operating in a standby mode, customers could withdraw funds without being stopped by any account limits. This issue lasted for over 5 hours, during which time large queues formed at these ATMs, with customers withdrawing funds far in excess of the limits set on their accounts.

There’s a predictable pattern when high-profile failures like this happen. The blame always falls on the test team first. The test team blames poor processes (such as the test management systems in place), lack of resources, and poorly-defined requirements. Senior management wakes up to the importance of the QA process. Budgets double to ensure it doesn’t happen again. When the dust settles, budgets get cut as part of a company-wide efficiency drive. Then, more failures happen due to lack of resources and lack of commitment to the QA process, and the cycle starts all over again.

If these examples highlight one thing, it’s the complexity of integrated systems. We are no longer testing a single system in isolation. Now, we must test many highly-integrated systems that all rely on their interconnectedness to function correctly. Some may argue that this complexity is going beyond our ability to comprehend and test effectively. Perhaps we’re at a point where no amount of software-testing skill and no test management process, no matter how well-thought-out, is going to prevent these types of failures?

Another recent example of a significant software-testing failure was a bank ATM malfunction that took place in the UK in 2012, in which an ATM began dispensing double the amount withdrawn – and the bank said the affected customers could keep the unexpected windfall. News of the cash bonanza spread rapidly, and some customers walked away thousands of pounds better off. A spokesman for the bank said it was not the customers’ fault. “The machine was mis-dispensing and we won’t be requesting the funds back,” he said. “It is certainly not the liability of the customers.”

The cost of quality assurance can be significant, but the return on investment is high. QA has a very positive effect on customer retention and visibility in the market. The role of QA is not diminished by the methodology used, whether it’s an agile or waterfall methodology. There are several schools of thought that support the idea of letting the developers test their own code to save the cost of QA.

However, in order to test their own code effectively and achieve optimum software quality, developers have to have end-to-end knowledge about the requirements, design, testing criteria, gating criteria, and a number of different testing scenarios, test plans, and test cases. In reality, most developers only have a technology background, and their focus is always on finding the best possible technical solution to one or a group of business requirements. Developers may not be able to justify their dual role of developer and QA tester, and may not have the skills needed to perform both roles well.

You can ensure that your software is tested by skilled professionals who specialize in QA testing by working with Net Solutions. We have a highly experienced team of Web and mobile applications testers who can work within your industry to provide quality assurance and quality control services for your Web and mobile applications.

Anuradha Kapoor

About the Author

Anuradha heads Software Testing at Net Solutions. She has 15 years’ of experience in Software Testing but she also has a lot of interest in Program Management and Delivery Management. She has been a cricketer and loves to spend quality time with her family

Leave a Comment


1:19 AM, Mar 13, 2013

Pretty! This has been an extremely wonderful
article. Many thanks for providing this info.

Pin It on Pinterest


Articles written by industry experts about things that matter most in designing and building Digital Products and Platforms for Startups and Enterprises.

Subscribe to our

Digital Insights

Follow us on:

Aw, yeah! That was a smart move.

We have sent a short welcome email your way.