Functional testing is a
quality assurance (QA) process and a type of
black-box testing that bases its test cases on the specifications of the software component under test. Functions are tested by feeding them input and examining the output, and internal program structure is rarely considered (not like in
white-box testing). Functional testing usually describes
what the system does.