Functional testing
Part of a series on |
Software development |
---|
This article needs additional citations for verification. (December 2010) |
Functional testing is a [[quality assurannd software engineering|publisher=ISO/IEC/IEEE 24765:2010(E)|year=2010|pages=vol., no., pp.1–418, 15 Dec. 2010}}</ref> 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.[1]
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."[2]
Types
Functional testing has many types:[3]
Six Steps
Functional testing typically involves six steps[citation needed]
- 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
- Non-functional testing – Testing software for non-functional behavior
- Acceptance testing – Test to determine if the requirements of a specification or contract are met
- Regression testing – Checking whether changes to software have broken functionality that used to work
- System testing – Testing conducted on a complete software system
- Software testing – Checking software against a standard
- Integration testing – Type of software testing
- Unit testing – Validating the behavior of isolated source code
- Database testing – The testing of database software systems
- Security testing – The process of finding flaws in the security of information systems
- Load testing – Process of putting demand on a system and measuring its response
- Test automation – Use of special software to control test execution and analysis
References
- ^ 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.
- ^ Kaner, Falk, Nguyen 1999, p. 52
- ^ Cite error: The named reference
KanerFalkNguyen1999
was invoked but never defined (see the help page).