Regression Testing Service implementation at Testvox

Software Testing Principles
24 June 2022
What is Regression Testing?

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.

Why Regression Testing
Regression Testing needs to be planned when
i.
A requirement to change the code of the application software in order to make an update in any of the existing functionality has been received, or
ii.
A requirement to introduce a new feature or functionality in the application software has been submitted by a client.
So any sort of modifications or updates to an application software invites the necessity of execution of regression testing after its completion. Sometimes the need of code optimization for an application software may also trigger the execution of regression testing to assure that the application software works the same way as it worked prior to the code optimization.
Regression Testing Methods
Basically there are 2 types of regression testing methods,

(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.

Manual Regression Testing:-

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.

Automated Regression Testing:-

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.

Implementation of Regression Testing at Testvox

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.