Abstract:
Regression Testing is the type of software testing which ensures that the modified part of software or code change has not adversely affected existing features or code. Basically, whenever we want to add some new features to any software system then we just not test that new features which we add to the existing software but we also check that existing features should not be effected by modifications. For testing the system we create some testcases so that we can test the system or software to determine that either it is working correctly or not. Whenever we add some new features in a system then we execute new test cases for testing the system but we also re-execute every previous test case to ensure that system is not effected by modification so it is very costly and time consuming to execute the previous test cases and new test cases so to reduce the time and cost of regression testing the testers prioritize or minimize the test cases. The goal of test case minimization is to reduce the size of test suite by detecting the same type of test cases from test suite, and test case prioritization is to prioritize the test cases with higher priority so that it can execute earlier just to increase the rate of fault detection. In this research, We use Reinforcement Learning technique named Q learning to Prioritize test suite. Application is transformed into a grid and agent navigate in the grid environment and learn form its actions and policies to Maximize reward , The sequence of states with maximum reward is considered by prioritization algorithm. Our results show that proposed technique is performing best on the android applications as compare to other techniques in the best of our knowledge.