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?

What is regression test

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.

Example:

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:

  • As the releases grow the functionality grows
  • The development time does not necessarily grow with releases, but the testing time does
  • No company/its management will be ready to invest more time for testing and less for development
  • We cannot even reduce the time it takes to test by increasing the test team size because more people means more money and new people also means lots of training and may be also a compromise in quality as the new people might not be at par with the required knowledge levels immediately.
  • The other alternative clearly is to reduce the amount of regression testing. But that could be risky for the software product.

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:

regression testing process

  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.




Recommended reading

22 comments ↓

#1 Hari

Examples are too gud , Team lead and project managers should look at this once before they assign the timeline for regression testing ;) whatever the ADDITIONAL requirement comes , timeline for development & Testing will be same :(

#2 Avadut

Video is very helpful.

#3 vicky

It’s really very helpful. :)

#4 Ahmed Fathi Elgaly

Really so helpful article, with detailed examples that are very good guide.

#5 Ashok

Very conceptual video. Thanks

#6 John

Video is very helpful.

#7 James

I don’t agree that only Testers do regression testing. That was the old way it was done. With the shift left phenomenon, Developers do it as well. They can do it by executing an automated regression suite as soon as they build their code. Therefore, regression testing can be done in every environment by anyone.

#8 Ali

Good article. Simple, easy and understandable

#9 Swati Seela

@All: Thanks for your feedback and your encouraging comments.

#10 Swati Seela

@James: You are right of course. By tester I meant, who ever tests. :)

#11 Mansa

Thanks Swati for walking us through the Regression Testing Process.Very clearly and neatly done!

Regards ,
Mansa

#12 Hitesh

It’s really helpful.
Thanks Swati.

#13 thanks a lot

Its a good learning experience

#14 Mohan

Useful article usually people are getting confused in regression and retesting, hope this article will help..

#15 Patrick

Hi,

It’s useful article, but I confuse at

“The other alternative clearly is to reduce the amount of regression testing. But that could be risky for the software product.”

Could you please explain more details, and give the specific example if possible ?

Thanks,
Patrick

#16 jeff

Thank you for sharing your knowledge. This is very helpful.

#17 Nagaraj Mamedi

Thanks @swati for for wonderful article, i completely agree out all set of test cases and the time line we have we need to identify what modules the change or fix happend and prioritize our testing more on that specific modue.

Do you suggest any automation tool that is feasable for regression testing

tx,
Nagaraj Mamedi

#18 ekta

nic..

#19 rasika

I have a question that, performance testing is best or functional testing?

#20 Artem

These all seem like decent regression tools, but you still have to setup the regression tests and execute them. What if you could automate regression testing without have to setup the tests in the first place? TestRigor eliminates the need to even setup regression cycles. We’re currently in beta and looking for folks to test the tool and provide feedback. If anyone reading this thread is interested in seeing how it works, please contact me at artem+test4@testrigor.com

#21 Luba

I would say that regression testing is an essential part of delivering good product. But I don’t see any sense in doing it manually. The aim of each QA team should be automate things like that and be more productive IMHO.
That’s why we use Screenster for ui testing automation;-)

#22 gopi

So, which is better?
Manual regression testing or automated regression testing?
Why?

Leave a Comment