Introduction to Functional Testing

What is Functional testing?

Functional Testing
Functional testing as the name suggest means to check the functionality of the software, based on SRS (software requirements specification). In simple words, functional testing is done to verify that developed software functions in compliance to specified requirements & designs as pre-decided before starting the software development process. After the development stage of a software product is over, it requires to be tested on the basis of its chief specifications. For example, user commands, search operations and the like. Functional testing is just that process. In other words, Functional testing describes in a subtle way, what the system does.

How functional Testing is done?

Contrary to popular belief, Functional testing can be and should be performed on the beginning of the development stage. Pretty much a black box testing technique, it involves initial feeding of input to the system and a subsequent validation of the response, against the main specifications.

Types of Functional testing:

  • Sanity testing:

    It tests the logical reasoning pertaining to the working of the program. For example, it can check if the result arising out of a calculation is true or incorrect.

  • Smoke testing:

    One of the most preliminary of tests, smoke testing reveals the most elementary of errors. It addresses the most basic of functionalities crucial to the working of the product. It addresses questions like, "Can the program run?" "Is the window opening on pressing the click button?"

  • User acceptability Testing:

    As the name suggests, user acceptability testing involves creation of a scenario where the targeted customers or the end users get a chance to review the functioning of a product. Can be something as basic as testing the attachment function in Gmail.

  • Regression Testing:

    Many a times, a bug is revealed in the functioning of an application, post minor variation in configuration due to an upgrade. This is called a regression. Regression testing's aim is to eliminate any such eventuality and make the product resistant to glitches in the aftermath of a patch or upgrade.

As part of a strong foundation towards building a top class software product, functional testing thus proves to be the bed rock and is a crucial part of every test routine.

Click for complete information about functional testing tools here.