A type of software testing that assures the consistent functioning of
all previously existing features and functionalities of an
application software after a new feature has been launched into the
application or a code change on behalf of this application software
has been made is called Regression Testing. All test cases regarding
the existing features and functionalities of the application
software to be tested are re-executed to ensure this.
So regression testing actually tests again those parts of the application software
which are not altered or disturbed by the latter code changes to
ensure their consistency.
Regression Testing also ensures that the bugs that were already
fixed before the code update was done do not reappear after the
latter code change. Regression Testing is a vital part of software
maintenance. The number of test cases mapped to regression testing
will increase after each code update as the test cases corresponding
to the functionality changes and new features introduced into the
software application as a result of this code change also need to be
accommodated in this set of test cases related to regression
testing. These new sets of test cases will also be executed along
with the already existing test cases when regression testing is done
next time for the subsequent software build or code change.
(i) Manual Regression Testing, and
(ii) Automated regression
testing.
Test cases corresponding to the functionalities and features of the
application software to be tested are prepared initially. Each test
case may represent a sub-functionality, functionality or a feature
and consists of a sequence of events to be executed which may be
numbered stepwise. The test cases created are managed using a
testing management tool.
The test cases related to the areas of the application software to be
tested are allotted to the Software Testers and they proceed with
running the application stepwise as entered in the test cases. As
test cases are executed one by one by the software testers, bugs
found are reported to the clients and are kept track of using a
testing management tool. Manual testing is advantageous when,
(i) The functionalities and features that change frequently are
tested,
(ii) The product to be tested has not been stable yet, and
(iii) The functionalities and features that are difficult to be
automated are tested.
The prerequisites for automated regression testing to be made
possible are
(i)The sequence of events incorporated into each test case needs to
be run in the application software to be tested and recorded
simultaneously using an automation tool and these recordings must be
saved and be ready to be executed any time, or
(ii) Series of scripts corresponding to the sequence of events
incorporated into each test case needs to be written using a
scripting language supported by the automation tool to be used and
saved and ready for execution any time.
Automated testing is done either by executing the series of pre-written scripts or by running the saved recordings corresponding to the test cases belonging to the modules of the application software to be tested after a code change or after the introduction of a new feature into the application software with little or no human supervision.
Automated Regression Testing has the following attractions.
(i) Manual regression testing process is slow and time-consuming and
can be tiresome and error-prone. Automation of regression testing
overcomes these vulnerabilities and the recordings or scripts can be
run continuously for days with the automation tool without
exhaustion unlike humans. This makes faster delivery of the product
possible.
(ii) The software testers can be allocated to work on more valuable
tasks as automated regression testing requires little human
intervention only.
(iii) Automated regression testing is the best option to test
scenarios or functionalities that are predictable or stable and
frequently repeated.
Testvox handles both manual regression testing and automated
regression testing based on
(i) Requests received from clients, or
(ii) As per requirements identified while proceeding with the
testing of the application software.
The automation tools used mostly are Selenium WebDriver for testing
web applications, WebdriverIO for testing both mobile and web
applications, APPIUM for testing mobile applications, etc.
Test cases are created module wise initially based on the
requirements when an application software is entrusted with us for
testing service. The type of regression testing method to be
followed is then decided.
(i) If manual testing is suggested by clients or decided by us based
on the testing project, then each test case will be executed
stepwise by our software testers on the software application to be
tested.
(ii) If automated regression testing is recommended, then either the
test scripts corresponding to the steps in each of the test cases
will be created by our software testers using any of the scripting
languages supported by the automation tool used or the stepwise
actions in each of the test cases will be executed on the
application software to be tested and recorded using the automation
tool used and saved. These test scripts or recordings are run on the
application software while automated regression testing is done.
Bugs found after the completion of the regression testing will be
reported. On rectification of these bugs, the whole collection of
created test cases regarding or related to the modules where bugs
were found will be executed again either manually or using
automation tool to ensure that all previously identified bugs are
absent and also to ensure that no new bugs are found.
The test scripts created corresponding to the test cases formed will
be delivered to the clients on their request and the knowledge on
their functioning will be imparted to the clients through knowledge
transfer or mentoring sessions. So even after the completion of the
contract with Testvox, the clients can utilise these test scripts on
their own when required for testing their software application.