Functional Testing is a type of Software Testing in which the system is tested against the functional requirements and specifications. Functional testing ensures that the requirements or specifications are properly satisfied by the application. This type of testing is particularly concerned with the result of processing. It focuses on simulation of actual system usage but does not develop any system structure assumptions.
It is basically defined as a type of testing which verifies that each function of the software application works in conformance with the requirement and specification. This testing is not concerned about the source code of the application. Each functionality of the software application is tested by providing appropriate test input, expecting the output and comparing the actual output with the expected output. This testing focuses on checking of user interface, APIs, database, security, client or server application and functionality of the Application Under Test.
Functional testing can be manual or automated.
Functional Testing Process:
Functional testing involves the following steps:
- Identify function that is to be performed.
- Create input data based on the specifications of function.
- Determine the output based on the specifications of function.
- Execute the test case.
- Compare the actual and expected output.
Major Functional Testing Techniques:
- Unit Testing
- Integration Testing
- Smoke Testing
- User Acceptance Testing
- Interface Testing
- Usability Testing
- System Testing
- Regression Testing
Functional Testing Tools:
1. Selenium 2. QTP 3. JUnit 4. SoapUI 5. Watir
Advantages of Functional Testing:
- It ensures to deliver a bug-free product.
- It ensures to deliver a high-quality product.
- No assumptions about the structure of the system.
- This testing is focused on the specifications as per the customer usage.
Disadvantages of Functional Testing:
- There are high chances of performing redundant testing.
- Logical errors can be missed out in the product.
- If the requirement is not complete then performing this testing becomes difficult.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Differences between Functional and Non-functional Testing
- Functional vs Non Functional Requirements
- Functional and Non-functional Requirement of a System
- Software Testing | Non-functional Testing
- Difference between Functional Testing and Implementational Testing Approach
- Various Approaches to Functional Testing
- Software Engineering | Functional Point (FP) Analysis
- Non-functional Requirements in Software Engineering
- Functional Modelling in object oriented analysis and design
- Functional modeling and Information Flow modeling
- Beta Testing | Software Testing
- Software Engineering | Differences between Sanity Testing and Smoke Testing
- Software Testing | Endurance Testing
- Software Testing | Dynamic Testing
- Software Testing | Accessibility Testing
- Smoke Testing | Software Testing
- Performance Testing | Software Testing
- Sandwich Testing | Software Testing
- Software Engineering | Comparison between Regression Testing and Re-Testing
- Alpha Testing | Software Testing
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.