Managing Regression Testing

Mercy Kinoti
Crispytest
Published in
3 min readSep 29, 2019

With growth and meeting customer needs, comes new features and bug fixes, improvements, better components, and modules. For any testers out there, they know how hectic it can be during sprints. You have to go through everything back to back to ensure the new code has not broken the old one and things are working as smoothly as before or even better. This can be a monotonous and strenuous task hence the need to manage it and make it easier.

It’s critical to understand the complexity of the system, third-party integrations, security and the changes being made in order to determine the intensity of the testing. This is where test plans come in handy.

A test plan is an outline of what needs to be tested (scope), how it will be tested (approach), how long it will be tested (schedule) and what is needed (resources).

What is Regression Testing

Regression testing is the process of testing the existing features to ensure they have not been affected by the new changes made to the codebase or system.

One can choose different strategies for testing:

  1. Selective: Testing by selecting a few test cases from the pool.
  2. Exhaustive: Testing either a feature or entire application by running all the test cases
  3. Prioritized: Testing by selecting test cases based on priority features in the cycle. It’s key to note the importance of prioritizing your test cases (highest — medium — lowest)

Why Regression Testing?

This test is used to ensure that the previously implemented features and functionalities are working smoothly.

Some Challenges of Regression Testing

  1. Time constraints — Sometimes, the testing team might be under pressure to deliver by a certain date.
  2. The complexity of the system/ app as the features and functionalities expand.
  3. Lack of overall knowledge of the system as new testers join the team and the previous ones leave. This leaves the team at a point where they can’t perform proper regression testing.
  4. Budget and Resource constraints especially by the business when they don’t see the value in regression testing.
  5. Prioritizing or selecting test cases for a regression test cycle.

Effective Regression Testing:

  1. Updating Test Cases: the early you can identify the points of interaction between the new features and the old, the better. Creating test cases to check for these changes is crucial to ensure that nothing is missed. Monitoring changes that happen in business requirements as well as their impact on functionality. This way, you can add, update and delete obsolete test cases
  2. Identifying high-risk areas: Due to complexity, the skill level of the developer and clarity of requirements, you can classify modules from high-low risk. This can be done by analyzing bug reports and user-reported issues.
  3. Cleanup obsolete test cases: As the application changes, some test cases will become obsolete, hence the need to do a periodic cleanup to get rid of them.
  4. Random Testing: Even with test cases, it’s good to do random tests since a user won’t be following specific scripts while using the application.

Automating Regression Testing

Automated Testing comes in handy when you are doing frequent releases that touch on the client. It’s important to be strategic on what needs to be automated and what remains manual.

There are two approaches to automated regression testing:

  1. Data-driven testing: test input and output data are read from files such as data pools, CSV, excel files etc and loaded into variables in coded scripts.
  2. Keyword-driven testing: test cases are predefined using keywords that are associated with actions to be done in a specific step in those test cases.

--

--