||This article needs additional citations for verification. (December 2010)|
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.
Functional testing differs from system testing in that functional testing "verifies a program by checking it against ... design document(s) or specification(s)", while system testing "validate[s] a program by checking it against the published user or system requirements" (Kaner, Falk, Nguyen 1999, p. 52).
Functional testing typically involves five steps:
- The identification of functions that the software is expected to perform
- The creation of input data based on the function's specifications
- The determination of output based on the function's specifications
- The execution of the test case
- The comparison of actual and expected outputs
See also 
- Non-functional testing
- Acceptance testing
- Regression testing
- System testing
- Software testing
- Integration testing
- Unit testing
- Database testing
- "How to successfully automate the functional testing process". White Paper. InfoWorld. Retrieved 11 February 2013.
- Shalal-Esa, Andrea; Maureen Bavdek (January 20, 2013). "Investigators to travel to Pratt facility in Phoenix: NTSB". Reuters.
- Kaner, Falk, Nguyen. Testing Computer Software. Wiley Computer Publishing, 1999, p. 42. ISBN 0-471-35846-0.
|This computing article is a stub. You can help Wikipedia by expanding it.|