First of all let us see the meaning of the term Regression Testing According to Wikipedia, â€Regression testing is any type of software testing which seeks to uncover software regressionsâ€. Such regressions occur whenever software functionality that was previously working correctly, stops working as intended. Typically regressions occur as an unintended consequence of program changes. Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged. Concluding Definition of “Regression Testingâ€: It is quite natural to have changes in the code during software development and maintenance phase. Thus a software program that happened to execute properly earlier might stop functioning the same way after the changes. Hence re-running of the test cases of a program, which functioned correctly before the changes, and with an objective of detecting failures, can be concluded to be â€Regression Testingâ€. Regression testing is a quality control measure aimed at ensuring the following two conditions: a) Newly modified code meets the specified requirements. b) Unmodified code has not been affected by the change as above. Going by the definition, regression testing is repetitive. Hence majority of the tests would be best suited to automation, where after performing few test iterations, test automation would prove to be extensively costs effective as compared to the strenuous manual process. Why defects get introduced during changes? Correctly working applications fail due to either incorrect or incomplete changes made in them. In software industry, the rate of defect introduction in the applications is quite high. In general, one out of six attempts made over the applications to correct them are faulty themselves. The prime reason of high rate of defects getting introduced is 1) Poor system documentation held by the developers. 2) Tendency of the developers to tackle the symptoms instead of identifying the underlying causes. 3) Lack of experience of the developers. Objectives of regression testing: 1) The objective of regression testing is to identify unexpected defects. These defects or faults are the ones, which remained in the system, due to the reason that, while changing the code, the developer probably could not completely understand the internal correlations of the code. Complete Article is available at: http://www.softwaretestinggenius.com/articaldetails.php?mode=details&qry=378&parent=145
Hi, Good explanation about regressiion testing .Even i have something to add (Regression testing is one of the most important testing part which should be taken into consideration). System testing ,UAT,& integration are the major type of testing .Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes.This means if something or the bottom part of the module is changed the entire program must function properly without creating errors. I insist you to elaborate something on performance testing. Regards , kamlesh.