Regression testing is selective retesting of the system; executed with an objective to ensure the bug fixes work and those bug fixes have not caused any un-intended effects in the system.
The selection of test cases for regression testing depends on:
- Requires knowledge on the bug fixes and how it affect the system.
- Includes the area of frequent defects.
- Includes the area which has undergone many/recent code changes.
- Includes the area which is highly visible to the users.
- Includes the core features of the product which are mandatory requirements of the customer.
Selection of test cases for regression testing depends more on the criticality of bug fixes than the criticality of the defect itself.
Do not focus on the test cases that are bound to fail and those test cases which has no or less relevance to the bug fixes. Select more positive test cases than negative test cases for final regression test cycle as this may create some confusion and unexpected heat. It is also recommended that the regular test cycles before regression testing should have right mix of both positive and negative test cases. Negative test cases are those test cases which are introduced newly with intent to break the system.
Good approach is to plan and act for regression testing from the beginning of project before the test cycles. One of the ideas is to classify the test cases into various Priorities based on importance and customer usage.
For an Effective Regression Testing :
- Create a regression test plan identifying focus areas, strategy, test entry and exit criteria. It can also outline Testing Prerequisites, Responsibilities, etc.
- Create test cases.
- Defect tracking.
Tuesday, September 7, 2010
Selecting a test strategy for regression testing
Posted by
Sunflower
at
9/07/2010 07:39:00 PM
0
comments
Labels: Bugs, Defects, Errors, Product, Regression, Regression Testing, Selection of test case, Software, Strategy, Test Strategy, Testing Strategy, Tests
![]() | Subscribe by Email |
|
Tuesday, August 17, 2010
Regression Testing – what is it, and what is the need
Often when a bug is detected in a software product all the energy of a developer is concentrated on that particular bug that he sometimes forgets the big picture which results in introduction of many more errors into the program. This is where regression testing comes into picture. Regression testing is any type of software testing that seeks to uncover software errors by partially retesting a modified program. In regression testing systematic selection of appropriate minimum suite of tests needed to adequately cover the affected change is done. Often it is extremely difficult for a programmer to figure out how a change in one part of the software will echo in other parts of the software hence regression testing includes rerunning previously run tests and checking whether previously fixed faults have re-emerged.
For identification of regression the most accepted practice is that once a bug is located and fixed, a test that exposes the bug is recorded and regularly retested after subsequent changes from the program. Although this can be done through manual testing procedures but often automated testing tools are used for this. Such test suites contain software tools that allow the testing environment to execute all the regression test cases automatically. In some cases these suites are re-run at specific intervals and any failures are reported. Regression testing is an integral any present day software development method. Extensive, repeatable and automated testing of the entire software is done at every stage in the software development cycle. Traditionally in the corporate world, regression testing is performed by the software quality assurance team after development team has completed work. As a consequence of introduction of new bugs, program maintenance requires far more system testing per statement written than any other programming. Theoretically, after each fix one must run the entire batch of test cases previously run against the system, to ensure that it has not been damaged in an obscure way. In practice, such regression testing is very costly.
The biggest challenge faced by this kind of regression testing is that these tend to be very fragile. Fragile in the sense that even a trivial change in the application often causes the tests to report “failures” that actually indicate that the script needs to be updated to deal with the change in the application. This causes inconvenience because it often takes more time and effort to maintain these automated regression tests that it would have taken to just execute them manually.
Concluding the discussion it should be mentioned the programmer should be aware when it is useful to use regression testing and when it’s a waste of resources. If your testing mission is to unleash as many defects as possible then maybe regression testing is not a good choice but when the purpose is to demonstrate the ruggedness of some specific features of the product on a relatively stable and mature application then automated testing is the right choice for you.
Posted by
Ashish Agarwal
at
8/17/2010 11:17:00 PM
2
comments
Labels: Automated Testing, Detection, Explanation, Information, Regression, Regression Testing, Testing Strategy
![]() | Subscribe by Email |
|