Jump to content

Functional testing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Walter Görlitz (talk | contribs) at 19:09, 27 June 2020 (Reverted to revision 921881280 by Walter Görlitz (talk): Incorrect use of inline external link (and software is a collective noun in English and is not made plural) (TW)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Functional testing is a quality assurance (QA) process[1] 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 (unlike white-box testing).[2] Functional testing is conducted to evaluate the compliance of a system or component with specified functional requirements.[3] Functional testing usually describes what the system does.

Since functional testing is a type of black-box testing, the software's functionality can be tested without knowing the internal workings of the software. This means that testers do not need to know programming languages or how the software has been implemented. This, in turn, could lead to reduced developer-bias (or confirmation bias) in testing since the tester has not been involved in the software's development.[4]

Functional testing does not imply that you are testing a function (method) of your module or class. Functional testing tests a slice of functionality of the whole system.

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 has many types:[2]

Six Steps

Functional testing typically involves six steps[citation needed]

  1. The identification of functions that the software is expected to perform
  2. The creation of input data based on the function's specifications
  3. The determination of output based on the function's specifications
  4. The execution of the test case
  5. The comparison of actual and expected outputs
  6. To check whether the application works as per the customer need.

See also

References

  1. ^ Prasad, Dr. K.V.K.K. (2008) ISTQB Certification Study Guide, Wiley, ISBN 978-81-7722-711-6, p. vi
  2. ^ a b Kaner, Falk, Nguyen. Testing Computer Software. Wiley Computer Publishing, 1999, p. 42. ISBN 0-471-35846-0.
  3. ^ 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.
  4. ^ Calikli, Gul; A. Uzundag, Berna; Bener, Ayse (September 19, 2010). "Confirmation Bias in Software Development and Testing: An Analysis of the Effects of Company Size, Experience and Reasoning Skills" – via ResearchGate.