Why Testing is Necessary?

Why Testing is Necessary?


In the technological age we live, work and play in software systems form an integral part of our lives. Think about it, everything from our cars to our coffee machines.

Software systems have simplified the way in which we bank, pay accounts and even shop.

When software works the way, it should and is supposed to, it makes our lives convenient. However, when software that does not work and does not do what it is supposed to do, it can be a more serious than just a source of inconvenience. It can cost companies to lose billions of dollars, even result in them being shut down or can claim human lives.

Let’s look at a few actual scenarios to fully appreciate this concept:

As you can see, software bugs can be very expensive or even worse dangerous.


Testing’s Contribution to Success.

It’s common for software and system to be delivered into operation and, due to the presence of defects, to cause failures or otherwise not meet the customer needs. It’s not that the product is not tested efficiently whereas at any point of time it’s difficult to state that you have found all defects. As we can’t conduct such unrealistic extent of testing, it’s important to use appropriate techniques, which can help reduce the frequency of such problematic deliveries. These techniques can also help prevent defects from being introduced into the system.

There are several ways by which these techniques can be implemented:

·       Having testers involved in requirements reviews or user story refinement could detect defects in these work products. The identification and removal of requirements defects reduces the risk of incorrect or untestable functionality being developed. 

·       Having testers work closely with system designers while the system is being designed can increase each party’s understanding of the design and how to test it. This increased understanding can reduce the risk of fundamental design defects and enable tests to be identified at an early stage.

·       Having testers work closely with developers while the code is under development can increase each party’s understanding of the code and how to test it. This increased understanding can reduce the risk of defects within the code and the tests. 

·       Having testers verify and validate the software prior to release can detect failures that might otherwise have been missed, and support the process of removing the defects that caused the failures (i.e., debugging). This increases the likelihood that the software meets stakeholder needs and satisfies requirements. 

 

Defects, Root Causes and Effects



These causes can’t be eliminated completely as we agree to the fact that we humans are error prone. But, can be minimized to a certain extent by taking some preventive measures like documenting clear specification, avoiding mistake at requirement gathering and design phase. Also, the process of reviewing them can be an added advantage to minimize defects at an initial level. Regarding review we will discuss more in chapter 3 of this syllabus.

Not all defects result in failure, sometimes the condition under which a piece of code needs to be executed never is, and thus a failure never occurs. Sometimes, its also just the misunderstanding of the scenario.  Thus, its recommended that a evaluation of each work product by a senior team member is performed, before the document or source being used or referred further in process.


Comments

Popular posts from this blog

What is Testing?