Saturday, July 5, 2008

Regression Testing

Regression Testing

Regression Testing

Usage:

  • All aspects of system remain functional after testing.
  • Change in one segment does not change the functionality of other segment.

Objective:

  • Determine System documents remain current
  • Determine System test data and test conditions remain current
  • Determine previously tested system functions properly without getting effected though changes are made in some other segment of application system.

How to Use

  • Test cases, which were used previously for the already tested segment is, re-run to ensure that the results of the segment tested currently and the results of same segment tested earlier are same.
  • Test automation is needed to carry out the test transactions (test condition execution) else the process is very time consuming and tedious.
  • In this case of testing cost/benefit should be carefully evaluated else the efforts spend on testing would be more and payback would be minimum.

When to Use

  • When there is high risk that the new changes may effect the unchanged areas of application system.
  • In development process: Regression testing should be carried out after the pre-determined changes are incorporated in the application system.
  • In Maintenance phase : regression testing should be carried out if there is a high risk that loss may occur when the changes are made to the system

Example

  • Re-running of previously conducted tests to ensure that the unchanged portion of system functions properly.
  • Reviewing previously prepared system documents (manuals) to ensure that they do not get effected after changes are made to the application system.

Disadvantage

  • Time consuming and tedious if test automation not done

Compare with Regression Testing and ReTesting

Regression Testing:

Regression testing is a testing process that is applied after the programs
are modified. Regression testing is a major component in maintenance and
conversion projects. Regression testing verifies the quality of the
software from build to build and from release to release. This test phase
is designed to detect failures that result from changes occurring between
builds and releases. New test case may need to be added to the test plan
during this phase. Modifying a program involves creating new logic to
correct an error or implement a change, and incorporating that logic into
an existing program. The new logic may involve minor modification such as
adding, deleting or rewriting a few lines of code or may involve major
modifications such as adding, deleting or replacing one or more modules or
sub-systems. Regression
testing aims to check the correctness of the new logic, to ensure the
continuous working of the unmodified portions of a program and to validate
that the whole functions correctly.


Retesting:
Retesting is the repeat execution of test cases which lead to a fault, with
the aim of proving that the fault has been cured.

or

Retesting : --

reexecution of testcases on same application build with
different input values is retesting

No comments: