Functional testing is a form of black-box testing. As the name suggests, it focuses on the software’s functional requirements rather than its internal implementation. A functional requirement refers to required behavior in the system, in terms of its input and output.
It validates the software against the functional requirements or the specification, ignoring the non-functional attributes such as performance, usability, and reliability.
Functional testing aims to answer the following questions, in particular:
- Does the software fulfill its functional requirements?
- Does it solve its intended users’ problems?