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 DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Software Testing | Non-functional Testing
- Difference between Functional Testing and Implementational Testing Approach
- Differences between Functional and Non-functional Testing
- Load Testing Basics, Tools & Practices in Software Testing
- Software Engineering | Differences between Sanity Testing and Smoke Testing
- Software Engineering | Comparison between Regression Testing and Re-Testing
- Various Approaches to Functional Testing
- Object Oriented Testing in Software Testing
- Basis Path Testing in Software Testing
- Difference between Software Testing and Embedded Testing
- Software Testing | Accessibility Testing
- Gray Box Testing | Software Testing
- Software Testing | Load Testing
- Software Testing | Endurance Testing
- Software Testing | Use Case Testing
- Software Testing | Mutation Testing
- Software Testing | Dynamic Testing
- Software Testing | Stability Testing
- Software Testing | Fuzz Testing
- Software Testing | Database Testing