Software testing where the system is tested against the actual functional requirements and software specifications of a new software build.
Functions (or features) are tested by feeding them input and examining the output. Functional testing ensures that the requirements are properly satisfied by the application. This type of testing is not concerned with how processing occurs, but rather, with the results of processing. It simulates actual system usage but does not make any system structure assumptions.
During functional testing, the Black Box Testing technique is used in which the internal logic of the system being tested is not known to the tester.
Functional testing is normally performed during the levels of System Testing and Acceptance Testing.
Typically, functional testing involves the following steps:
1. Identify functions that the software is expected to perform.
2. Create input data based on the function’s specifications.
3. Determine the output based on the function’s specifications.
4. Execute the test case.
5. Compare the actual and expected outputs.
Functional testing is more effective when the test conditions are created directly from user/business requirements. When test conditions are created from the system documentation (system requirements/ design documents), the defects in that documentation will not be detected through testing and this may be the cause of an end-user’s wrath when they finally use the software.