What is Software Testing?


Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is Defect free. It involves execution of software/system components using manual or automated tools to evaluate one or more properties of interest. The purpose of software testing is to identify errors, gaps or missing requirements in contrast to actual requirements.



Why is Software Testing important?


Software Testing is Important because if there are any bugs or errors in the software, it can be identified early and can be solved before delivery of the software product. Properly tested software product ensures reliability, security and high performance which further results in time saving, cost effectiveness and customer satisfaction.

Testing is important because software bugs could be expensive or even dangerous. Software bugs can potentially cause monetary and human loss, and history is full of such examples.


  • In April 2015, Bloomberg terminal in London crashed due to software glitch affected more than 300,000 traders on financial markets. It forced the government to postpone a 3bn pound debt sale.
  • Nissan cars recalled over 1 million cars from the market due to software failure in the airbag sensory detectors. There has been reported two accident due to this software failure.
  • Starbucks was forced to close about 60 percent of stores in the U.S and Canada due to software failure in its POS system. At one point, the store served coffee for free as they were unable to process the transaction.
  • Some of Amazon's third-party retailers saw their product price is reduced to 1p due to a software glitch. They were left with heavy losses.
  • Vulnerability in Windows 10. This bug enables users to escape from security sandboxes through a flaw in the win32k system.
  • In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets correctly.
  • China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264 innocents 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.



Methods of Software Testing



Positive Testing - In this type of testing, by entering valid data, it is checked whether the application works as expected or not.

For example:
There is a text box that accepts only numbers up to 99999, all other values
are not accepted. Testing will be Positive when we take as input values
0-99999 numbers and check whether the system accepts these values or not.

Negative Testing - In this type of testing, by entering invalid data, it is checked whether the application is doing something that is not allowed.

For example:
In the text box of the previous example, let's take A-Z, a-z as input values
symbols, the application should either not accept or give an error message.



Positive and Negative testing implementation techniques



Boundary Value Analysis – In this case, only boundary values are checked. Moreover, if the entered data is within the boundary values, it is Positive Testing, and if it is outside, it is Negative Testing.

For example:
Text box accepts only values 0-10, all other numbers are invalid.
The edge values -1, 0, 1 and 9, 10, 11 will be checked.

Equivalence Partitioning – In this case, the input data is divided into parts. Each part must be checked at least once. valid values are used for Positive Testing, invalid values for Negative Testing.

For the previous example, we divide the input data into 2 (or 3) parts,
for example -10 to 0 and 0 to 10. To check, we take 5 (Positive Testing), -5
(Negative Testing).



Useful Links:

Software testing /video tutorial/eng
Software testing /video tutorial/rus

Software testing /article/eng

Software testing /article/en

Content