Software testing is the process of discovering bugs in programs. There are many phases of software testing, each with their own pros, cons and applicability.

  • Unit Testing: Testing each component/module in isolation, independently.
  • Integration and System Testing: Testing modules in tandem, or integrating modules to form a ‘system’, and testing it.
  • Acceptance Testing: Validating if the system supports the design specifications, and meets the client’s requirements.

Unit Testing