Functional testing
Functional testing is a quality assurance (QA) process 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). Functional testing is conducted to evaluate the compliance of a system or component with specified functional requirements. Functional testing usually describes what the system does.
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 has many types:
- Smoke testing
- Sanity testing
- Regression testing
- Usability testing
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.
Functional testing concentrates on:
- Mainline functions: Testing the main functions of an application
- Basic Usability: It involves basic usability testing of the system. It checks whether a user can freely navigate through the screens without any difficulties
- Accessibility: Checks the accessibility of the system for the user
- Error Conditions: Usage of testing techniques to check for error conditions. It checks whether suitable error messages are displayed.
Advantages of Functional testing:
- This testing reproduces or is a replica of what the actual system is i.e. it is a replica of what the product is in the live environment. Testing is focused on the specifications as per the customer usage i.e. System specifications, Operating system, browsers, etc.
- It does not work on any if and buts or any assumptions about the structure of the system.
- This testing ensures to deliver a high-quality product that meets the customer requirement and makes sure that the customer is satisfied with the end results.
- It ensures to deliver a bug-free product which has all the functionalities working as per the customer requirement.
- Risk-based testing is done to decrease the chances of any kind of risk in the product.
This testing is done to make sure that the product works as expected and the entire requirement is implemented and the product is exactly as per the customer requirement.
However, it does not consider the other factors such as the performance of the product i.e. responsiveness, throughput time, etc., which are important and very much required to be a part of testing before releasing the product.
Disadvantages of Functional testing:
- There are many chances of performing redundant testing
- Logical errors can be missed out in the product
- This testing is based on the requirement, if in case the requirement is not complete or is complicated or is not clear, performing this testing in such a scenario becomes difficult and can be time-consuming too.
Links
https://en.wikipedia.org/wiki/Functional_testing
https://www.guru99.com/functional-testing.html
https://www.softwaretestinghelp.com/guide-to-functional-testing/