Abstract:
With the advancement and increasing popularity of agile software development practices in large scale software development projects, frequent product releases are encouraged so that clients can actively participate in the software development life cycle (SDLC) by providing early feedback on developed features. This approach leads to iterative shorter cycles of development and continuous integration. So, the importance of regression testing and regression test suite is well emphasised in such methodologies. Regressions have become the most widely used approach in maintaining the quality of continuously changing software systems.
Even though the agile SDLC requires faster regression feedback given the shorter length of the release cycles, size and the complexity of the regression test suites increases over time; hence execution time keeps on growing. Therefore, it is not practical to run the regression test suite on every code change. In turn, it has become a significant dilemma in current regression testing. Therefore, it is essential to implement a regression testing strategy which is highly selective but accurate, to ensure the committed code changes does not inflict any ill behaviour on the current working software before it is merged and released for client feedback. To achieve this objective, it is critical to find out the distinct effects on behaviour that have impacted the software at the earliest during the continuous integration (CI) cycle. This research is focused on selecting and prioritizing the most suitable test cases from the regression test suite to detect any behaviour that is no longer intact due to the code change. Also, the capability of employing machine learning principles to learn and identify the most impactful characteristics of test cases is considered as another key objective of this study.