Types of Testing

1 minute read

Testing is usually divided into two main categories – functional and non-functional.

Functional Testing

Functional testing is a type of testing which verifies that each function of the software application matches its requirements.

Every functionality of the system is tested by providing appropriate input, verifying the output and comparing the actual results with the expected results. The testing can be done either manually or using automation

Functional Testing types include:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Sanity Testing
  • Smoke Testing
  • Interface Testing
  • Regression Testing
  • Beta/Acceptance Testing

Non-functional Testing

Non-functional testing is a type of testing to check non-functional aspects (performance, usability, reliability, etc.) of a software application. It’s basically everything that isn’t covered by functional testing.

A good example of non-functional test would be to check how many people can simultaneously login into a software.

Functional tests are usually easy to write expected results for eg.

1 + 1 should be equal to 2

With non-functional tests it can be more difficult to define expected results. How long should a page take to load? How many concurrent users should you expect to support at any one time?

Functional testing is based on customer’s requirements whereas Non Functional testing is based on customer’s expectations.

Non-functional testing is equally important as functional testing and affects client satisfaction.

Non-functional Testing types include:

  • Performance Testing
  • Load Testing
  • Stress Testing
  • Volume Testing
  • Security Testing
  • Compatibility Testing
  • Install Testing
  • Recovery Testing
  • Reliability Testing
  • Usability Testing
  • Compliance Testing
  • Localization Testing