Functional Testing

Functional Testing is a kind of black-box testing performed to validate the software system against the functional requirements/specifications.

The purpose is to test each function by providing appropriate input and verifying the output against Functional Requirements.

Characteristics

  • Functional testing can be either manual or automated.
  • Business requirements are the inputs to functional testing.
  • Functional testing describes what the product does.

Functional Testing Types

Unit Testing: usually performed by a developer who writes different code units that could be related or unrelated to achieve a particular functionality.

Code coverage is an important part of unit testing. Is a metric that describes how much of your code is tested.

  • Function coverage.
  • Statement coverage.
  • Branches coverage.
  • Condition coverage.
  • Line coverage.

Sanity Testing: ensures that all the major and vital functionalities of the application are working correctly.

Smoke Testing: it is done after each build to ensure build stability.

Regression Tests: performed to ensure that adding new code, enhancements, bug fixes are not breaking existing functionality.

Integration Tests: validates the integration of multiple functional modules that might individually work perfectly.

Beta/Usability Testing: product is exposed to the actual customer in a production like environment.

References

  • https://www.softwaretestinghelp.com/guide-to-functional-testing/
  • https://www.guru99.com/functional-testing.html