What is software testing:
Software Testing is the process of executing a program or system with the intent of finding errors. Or, it involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.
Software is not unlike other physical processes where inputs are received and outputs are produced. Where software differs is in the manner in which it fails. 

Main objective of software testing:

  • To improve quality of the developed software.
  • To find defects in the developed software.


Software testing is independent technology.
Software testing ensures the quality of the software product
Software testing minimizes or vanish financial loss occurred due to programming error or bug.

Importance of software testing:

  • Software testing is an art.
  • Good testing also requires a tester's creativity, experience and intuition, together with proper techniques.
  • Testing is more than just debugging. Testing is not only used to locate defects and correct them. It is also used in validation, verification process, and reliability measurement.
  • Testing is expensive. Automation is a good way to cut down cost and time. Testing efficiency and effectiveness is the criteria for coverage-based testing techniques.
  • Complete testing is infeasible. Complexity is the root of the problem. At some point, software testing has to be stopped and product has to be shipped. The stopping time can be decided by the trade-off of time and budget. Or if the reliability estimate of the software product meets requirement.
  • Testing may not be the most effective method to improve software quality. Alternative methods, such as inspection, and clean-room engineering, may be even better.