Functional testing is a kind of black-box testing that is performed to confirm that the functionality of an application or system is behaving as expected.

Functional testing is considering the specified behavior and is based on an analysis of functionality specifications of a component of the system or the whole system itself.

Functional tests are using system functions as a basis and can be performed at all testing levels (component testing, integration tests, system level and stage of acceptance). Commonly, these functions are described in requirements, functional specifications, or in precedents for using the system (use cases).

Testing of the functionality can be performed according to such aspects as:

  • requirements
  • business processes

Testing in the field of “requirements” make use of the functional requirements specification of the system as a basis to design testing environment (Test Cases). In such case, the list of testing objects is to be drawn up, it is also necessary to prioritize requirements according to the risks (if it was not done in the list of requirements), because it will become a basis for prioritizing Test Cases. This program will help you to stay highly focused on the task and will not let you miss out the most important aspects during testing.

Testing in the field of “business processes” requires the knowledge of features of these business processes, which are described in the scenarios of daily use of the system. Test scripts for this kind of testing usually based on use cases.

Benefits of functional testing:

  • Testing simulates the actual use of the system;

Disadvantages of functional testing:

  • You can miss out logical errors in the software;
  • Over-testing is possible.

Automatization of the functional testing processes is wide spread.