Functional testing aims to uncover functional defects in an application early in the software development process to avoid the costs associated with debugging, re-coding, and regression testing before applications are completed. Functional testing should not be omitted as a cost-saving measure as it achieves the testing goal of ensuring every function produces its expected outcome.
Functional Testing Defined
In general, lines of code combine to perform functions, often referred to as “function points.” Functions have expected outcomes which are (hopefully!) described in a functional specification. Expected outcomes must be confirmed as part of any functional testing strategy. Commonly referred to as black box testing, this type of testing requires no knowledge of the underlying implementation.
Functional testing is a critical part of the development process as there are several reasons why application functionality may not perform as expected, including:
- Ambiguous requirements and/or specifications.
- Miscommunication of requirements.
- Changes to requirements during the development process.
- Misunderstanding by developer.