Testing in QA can be categorized into Functional and Non-Functional Testing −
Let’s suppose we need to test the application of Airtel. There will be many aspects of this application, such as Billing, Payment, Overview, Support, Profile, etc. We will refer this while understanding the below section.
Testing the applications keeping in mind the requirement of the client, providing the appropriate input and expecting the correct output, testing the User Interface of the application etc. is Functional Testing. In short all the user requirements as specified by the business should be well tested as a part of functional testing.
Taking the example of the above application, the application should not accept more than 10 digit number in the Phone number input box. Only numeric values should be allowed in the input box. While payment, the application should be well integrated with the payment gateways. So all these functional checks comes under Functional Testing.
There are various tools used in functional testing such as QTP, Selenium, JUnit, SoapUI, Watir etc.
The basic requirement which is expected out of a well running application should be tested. The UI should be user friendly and easy to navigate. Error messages should pop-up in case any unwanted entry is entered.
A bug free application with the good user interface is the basic objective of Functional Testing.
Unit Testing – Where individual components of software are tested by the developer.
Smoke Testing – When the build is relatively unstable, to verify the critical functionality works fine. For example the application should launch successfully.
Sanity Testing – Before the more rigorous round of testing, it is a kind of rough testing to ensure the application is running fine after the bugs are fixed or after the new functionality is introduced.
System Integration Testing – When the individual components are combined and tested as application as a whole seamlessly. This rules out any loophole or any faults in the interaction with the integrated units.
Regression – After the bugs are fixed, there are chances that the actual functionality might be impacted. Hence to ensure that after the Defect fix, the original functionality remains the same, we perform Regression Testing.
UAT – It is performed by the client itself, to make sure that the developed applications presented by them are as per their requirements. It ensures end to end business flow.