Functional testing

In software development, functional testing is a form of software system testing that verifies whether software matches its design.

Generally, functional testing is black-box meaning the internal program structure is ignored (unlike for white-box testing).[1]

Functional testing can evaluate compliance to functional requirements.[2]

Sometimes, functional testing is a quality assurance (QA) process.[3]

Functional testing differs from acceptance testing. Functional testing verifies a program by checking it against design document(s) or specification(s), while acceptance testing validates a program by checking it against the published user or system requirements.[4]

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:[1]

  1. ^ a b Kaner, Falk, Nguyen. Testing Computer Software. Wiley Computer Publishing, 1999, p. 42. ISBN 0-471-35846-0.
  2. ^ ISO/IEC/IEEE International Standard - Systems and software engineering. ISO/IEC/IEEE 24765:2010(E). 2010. pp. vol., no., pp.1–418, 15 Dec. 2010.
  3. ^ Prasad, Dr. K.V.K.K. (2008) ISTQB Certification Study Guide, Wiley, ISBN 978-81-7722-711-6, p. vi
  4. ^ Kaner, Falk, Nguyen 1999, p. 52
  5. ^ "Full Stack Testing". www.thoughtworks.com. Retrieved 2022-09-08.
  6. ^ "Functional Test Fixtures". Forwessun. Retrieved 2024-11-14.