In
software development
Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
, functional testing is a form of
software testing
Software testing is the act of checking whether software satisfies expectations.
Software testing can provide objective, independent information about the Quality (business), quality of software and the risk of its failure to a User (computin ...
that verifies whether a system meets its
functional requirement
In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a summary (or specification or statement) of behavior between inputs and outputs.
Functiona ...
s.
[ISO/IEC/IEEE 24765:2017, "Systems and software engineering — Vocabulary", International Organization for Standardization, Geneva, Switzerland, 2017.]
Generally, functional testing is
black-box
In science, computing, and engineering, a black box is a system which can be viewed in terms of its inputs and outputs (or transfer characteristics), without any knowledge of its internal workings. Its implementation is "opaque" (black). The te ...
, meaning the internal program structure is ignored (unlike for
white-box testing
White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality ...
).
[Kaner, Falk, Nguyen. ''Testing Computer Software''. Wiley Computer Publishing, 1999, p. 42. .]
Sometimes, functional testing is a
quality assurance
Quality assurance (QA) is the term used in both manufacturing and service industries to describe the systematic efforts taken to assure that the product(s) delivered to customer(s) meet with the contractual and other agreed upon performance, design ...
(QA) process.
[Prasad, Dr. K.V.K.K. (2008) ''ISTQB Certification Study Guide'', Wiley, , p. vi]
As a form of
system testing
System testing, a.k.a. end-to-end (E2E) testing, is testing conducted on a complete software system.
System testing describes testing at the system level to contrast to testing at the system integration, integration or unit level.
System t ...
, 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
A sanity check or sanity test is a basic test to quickly evaluate whether a claim or the result of a calculation can possibly be true. It is a simple check to see if the produced material is rational (that the material's creator was thinking ration ...
*
Smoke testing
*
Regression testing
Regression testing (rarely, ''non-regression testing'') is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a '' regr ...
*
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
See also
*
*
*
*
*
*
*
*
*
*
*
References
{{Software testing
Software testing