Software testing is defined as an activity to check whether the actual results match the expected results and to ensure that the software system is Defect free. Software testing also helps to identify errors, gaps or missing requirements in contrary to the actual requirements. It can be either done manually or using automated tools.