– Functional testing involves testing the system’s functional requirements and gives a measure as to how well the system is executing its functions.
– These are inclusive of data manipulation and searches, user commands, business processes, integration, user screens and so on.
– Functional specifications are provided by the clients that are used in testing.
– The design team provides the use cases from which the design specifications are obtained.
– Functional testing can be thought of as a kind of a black box testing.
– Functional tests employed in functional testing are the scripts or the programs that have been configured in testing the functionality that help in meeting the external requirements and performance goals.
– Functional tests even include the screen driving programs that are used for testing the application’s graphical user interface or GUI.
– Functional tests are counted among the key components of the software testing process.
– These tests are leveraged by the extreme programming for permitting the onsite customers to obtain knowledge about the growth of the project.
– Functional tests are different from the unit tests in the sense that the functional tests test the whole system from one end to another while the unit tests check only one class.
– But there is a similarity also between the two which is that both the tests increase the speed of the development process and at the same time ensures the quality.
– The input is fed to the functional tests through the real system’s input files and the results after processing are sent to the real result files.
– The result files are then again read and compared with the expected results.
– The responsibility of specifying the functional tests is given to the customer whereas the developers have the responsibility for defining the unit tests.
– But in some cases, the programmers might write the test cases after hearing the stories from the customer.
– Errors found during the testing session are subjected to treatment by the supporting unit tests and are fixed and then again tested with the functional tests.
Following are the types of the functional testing:
– Unit testing
– Integration testing
– System testing
– User acceptance testing
– Smoke testing
– Usability testing
– Interface testing
– Regression testing
Steps in Functional Testing
Following steps are followed while carrying out any kind of functional testing:
– Functional testing is not concerned with the source code of the system under test rather it is only concerned with the verification of the functions of the software.
– The functional testing might check things such as APIs, user interface, functionality of the AUT (application under test), client/ server applications and so on.
– The functional testing can be carried out either through automation or manually.
The concentration of the functional testing is mainly upon:
Basic usability: This consists of basic usability testing of the SUT. It tests if the user has any difficulty in navigating through the screens without any problems.
Accessibility: It involves checking the accessibility of the SUT from the user’s point of view.
– Here, the testing techniques are used for checking the conditions under which the errors occur.
– It tests whether appropriate error message or warning is displayed on occurrence of an error or not.
Performing the functional testing manually is quite easy whereas it is quite difficult in non – functional testing. The aspects that are tested in the non – functional testing include scalability, reliability, and performance and so on. This testing is always carried out after the functional testing has been performed. Unlike functional testing, this type of testing tells how well the system under test works.