Software Testing

Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not.Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users. In simple words, software testing is an activity to check whether the actual results match the expected results and to ensure that the software system is defect free.

Why is testing is important?

Software bugs can potentially cause monetary and human loss, history is full of such examples.

This isChinaAirlines Airbus A300 crashing due to a software bug on April 26, 1994 killing 264 innocent live.

In 1985,Canada's Therac-25 radiation therapy machine malfunctioned due to software bug and delivered lethal radiation doses to patients ,leaving 3 people dead and critically injuring 3 others.

In April of 1999 ,a software bug caused the failure of a $1.2 billion military satellite launch, the costliest accident in history

In may of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million US dollars.

 Testing is important because software bugs could be expensive or even dangerous.


We have come across so many types of software testing. The two major approaches of software testing are manual software testing and automated software testing. Manual software testing means it is being done by a man. That means a person, ie a tester runs the software for errors. We would discuss each testing in detail later. Since this is being an introduction we would just mention each of them here.

Manual software testing has different stages. The following are the stages:

  1. Unit testing
  2. Integration testing
  3. System testing
  4. User acceptance testing

Different techniques are used for software techniques. The commonly used software testing techniques are the following:

  • White box testing
  • Black box testing
  • Grey box testing

White box software testing is the testing of the working of the software and its internal structures. It can detect errors of the implemented parts, but the unimplemented parts goes undetected. Black box testing is the testing of the functionality of the software as opposed to its internal structure. It can be done at all levels of software testing. Now automatically you will be eager to know what is grey box software testing, right? Well, the answer is too simple because it is the combination of white box as well as black box testing.