How is Regression Testing Performed? Can It be Done Manually?

I was just teaching one of these days in my class, and a question came to me – “Can regression testing be done manually?”

I answered the question and we moved on in the class. Everything seemed OK, but somehow this question nagged me for quite a while later. Over the many batches this question comes multiple times in various different ways. Some of them are:

  1. To perform the test execution do we need a tool?
  2. How is regression testing performed?
  3. Even after an entire round of testing– new comers find it difficult to discern what exactly regression testing is?

And of course, the original question:

  1. Can regression Testing be performed manually?

To begin with, Test execution is a simple act of using your Test cases and performing those steps on the AUT, supplying the test data and comparing the result obtained on the AUT with the expected result mentioned in your test cases. Depending on the comparison result, we set the status of the test case pass/fail. Test execution is as simple as that, there are no special tools necessary for this process.

Now, Regression testing. Why is there so much confusion around this? It just felt that now might be the time to give this topic some much needed TLC on our blog.

Here goes- Lets us once again follow the classic approach- the what, why, how, who, where, when- the answering of the most common question words that make understanding any topic a breeze.

What is Regression Testing?

Regression testing is a variation of retest (which is simply to repeat a test). When retesting, the reason can be anything. Say, you were testing a particular feature and it was the end of the day- you could not finish testing and had to stop the process without deciding if the test passed/failed. The next day when you come back, you perform the test once more – that means you are repeating a test you performed before. The simple act of repeating a test is retest.

Regression test at its core is a retest of sorts. It is only for the special occasion that something in the application/code has changed. It might be code, design or anything at all that dictates the overall framework of the system. A retest that is conducted in this situation to make sure that the said change has not made an impact on anything that was already working before is called Regression Test. The most common reasons why this might be conducted are because new versions of the code have been created (increase in scope/requirement) or bugs have been fixed.

See also => Regression testing tools and methods

For a more detailed explanation on the definition with an example, please check the following Regression Test video:

How is Regression Testing performed?

Now that we have established what regression testing means, it is apparent that it is testing also – simply repeating in a specific situation for a specific reason. Therefore, we can safely derive that the same method applies for testing in the first place can be applied to this too.

Therefore, if testing can be done manually then regression testing can be too. The use of a tool is not necessary. However, as time goes on applications get piled on with more and more functionality which keeps increasing the scope of regression testing. To make the most of the time, regression testing is most often automated.


Let me explain this with an example. Please examine the below situation:

Release 1 statistics 
Application NameXYZ
Version/release Number1
No. of requirements (scope)10
no. of test cases/tests100
no. of days it takes to develop5
No. of days it takes to test5
no. of testers3
Release 2 statistics 
Application NameXYZ
Version/release Number2
No. of requirements (scope)10+ 5 new requirements
no. of test cases/tests100+ 50 new
no. of days it takes to develop2.5 (since this half the amount of work than earlier)
No. of days it takes to test5(for the existing 100 TCs) + 2.5 (for new requirements)
no. of testers3
Release 3 statistics 
Application NameXYZ
Version/release Number3
No. of requirements (scope)10+ 5 + 5 new requirements
no. of test cases/tests100+ 50+ 50 new
no. of days it takes to develop2.5 (since this half the amount of work than earlier)
No. of days it takes to test7.5 (for the existing 150 TCs) + 2.5 (for new requirements)
no. of testers3

The following are the observations we can make from the above situation:

For all these reasons, regression testing is a good candidate for automation testing, but it does not have to be done only that way.

Basic Steps to Perform Regression Tests:

Every time the software undergoes a change and a new version/release comes up, the following are the steps you can take to carry out regression testing:

  1. Understand what kind of changes have been made to the software
  2. Analyze and determine what modules/parts of the software might be impacted – the development and BA teams can be instrumental in providing this information
  3. Take a look at your test cases and determine if you will have to do a full, partial or unit regression. Identify the ones that will fit your situation
  4. Schedule the time and test away! :)

Where is regression testing performed? – In the QA environment.

Who performs regression? – Testers like us.

Why is regression testing performed? -To make sure that the changes have not impacted the existing functions in any way.

When is regression testing performed? – Whenever the software undergoes a change

In conclusion:

With that, we wrap this topic up and hope there will be much better clarity on the subject from now on.

About Author: This post is written by STH team member Swati S.

Please let us know your Regression related questions and comments. How did you tackle your regression testing tasks? Please share.