Sunday 1 November 2015

Regression testing and Regression testing techniques

Software maintenance is the most crucial phase in the software development life cycle in which development team is supposed to maintain software. Software maintenance results for the reasons like enhancements in the software, error corrections, deletion of capabilities and optimization. Regression testing is testing performed on the changed or modified software. Regression testing includes testing of both the modified code and other parts of the software that may be adversely affected by the changes introduced in the software or a part of it.
Regression testing is a part of software maintenance phase and is an expensive process. Regression testing is important from software testing perspective as it focuses on variations encounter in the SDLC, and the resulting poor quality of the software. Regression testing is used to monitor the changes in the software and timely feedback from the consequences of changes. In regression testing an existing tested functionality is tested once again, in order to check if the functionality is the bug free and to validate if existing functionality is not affected whenever new change is added or defect is fixed.
In simple terms it is testing to check the cross-impact of defect fix.
Regression testing is also useful method that will help in determining whether the software is complying with quality and standard. An added useful feature of regression testing is to validate whether the software is able to produce the expected output without any errors. With regression testing, software testers can uncover if the changes introduced are affecting the program in a negative way.
At the time of execution if tester comes across any defect, the tester reports it to the development team and when development team has fixed the defect tester needs to perform the testing on fixed defect. While the defect fix developer might have changed the other functionality. To ensure these changes does not affect other functionality regression testing is done.
Need for Regression testing:
  • Bug or defect fixes often break other parts or pieces of software the developer isn’t concentrating on
  • Sometimes defect fixes don’t fix the defect
  • Discovering fault localisation
  • To validate software is working as expected even after undergoing the changes in the software code, design or architecture
  • Errors in build process
Types of Regression testing:
There are four regression testing techniques.
  1. Retest all: It is one of the most conventional testing technique in which all the test cases in the existing test suite are re-executed. It is expensive technique compared to other regression techniques as it requires more time, resources and cost to execute full test suites.
  2. Regression Test Selection (RST): In this testing technique specific test cases are selected from existing test suites instead of rerunning the all test suites again. It is less expensive as compared to Retest all technique as it includes specific number of test cases for execution. In addition to existing selected test suites few new test cases are designed that may test software for areas which may not be covered by existing test cases.
  3. Test Case Prioritisation: In this testing technique test cases are prioritised depending upon the business impact, critical and frequently used functionality so as to increase a test suites rate of fault detection.
  4. Hybrid approach: It is the combination of both Regression Test Selection and Test Case Prioritisation.
Now a day, most of the companies are using automation tools for regression testing like Unified Functional Testing (UFT),Test Complete, Selenium, Cucumber, Rational Functional Test (RFT) etc.
Advantages:
  • Helps to ensure that software is working as expected even after undergoing the changes and modifications
  • Provide precision in testing to facilitate maximum coverage through minimal number of test cases
  • Detect errors present in application
  • Identify the unforeseen errors
  • Improves the efficiency of quality assurance applications
  • Reduce time to market significantly
 Disadvantages:
  • Automation regression scripts needs skilled testers
  • Need to update the scripts on timely basis

No comments:

Post a Comment