In software development, functional testing is a form of software testing that verifies whether a system meets its functional requirements.ISO/IEC/IEEE 24765:2017, "Systems and software engineering — Vocabulary", International Organization for Standardization, Geneva, Switzerland, 2017.
Generally, functional testing is black-box, meaning the internal program structure is ignored (unlike for white-box testing).Kaner, Falk, Nguyen. Testing Computer Software. Wiley Computer Publishing, 1999, p. 42. .
Sometimes, functional testing is a quality assurance (QA) process.Prasad, Dr. K.V.K.K. (2008) ISTQB Certification Study Guide, Wiley, , p. vi
As a form of system testing, functional testing tests slices of functionality of the whole system. Despite similar naming, functional testing is not testing the code of a single function.
The concept of incorporating testing earlier in the delivery cycle is not restricted to functional testing.
Types Functional testing includes but is not limited to: Sanity testing
Smoke testing
Regression testing
Usability testing
Six steps Functional testing typically involves six 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 To check whether the application works as per the customer need
Open-source tools
Several open-source tools support functional testing across web, mobile, and API applications. These include:
Selenium – Web browser automation Playwright – Cross-browser end-to-end testing Robot Framework – Keyword-driven automation Appium – Mobile application testing SoapUI – API functional testing Keploy – API testing and test generation
See also
References