TL;DR
This post gives definition of functional testing that is aligned with Black Box Software Testing Foundations course (BBST) created by Rebecca Fiedler, Cem Kaner and James Bach.
Definition
As software tester, probably your first statement was: I did functional test of this feature.
Let’s see the definition of function:
An activity or purpose natural to or intended for person or thing.
Functional testing is system level testing that looks at the program as collection of functions. A function might be an individual feature or broader capability that relies on several underlying features.
Function has inputs and creates outputs. We observe is actual output aligned with our expected output. More on that topic could be found in Functional Program Testing and Analysis (W. E. Howden).
Example
When you test Word font selection function, you are testing function that consists of several functions:
- select font type,
- select font style,
- select font color.
But you can also choose to test only one feature, select font color. When you select font type, you observe is your word rendered is expected.
New question is, how to determine what is expected for font to be rendered based on its type?