As we are all aware, agile methodology improves risk visibility early in the project's lifecycle. As a result, the importance of regression testing in agile software development grows exponentially. As the size of software increases, so does the size of the test suite and the effort required to maintain it. As the test suite grows in size over time, manual optimization becomes more difficult. As a result, duplicates creep into these test suites and must be prioritized for execution over time. Deduplication and prioritization by hand are implausible.
When an engagement lasts a long time with a company, test management activities run the risk of becoming cumbersome. Attrition, growth, and organizational changes all have an effect on the productivity of the testing team. Frequently, newcomers begin writing test cases without verifying that they exist, and then leave after a few years, and the cycle repeats. As duplicates accumulate over time, maintaining test assets becomes increasingly difficult. Manually removing duplicates is a time-consuming and unsatisfying task. How can we expedite this activity?
Similarly, the average number of test cases encountered by some of our clients, leading banks in the United States and Canada, is close to 50000. Weeks or months are required for a subject matter expert (SME) to go through the test cases and prioritize them. How can we improve test case prioritization and accuracy while still adhering to the agile velocity?
This chapter discusses how to address and resolve both of these fundamental problems through the use of machine learning algorithms.