Software testing – Brief explanation with easy examples

This blog explains about Software testing – Brief explanation with easy examples and is given below : 



         It is a type of testing which verifies that each function of the software application operates in conformance with the requirement specification .

           This testing mainly involves black box testing and it is not concerned about the source code of the application .

            This testing involves checking of user interface , API’s , Database , Security , Client / Server applications and functionality of the application under Test .

             The testing can be done either manually or using automation .

What do you test  in functional testing ?

            The prime objective of the functional testing is checking the functionalities of the  software system .

It mainly concentrates on :

 Mainline functions : Testing the main functions of an application

Basic Usability : It involves basic usability testing of the system . It checks whether an user can freely navigate through the screens without any difficulties .

Accessibility : Check the accessibility of the system for the user .

Error Conditions : Usage of testing techniques to check for error conditions . It checks whether suitable error messages are displayed .

Functional testing Process :

1 ) Understand the requirements

2 ) Identify test input ( test data )

3 ) Compute the expected outcomes with the selected test input values.

4 ) Execute test cases

5 ) Comparison of actual and computed expected result .

Types of Functional Testing :

Unit Testing :

     Test each module (Program , function , procedure , method ) individually checking code of units in application is working as expected or not .

        It is also called compound testing or module testing .

Integration Testing :

         Once unit testing is conducted , the programmer will combine all modules together and will check the interaction between those modules ie) communicate between the modules and this is called as component integration testing or Interface testing .

System Testing :

           Validating both functional and non functional requirements of system is called system testing .

User Acceptance Testing :

         Once the system testing is done then customer or domain expert will test the application to conform does the application is good for live environment or not .

Alpha Testing :

         It is first level of acceptance testing conducted by domain expert or customer at developer premises .

Beta Testing :

        It is last level of acceptance testing conducted  by domain expert or customer at customer premises to check whether the application is good for live usage

Smoke Testing or sanitary testing :

        It is a group of testing cases that establishes system is stable and all major functionality is present and works under “ normal ” conditions .

Regression Testing :

        It is a process of testing to make sure that ( changes made in fixing bug should not affect the other part of the program ) Old programming still works well with new changes .

          Regression testing is carried out of examine whether the new code works properly and has not damaged any previously working functionality .

Retesting :

        Retesting is a testing whether a specified bug has been fixed by the developer or not  ie ) testing a particular bug alone to find out whether the bug has been fixed or not .

End to end Testing :

               Validating all core functionality of the system right from the beginning till end and its data integration as well .

Mutation Testing :

       It is a process of wantedly injecting defects by developer to check whether the testers are testing application properly or not .

Exhaustive Testing :

         Testing Functionality with all positive and negative perception is called exhaustive testing and it is also called as detail  testing .

Ad – Hoc Testing :

         Testing the application without following any pre planned procedure is called Ad – Hoc testing .

Functional Testing Tools :

Selenium – Popular open source functional testing tool .

QTP – Very user friendly functional Test Tool by HP.

J Unit – Used mainly for Java applications and this can be used in Unit and System Testing .

Soap UI – This is an open source functional testing tool , mainly used for web service testing . It supports multiple protocols such as HTTP , SOAP and JDBC .

Watir – This is functional testing tool for web applications . It supports tests executed at the web browser and users ruby scripting language .

      Thus , Functional testing is process of testing functionalities of the system and ensures that the system  is working as per the functionalities specified in the business document .

       The goal of this testing is to check whether the system is functionally perfect .