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.
- Software Testing | Non-functional Testing
- Differences between Functional and Non-functional Testing
- Software Engineering | Differences between Sanity Testing and Smoke Testing
- Software Engineering | Comparison between Regression Testing and Re-Testing
- Software Testing | Fuzz Testing
- Software Testing | Manual Testing
- Unit Testing | Software Testing
- Software Testing | Dynamic Testing
- Software Testing | Database Testing
- Software Testing | Penetration Testing
- Software Testing | Endurance Testing
- Software Testing | Mutation Testing
- Software Testing | Stability Testing
- Software Testing | Load Testing
- Software Testing | Reliability 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 email@example.com. 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.