0% found this document useful (0 votes)
302 views8 pages

Chapter 1 - Regression Testing

Regression testing is a type of software testing used to confirm that changes to a program have not introduced new bugs. It involves re-running previously run test cases to ensure existing functionality still works as expected after code changes. The document discusses the need for regression testing when modifying code, techniques for selecting test cases, common regression testing tools, and challenges with regression testing.

Uploaded by

Aamir Afzal
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
302 views8 pages

Chapter 1 - Regression Testing

Regression testing is a type of software testing used to confirm that changes to a program have not introduced new bugs. It involves re-running previously run test cases to ensure existing functionality still works as expected after code changes. The document discusses the need for regression testing when modifying code, techniques for selecting test cases, common regression testing tools, and challenges with regression testing.

Uploaded by

Aamir Afzal
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 8

What is Regression Testing?

Definition, Test
Cases (Example)

What is Regression Testing?


Regression Testing is defined as a type of software testing to confirm that a recent
program or code change has not adversely affected existing features. Regression
Testing is nothing but a full or partial selection of already executed test cases
which are re-executed to ensure existing functionalities work fine.
This testing is done to make sure that new code changes should not have side
effects on the existing functionalities. It ensures that the old code still works once
the latest code changes are done.

In this tutorial, we will learn

 Need of Regression Testing


 How to do Regression Testing
 Selecting test cases for regression testing
 Regression Testing Tools
 Regression Testing and Configuration Management
 Difference between Re-Testing and Regression Testing
 Challenges in Regression Testing
 Practical Application of Regression Testing Example with a Video

Need of Regression Testing


The Need of Regression Testing mainly arises whenever there is requirement to
change the code and we need to test whether the modified code affects the other
part of software application or not. Moreover, regression testing is needed, when a
new feature is added to the software application and for defect fixing as well as
performance issue fixing.

How to do Regression Testing


In order to do Regression Testing process, we need to first debug the code to
identify the bugs. Once the bugs are identified, required changes are made to fix it,
then the regression testing is done by selecting relevant test cases from the test
suite that covers both modified and affected parts of the code.
Software maintenance is an activity which includes enhancements, error
corrections, optimization and deletion of existing features. These modifications
may cause the system to work incorrectly. Therefore, Regression Testing becomes
necessary. Regression Testing can be carried out using the following techniques:

Retest All
 This is one of the methods for Regression Testing in which all the tests in the
existing test bucket or suite should be re-executed. This is very expensive as
it requires huge time and resources.

Regression Test Selection


Regression Test Selection is a technique in which some selected test cases from
test suite are executed to test whether the modified code affects the software
application or not. Test cases are categorized into two parts, reusable test cases
which can be used in further regression cycles and obsolete test cases which can
not be used in succeeding cycles.
Prioritization of Test Cases
 Prioritize the test cases depending on business impact, critical & frequently
used functionalities. Selection of test cases based on priority will greatly
reduce the regression test suite.

Selecting test cases for regression testing


It was found from industry data that a good number of the defects reported by
customers were due to last minute bug fixes creating side effects and hence
selecting the Test Case for regression testing is an art and not that easy.  Effective
Regression Tests can be done by selecting the following test cases –

 Test cases which have frequent defects


 Functionalities which are more visible to the users
 Test cases which verify core features of the product
 Test cases of Functionalities which has undergone more and recent changes
 All Integration Test Cases
 All Complex Test Cases
 Boundary value test cases
 A sample of Successful test cases
 A sample of Failure test cases

Regression Testing Tools


If your software undergoes frequent changes, regression testing costs will escalate.
In such cases, Manual execution of test cases increases test execution time as well
as costs. Automation of regression test cases is the smart choice in such cases.  The
extent of automation depends on the number of test cases that remain re-usable
for successive regression cycles. 

Following are the most important tools used for both functional and regression
testing in software engineering:

1) Avo Assure
Avo Assure is a technology agnostic, no-code test automation solution that helps
you test end-to-end business processes with a few clicks of the buttons. This makes
regression testing more straightforward and faster.
Features

 Autogenerate test cases with a 100% no-code approach


 Test across the web, desktop, mobile, ERP applications, Mainframes,
associated emulators, and more with a single solution.
 Enable accessibility testing
 Execute test cases in a single VM independently or in parallel with Smart
