ServicesTechnologyAbout usBlogCareersESTIMATE PROJECt →
ESTIMATE PROJECt →

New Gravity sp. z o.o. website managed by Brand New Galaxy sp. z o.o. uses cookies in order to manage the website and collect information related to the use of the website by the user. Using the website without changing the cookie settings means acceptance of the use of cookies for the above purposes. The change of browser settings for cookies can be made at any time. Detailed information about cookies used on the website and other privacy information related to the use of the website are available in the Privacy policy.

New Gravity sp. z o.o. and our partners may use cookies and process the information collected, including personal data for marketing purposes, such as personalizing ads and content based on your interests, content, but we need your consent. Your consent is voluntary. You may withdraw your consent at any time by changing your privacy settings.

Allow us to process information, including personal data, for the marketing purposes indicated above.

Allow our partners to process information, including personal data, for the marketing purposes indicated above. You can also set up separate consent settings for each partner by clicking below.

Partners

Google Analytics – Universal Analytics

Google Optimize

Statistics LinkedIn

Hubspot

Save and close

Regression tests - tools, approaches and when to use

by

Angelika Lis-Plewińska

/

May 9, 2019

Main image from blog post

When it comes to software testing, it’s rarely about testing only one version of it. Is it even possible to test the very first version of application which is just complete, functional and ready to be released into the world? I think that if you want to test something properly, you have to be a part of a developing team.

Development and testing

Development is a process and if I have to use just one word to describe it, it would be “changes”. Basically, the changes you are about to make in the software, can be minor or big (or even huge). It depends on complexity and difficulty. Sometimes it could mean how much this new task affects the others, that are already developed. Nowadays, we have so many programs, applications etc., that client’s expectations are growing high and therefore the application itself is more complicated. Many things can result from each other and that makes the dependence network very dense. We should always remember that the change we are introducing into the software may affect existing functionality. So, the tester role is not only to test the change, but to make sure that it didn’t “spoil” anything.

Regression

Regression testing is about re-executing tests in order to check whether the previous functionalities of the application is working fine. If not, that would be called a regression. Consequently, this type of testing is “regression testing”. There are also so-called re-tests. However, they are not the same as regression tests. The re-test is a confirmatory test that concern checking a specific error. The reported error is assigned to the developer who repairs it. Later, we have to check whether it has really been repaired and this action is called the re-test. It does not focus on general tests of the entire application like in case of regression.

Regression testing - advantages

What are the advantages of regression testing which make it so important and different from just re-testing?

  • it ensures that any change or bug fix that is done does not impact the existing functionality of the product
  • it makes sure that issues which are already fixed do not occur again
  • it improves the quality of the product

Regression testing - when to use?

When to use regression testing? The simplest answer is always after a change. Firstly, before any testing, you should perform smoke tests. This type of tests allows you to make sure that the new version of the application is "testable" and whether it is worth start working with it. What next? It seems like you don’t have to perform regression tests after every change. Specially if the change seems irrelevant. But if you know anything about developing a software, you should already know, that some changes appear to others as simple, minor. The reality is that some changes can affect places one may not think of. In any new software growth, there may be a regress - something that was previously tested and worked properly could have been corrupted. That is why regression testing is important. Of course, we should not go to the extreme and after each change of graphics or text change, carry out a whole application’s regression tests. It helps if you know your software well.

Mind map

With each new release, you can list out or create a mind map (“mind map” shows relationships among pieces of the whole) for affected areas. For example, if you make change in the log-in functionality, try to recall all of the places that are connected with logging in or out. Don’t forget about collateral functions such as forgetting/changing a password.

How often to perform regression tests

Regression tests should be performed as frequently as possible. The more often regression testing can occur, the more issues can be discovered and resolved. That leads to the more stable product. However, the reality is that regression tests are extremely arduous and time-consuming. Sometimes the budget or little time is the cause that the full regression tests of the application can’t be performed. If it’s the case, the test cases should be selected based on:

  • what errors have been corrected/what changes have been made
  • which areas of the application these changes concern the most?
  • what is the impact of the changes on other parts of the software?

Test automation

We know that the regression testing is valuable, one can even say essential. It also takes a lot of time. What can we do? Fortunately, regression testing is a good candidate for automation due to its repeatability. We do regression testing after (almost) every deployment, so it would make life easier to automate test cases instead of running them manually every time. Specially if we have hundreds of test cases, it’s better to create automation test scripts for the test cases which we do after every change. Most of the regression test tools are record and playback type. You will record the test cases and verify whether the expected results are coming or not. Some of the regression test tools are:

  • Selenium
  • Winrunner
  • vTest
  • QTP/UFT
  • SahiPro
  • Ranorex
  • TestComplete
  • Regression Tester
  • Watir
  • IBM Rational Functional Tester

Potential problems of automation

The automation of regression tests seems like a great idea, answer for everything, free of defects. But we should also be aware of problems related to test automation. The company may be having an unrealistic expectation about the automation. Firstly, it also takes time and could be very expensive at the beginning. Then, the cost of maintaining tests must be included in the cost of the product. In a situation where the application changes very dynamically and the tester have to constantly improve test scenarios and automated tests based on these scenarios, it may turn out that these tests are unprofitable. Another thing is a false sense of a good product. The automated tests are as good as the test cases designed for them and how they were automated. The fact that we have thousands of automated case test, which application always passes, does not mean that we have a great product. We also need to think it through when tests do not detect any errors.

Automation – conclusion

Remember that automation is only a supplement to manual tests. In case we have a badly defined test process or even a lack of it, we do not have good programming practices, no automation will help us.

What is good to remember?

  • Regression testing is one of the most important tests performed in the software development process. Its aim is to control the quality and quickly detect potential software regress
  • If you can’t do a whole package of regression tests, it is essential to do an impact analysis of the changes to identify areas of the software that have the highest probability of being affected by the change and that have the highest impact to users. That requires a good knowing of the application that you’re testing
  • It is highly recommended to do regression testing very often, which is also very time-consuming. Good idea is to automate regression tests
  • Once regression tests (specially automated tests) are written, they won’t work forever, remember about maintaining and adapting them to new versions of products

Location One

Warszawa

Suwałki

Singapore

Dubai

London

New York

Poznań

dotted world map

New Gravity Sp z o.o.

Poznań
Concordia Office - HQ
Zwierzyniecka 3,
60-813 Poznań, Poland

VAT: PL7811953967
REGON: 368459064
KRS: 0000698414

Warsaw
Centrum Praskie Koneser
Ząbkowska 31,
03-736 Warsaw, Poland

Suwałki
Park Naukowo-Technologiczny
Innowacyjna 1,
16-400 Suwałki, Poland

Contact
‍
hello@new-gravity.com
‍
‍
Head of Sales
Błażej Wrzesiński
blazej.wrzesinski@new-gravity.com

Personal Data Inspector
‍
Joanna Piwek
ochronadanych@brandnewgalaxy.com

Contact for media
‍
Jagoda Prętnicka
j.pretnicka@brandnewgalaxy.com

We are all proud members of Brand New Galaxy.
www.brandnewgalaxy.com

Icons from flaticon.com, images from unsplash.com

    • Menu:
    • Services
    • Technology
    • Java to Kotlin
    • About us
    • Blog
    • Careers
    • Contact