Regression Testing is a form of Testing that ensures that this does not happen:
” Debugging – The Fine Art Of Fixing One Software Bug And Replacing It With Another”.
After Testing a new Function, it is suggested to run a Test that covers both the new and existing Functionality. This ensures that the previously Tested and clean Code (the “Build”) is still Working, or “Green”. The aim of this is to ensure that the new Functionality has not presented a defect, or Regression. The challenge with Regression Testing is that it can be costly and it adds time to the Project. Balancing the costs of Regression Testing with the Velocity of the Project is an art. It is very important to ensure there is sufficient Regression Testing throughout the Project. This ensures that the team deliver a Quality Product without compromising the Project.
Non- Functional Regression Testing
Regression Testing is not restricted to Functional Testing. It can likewise be applied to the non-Functional aspects of the Product being Developed by the Scrum Team (Scrum Master, Product Owner and Development Team). There are several classifications and classes of Testing. In addition to auxiliary Tests these tests aid all parts of the Regression Testing ecosystem.
Regression Testing Basics – Automated & Flexible Tests
There is no simple formula for Regression Testing; each Project requires various approaches. There is however one common recommended approach. Effective Agile Regression Testing must be Automated. Attempting to build and run manual suites of tests is just too complex and lengthy. A Regression Test suite is a living thing. As new Functionality is added to the product, Automated Testing should be used to validate the new Development by the Scrum Team (Scrum Master, Product Owner and Development Team). This testing needs to be integrated into the suite of tests for later Testing. While adding new tests, time should also be taken to analyse the existing tests to ensure that tests have not become redundant. Redundant tests should be removed. Managing the Regression Test suite is a continuous Task.
A few of the Tests and Aids that Play a Part.
Regression Testing has lots of flavours, from a fast sanity Test to a total Regression Test. Here is a short description of them and where they play a part.
Complete Regression Testing
A Complete Test is the perfect Test for a perfect world. A complete Test will consist of all the Tests performed to date, and provides extensive Code protection.
Partial Regression Testing
A lot of Projects will be able to Manage with partial Regression Tests. These Tests would focus on high Priority Components of the Application, such as a payments gateway or security Features. Any part of the Application that has a high Risk of failure should be considered for partial Testing.
Utilizing Test-Driven Development (TDD).
Test-driven Development, where Automated Test Scripts are written prior to the Code. This approach is a typical approach used within Agile Regression Testing. The process starts with a guaranteed failure. The process starts with a guaranteed fail, because there is null Code. As each TDD Iteration is completed, the Code improves until it passes the entire Script. This is unit Testing at its best. In a DevOps environment, Automated unit Testing is incorporated into the Continuous Development cycle, making the unit Code very robust.
Sanity Regression Testing.
Sanity Testing concentrates on just the current changes. This approach is used to detect any obvious defects prior to using more strenuous Testing. It is likewise a check that any previously reported defects have been repaired or have not recurred.
Our Favourite Agile Books
We found these books great for finding out more information on Agile Scrum:
Smoke Testing.
Smoke Testing checks that the essential Functionality of the Application is Working. These tests are run prior to a more extensive Test. It is also used to examine that the Automated Test suite( s) can run without crashing; after all, the Test suite should also be Tested for integrity whenever it is altered. A Smoke Test ought to be the first Test used when a change is made to the setup.
Code Coverage.
There are Toolsets offered that can determine just how much Code is covered by Test suites as well as where there are gaps that may require plugging. There are various techniques of examining coverage, ranging from lines of Code to Function points. A good Tool will be able to use a series of techniques.
Traceability and the Matrix.
There is much debate about whether traceability matrices add any Value to Agile Development. This is primarily because the creation of a manual traceability matrix is very intricate and time-consuming. There are lots of Toolsets that can automatically produce the matrix. These show the relationship between the Requirements, the Code and the Test cases. The power of the matrix is that the trace can Work forwards from Requirement through to Testing or backwards.
Regression Testing – Where to Start.
- Decide on a Regression Testing method, based on the intricacy of the Project and the Budget readily available. Do not be tempted to cut corners if time and cash is tight – this might result in general Project failure.
- If you are going to need traceability, use a Tool to decompose the user Requirements (such as Epics and User Stories) into trace Items. This indicates what Test cases and Scripts will be required.
- Start the Regression Test Framework. As each system Test Script is completed, it should be incorporated into the Regression suite. This is of particular importance where you are utilizing TDD.
- First run a smoke Test to ensure that the Automated Regression suite performs effectively without errors.
- Now run the Regression Test and evaluate the outcomes. If problems emerge and you are close to completion of a Scrum sprint, you may have to carry those issues over into the next Sprint (and the appropriate Feature or User Story will not be Accepted). Nevertheless, you need to always attempt to achieve a Green build, otherwise the Product Quality is jeopardised.
The problem is logged and the Developer and/or Tester of the new Code that produced the defect should deal with the concern ASAP. If the problem was an early bug that was previously fixed, connect the new defect back to previous defect log items. - Before your next Regression Test, decide whether you can remove a few of the Tests from the suite, in an effort to keep the suite compact and concentrated on the vital Tests.
Conclusion.
Regression Testing is sometimes practised erratically or prevented at sites where the understanding of Automated Testing and Automated Testing Tools is restricted. Often Developers do not see the Value of Regression Testing, however their eyes will be opened when they encounter live circumstances of what Regression Testing can uncover. They can achieve this by embedding Regression Testing into their process as a method of life.
The ‘Agile Scrum Master Training Course With 59 Seconds Training‘ is now available for free. This free Scrum Master Certified Online Training Course provides an in-depth understanding of the Agile Scrum Master roles and responsibilities, where you find out what a Scrum Master does and how to do it. During this free course you will learn all of the tools needed to succeed as an Agile Scrum Master.
Thank you for choosing us to learn about the Agile Scrum Framework.