Scheduling
 Integrate with Jira, Jenkins, ALM, QTest, Salesforce, Sauce Labs, TFS, etc.
 Define test plans and design test cases through the Mindmaps feature

More Information >>

2) Telerik Test Studio


Telerik Test Studio is an automated testing platform for web, desktop and
responsive applications, supporting functional UI, load and RESTful API testing.
Test Studio helps teams eliminate regressions and make sure their applications
still work the way they did before any changes were introduced. It comes with
standalone IDE and Visual Studio integration

Features:

 Visual test recorder for codeless end-to-end tests


 Cross-browser support
 Headed or three times faster headless test execution
 Element location based on element ID and image
 CI/CD Integration and Docker support for Continuous Testing
 Data-driven testing
 Remote test scheduling and execution
 Test results and reports

More Information >>

3) testRigor
testRigor helps you to directly express tests as executable specifications in plain
English. Users of all technical abilities are able to build end-to-end tests of any
complexity covering mobile, web, and API steps in one test. Test steps are
expressed on the end-user level instead of relying on details of implementation like
XPaths or CSS Selectors.

Features:

 Free forever public version


 Test cases are in English
 Unlimited users & Unlimited tests
 The easiest way to learn automation
 Recorder for web steps
 Integrations with CI/CD and Test case management
 Email & SMS testing
 Web + Mobile + API steps in one test

More Information >>

4) Subject7
Subject7 is a cloud-based, “true codeless” test automation solution that unifies all
testing in a single platform and empowers anyone to become an automation
expert. Our easy-to-use software enables fast, easy, and sophisticated authoring of
regression tests without writing a line of code, and high scale execution that runs
thousands of nightly tests.

Features:

 Integrates easily with DevOps/Agile tooling using native plugins, in-app


integrations, and open APIs.
 High-scale parallel execution in the cloud or on-prem with enterprise-grade
security.
 Flexible reporting of defects, with video capture of results.
 Simple, non-metered pricing, delivering financial predictability.
 SOC2 Type2 compliant

More Information >>

5) Eggplant
Eggplant’s AI-driven test automation streamlines regression testing through
prioritization of test cases and minimization of test maintenance.

Features:

 AI-driven test execution enables Eggplant to test the most important areas
of each release.
 Reuse testing models and scripts to test multiple versions with one set of
assets.
 Reduce the burden of test maintenance through self-healing functional
tests.
 Understand and focus in on problematic areas of your application that put
your release at risk.
 Discover bugs that you would otherwise miss through automated
exploratory testing.
 Reduce the time required to test key functionality of applications after
updates.

More Information >>


Selenium: This is an open source tool used for automating web applications.
Selenium can be used for browser-based regression testing.

Quick Test Professional (QTP): HP Quick Test Professional is automated software


designed to automate functional and regression test cases. It
uses VBScript language for automation. It is a Data-driven, Keyword based tool. 

Rational Functional Tester (RFT): IBM’s rational functional tester is a Java tool


used to automate the test cases of software applications. This is primarily used for
automating regression test cases and it also integrates with Rational Test
Manager. 

Regression Testing and Configuration Management


Configuration Management during Regression Testing becomes imperative in Agile
Environments where a code is being continuously modified. To ensure effective
regression tests, observe the following :

 Code being regression tested should be under a configuration management


tool
 No changes must be allowed to code, during the regression test phase. 
Regression test code must be kept immune to developer changes.
 The database used for regression testing must be isolated. No database
changes must be allowed
Difference between Re-Testing and Regression Testing:
Retesting means testing the functionality or bug again to ensure the code is fixed. If
it is not fixed, Defect needs to be re-opened. If fixed, Defect is closed.

Regression testing means testing your software application when it undergoes a


code change to ensure that the new code has not affected other parts of the
software.

Also, Check out the complete list of differences over here.

Challenges in Regression Testing:

 Following are the major testing problems for doing regression testing:

 With successive regression runs, test suites become fairly large.  Due to time
and budget constraints, the entire regression test suite cannot be executed
 Minimizing the test suite while achieving maximum Test coverage remains a
challenge
 Determination of frequency of Regression Tests, i.e., after every modification
or every build update or after a bunch of bug fixes, is a challenge.

Conclusion:
An effective regression strategy, save organizations both time and money. As per
one of the case study in banking domain, regression saves up to 60% time in bug
fixes(which would have been caught by regression tests) and 40%  in money 

You might also like