Functional testing as the name suggests deals with testing of the different functionalities of the application under test. In this post, we will learn the formal definition of functional testing, its process, and the different types of functional testing.
Functional testing is a type of testing which involves testing the functional requirements of the system under test. Each of the application’s business requirements specifications is validated in this type of testing by passing test data and comparing the actual result with the expected result.
Functional Testing Process
The functional testing process usually involves the following steps-
- Identification of business requirements or functionalities.
- Test data preparation based on the functionalities to be tested.
- Finding of the expected outcome or the expected results.
- Test case execution.
- Comparing the actual and expected results.
Types of Functional testing
- Unit testing – Unit testing is a type of testing performed by developers on the individual module or piece of code. This ensures that the individual modules work correctly and can be integrated with other modules.
- Integration testing – Integration testing is performed after unit testing. In integration testing, the interfacing between the inter-connected modules is tested.
- System testing – System testing is the third level of testing performed after integration testing. In system testing, the application as a whole is tested against its requirement specifications.
- Acceptance testing – Acceptance testing is performed after system testing and it involves validation of all the business requirements to make sure that the application can be accepted for delivery.
- Smoke testing – Smoke testing is a type of testing that involves the execution of a limited number of test cases to ensure that a new build can be considered for thorough testing. If the smoke test cases fail, then the build is rejected for further testing.
- Regression testing – Regression testing is the type of testing that is performed to ensure that a code fix or a new functionality implementation hasn’t affected previously working functionality.
- Sanity testing – Sanity testing is a type of testing that involves running of a subset of regression tests to ensure that a new fix hasn’t affected an already working functionality but in lesser time as compared to regression testing.
That’s all I have in this section. Let me know in the comments if you have any questions. Also, check our software testing tutorial here.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can connect with him on LinkedIn.