Functional testing

In software development, functional testing is a form of software testing that verifies whether a system meets its functional requirements.

Generally, functional testing is black-box, meaning the internal program structure is ignored (unlike for white-box testing).

Sometimes, functional testing is a quality assurance (QA) process.

As a form of system testing, functional testing tests slices of functionality of the whole system. Despite similar naming, functional testing is not testing the code of a single function.

The concept of incorporating testing earlier in the delivery cycle is not restricted to functional testing.