This section and its sub-sections focuses on discussing different kind of Software Testing, Approaches, and Tools in detail.

Software testing can be stated as the process of verifying & validating whether a software or application is defect-free, meets the technical requirements as specified by its design and development, and meets the user requirements effectively and efficiently by handling all the exceptional and boundary cases. Software testing can be divided into two steps:

  • Verification: It refers to the set of tasks that ensure that the software correctly implements a specific function. It means “Are we building the product right?”.
  • Validation: It refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements. It means “Are we building the right product?”.

The process of software testing aims not only at finding faults in the existing software but also at finding measures to improve the software in terms of efficiency, accuracy, and usability.

In general, Software testing can be categorized as below:

  • Functionality Testing
  • Non-functionality Testing