5 ways how we manage regression in AgBe
5 ways to manage regression
regression management, testing

Regression testing is selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or components still complies with its specified requirements [1]. Regression testing includes both functional and non-functional tests to ensure previously working functionality is not affected by a new build or change.

There are several regression testing techniques proposed by researchers but a gap has been observed between the research and practices of regression testing adopted by IT software development and software design companies. Prioritization of test cases with empirical evaluation is the main focus area in terms of research but in real-time projects, it’s seen that regression testing is done only based on experience. There is a great need to address regression testing with a systematic approach for real-time projects.

Regression Testing is required to perform during the following situations:

  • When code-based is fixed.
  • Revision of existing functionality
  • Introduction of new functionality
  • Integrating with external system
testing
top software outsourcing companies in India, web development companies and software development companies
project
business

Automated Regression Testing

Regression testing can be done either manually or by using automation tools. When the application is assigned to the testing team, they first go for a specific module test (10 cycles approx.) where change has been made. Then they do a complete regression test (14-20 cycles). Hence, it leads to great concern for consistency and productivity. So, when there are several regression cycles, the team should switch to automation. Automating regression tests is the best solution if the software development company has plans to keep the application running and maintain it in the long run. Automated Tools like Selenium, Regression Tester, IBM Rational Functional Tester Tool, etc are available to execute tests faster and hence saving time and effort for testers [2]. But systematic research is required before adopting the tool as each project has different requirements. The practical approach to select the testing tool should consider the following points:

  • Team ability, project planning, and Team size to handle the tool
  • Ease of developing and maintaining scripts with minimum resource utilization
  • Tools should provide Technical Support and Assistance
  • Cost (Considering Project and Tool Cost)
  • Tools should generate simple and detailed Test Report
  • Tools should support Web, Desktop and Mobile application
  • Tools should be easy to execute for Tester

Techniques for Regression Testing

Based on the resources available and the size of the testing team, a combination of techniques can be used for regression testing. Retest All, Regression Test Selection, Test Case Selection, and Test case prioritization are few categories of regression techniques.

Regression test prioritization is required to list out test cases so that those with the highest priority (according to requirements) are executed earlier in the regression testing process than the lower priority test cases.  These techniques are classified as Slicing, Genetic Algorithms, History-Based Approach, Requirement Based Approach, Fault Based Approach, and Composite Approaches [3].

How we Manage Regression Testing at AgBe

In AgBe, like any other IT software development company, Regression Testing is a continuous process in improving product quality. Software development is done based on an agile methodology which is carried out through iterations, sprints of 1-6 weeks. Regression Testing is performed at the end of every sprint. The steps that are followed to manage regression when any bug is fixed or any module is added to existing functionality are.

  • Assigning small stories or frequent releases so that the testers can give feedback based on deployments done by the developer much before the release.
  • Developers also write automated tests (unit tests) for the module they developed is also part of regression testing.
  • The testing team always gets involved in the daily calls schedule for development so that they can get insight into the core area of the module where updating is going to be done. This helps them to prepare in advance for regression testing. Some time is saved by reducing the testing time of the unaffected module of the project.
  • The testing team updates the test cases continuously by adding relevant test cases and removing the disused ones. Testing the merged code frequently, helps developers to deal with the bugs faster by focussing their efforts timely on improving the software. Agile methodology proving to be a great way to manage time and effort perfectly for start-ups without affecting the final quality of the software.
  • By Executing Smoke and Sanity testing.

References

More
articles