Software Testing | Functional Testing

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:

  1. Identify function that is to be performed.
  2. Create input data based on the specifications of function.
  3. Determine the output based on the specifications of function.
  4. Execute the test case.
  5. 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.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.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.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.