Published on January 30th, 2015 | by Keira Rose0
Regression testing helping in finding a hidden bugs: An Overview
Regression testing plays a very supreme role in agile testing methodology. The regression testing done during the sprints plays a key role in maintaining the quality of the product that is delivered in the market. In each sprint there can be many bugs that are encountered during testing and after the fixing of the bugs in that specific sprint; regression testing done exactly plays a role of double checking that the major/high priority issues encountered are fixed and are not hampering the quality of the product in any way. Regression testing might be a time consuming procedure but it really plays a crucial role as it helps out in finding some of the hidden bugs. Due to the fixing of the previous bugs there is always a possibility that a new bug arises which can be a ship stopper issue. So, fixing of such hidden bugs in the initial stage can save a huge lot of cost and time.
During confirmation testing the defect got fixed and that part of the application started working as desired. But there are chances that the fix may have introduced a different defect elsewhere in the product or application. Regression testing is actually a way to find the side-effects of the fixes.
The purpose of a regression testing is to confirm that modifications in the software have not caused any unintended adverse side effects and that the system still meets its desired functionality. Regression testing is usually automated because in order to fix the defect the same test is carried out every time.
Regression testing is required when there are changes in software, either as a result of fixes or out of new updates in functionality and therefore, help in finding hidden bugs.
Regression testing in sprints:
We can handle regression testing in sprints by:
1. A much more efficient way of doing regression testing in a sprint is to practice Test-Driven-Development.
2. A scrum team can make things easier by automating test cases, to do integration testing and maintaining a high percent of Test Coverage and so on.
In agile testing we need to test on or more new functionalities or modules that are added to the software during each sprint. So, the situation becomes very challenging when we have to test few new functionalities along with performing full regression testing of the software application to make sure none of the existing functionality has broken due to the implementation of new features in the build provided to QA. This will lead to churning among QA Testing resources as they will have to work extended hours daily to complete the task.
One of the solution to handle this situation is to increase the resources to manage QA Testing requirements.We can also involve customer at test case preparation stage so that can review test cases for completeness and additional review prevents redundant cases.
For regression testing we can create a standard checklist of major workflows of all the functionalities so that in process of completing regression testing along with testing of new feature, we do not miss any major workflow of the application.
Sprint concept triggers that the project you working on is agile. Yes, regressions are big challenge in the whole process of SDLC. If you ask any Software QA testing expert you will be advised to establish a fully dedicated regression team which should not be included in core agile scrum team and would work outside. This team should have assigned a role which is just to maintain regression suite for that particular product. Regression suite in a mean that they should create a set of automated scripts to perform on every sprint. Also, both the teams(Agile and Regression team) would work together while distinct from scrum. The approach should be:
1. Whatever manual scripts created by scrum functional tester, regression tests should be updated by regression team incrementally.
2. Should execute both automated regression scripts and manual scripts on every sprint release.
3. Updation should be done on the basis of enchantment of functionality.
It is being considered as good strategy to deliver a product sprint wise, as the customer and the service provider both get to know the market values and improvement areas for an application or product. However, the main challengerdilemma that arise during sprints is Regression testing, because the test team needs to cover all the new features and legacy features. In order, to gain more confidence on the quality, the team should obey a strategic approach to handle the regression process. To cover the maximum regression,a test must have trusted team members, so that the QA testing team and the product team could rely on them, because those team members are the ones who know the product very well and can figure out the major risk areas. Also, an expert team can cover the legacy features by automation scripts as well as by testing manually (major areas).
Regression testing could be helpful in finding hidden bugs if done in a strategic approach. Same regression suit performed by different team members could lead to explore the product and make it closer to the exact specifications in most cases. While regression is mainly implemented after a major code change, so regressing the whole build by multiple team members could be helpful in figuring out the defects caused by the changes done in the code.
In a nutshell, Regression Testing is an important part of each sprint. It gives an overall view of the application, however, functional software testing during a sprint is done to test the new user stories implemented. It is crucial and highly required as it helps in finding impact of changes made in present sprint cycle. Although, performing regression test on every sprint is not just a cake walk. But it can be handled during a sprint planning by creating separate task or user story for regression testing in a sprint.
To ensure that application is stable and is functioning properly, the test cases can be broke into smaller units and team can run them parallel with the plan to complete it in within the exact sprint time to perform QA.SoftwareTest Automation can verywell be used to regress whole area once the sprint is arrived. Same tests can be executed repeatedly over time to ensure that the required behaviors of the system remain stable. Instead of the full regression test suites, we can also create checklist of the list of test suites which are most important. So we can plan to construct tests cases to reflect the most important business processes.