Functional Testing
It's one of the types of Black-Box testing, it is performed to verify any given software application.
While performing functional testing it is verified that all the given requirement is met. In this process, the system is validated with different input combinations to verify if the user is going to get the desired output.
Types of Functional Testing
Sanity Testing
This testing is usually done after smoke testing to make sure every major functionality the working as expected. Sometimes it is done at other levels of testing and just to ensure major functionality is working fine.
Smoke Testing
It is usually done after the build is released and just to ensure on a high level that the build can be used for further testing. The stability of the build is checked in this.
Regression Testing
This is one of the most important elements of testing. It is done after any/all code changes are done to the software application and to ensure it doesn't impact existing features/components of the software application.
Integration Testing
This type of testing plays a critical role when you are working on an application with multiple modules. It ensures that when one module is coupled with another module the result is as expected. It further evaluates the system is working end-to-end.
User Acceptance Testing
It's a type of testing that is performed by end users who are typically different stakeholders who will be working on the application and gives the sign-off if it's acceptable to them, once it's done only in that case build is deployed on the Production environment. Usually, User Acceptance Testing (UAT) is performed on a system that tries to mimic the production application. UAT is done in the final phase of testing once functional, regression, integration, and system testing is completed.
How to perform Functional Testing?
Functional testing goes through various steps during the course of action:
- Once the functional requirement is made available it is analyzed to understand the outcome.
- Prepare different test inputs required and/or create the test data based on functional requirements.
- Execute the test cases.
- Compare the actual and expected results.