In software development, functional testing is a form of software system testing that verifies whether a system meets its functional requirements.[1][2]
Generally, functional testing is black-box meaning the internal program structure is ignored (unlike for white-box testing).[3]
Sometimes, functional testing is a quality assurance (QA) process.[4]
Functional testing differs from acceptance testing. Functional testing verifies a program by checking it against design documention or specification[citation needed], while acceptance testing validates a program by checking it against the published user or system requirements.[3]
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.[5]
In fixture testing, while ICT fixtures test each individual component on a PCB, functional test fixtures assess the entire board's functionality by applying power and verifying that the system operates correctly.[6]
Types
Functional testing includes but is not limited to:[3]
Functional testing typically involves six steps[citation needed]
This software-engineering-related article is a stub. You can help Wikipedia by expanding it.