Machine Learning Methods for Adaptive Test Case Generation for Android Activities CardoneArturo 2019 In the following Thesis work, we'll illustrate both the design and implementation of a testing framework for Android applications, which is able to adapt its execution according to the type of app under examination. The system is very modular, and as such can be divided into four phases. First, a logic model of the whole user interface is automatically built by traversing the screens' layout, while also performing a UI stress test. Then, thanks to machine learning algorithms, we are able to classify the entire application into a category, and the same is done with the app's activities. In this way, we are able to gain some insights about the expected structure and behavior of each screen, allowing us to perform the last phase, which is the execution of test scripts written in a specifically-tailored custom language. The user has to write a suite of test cases, where each one is fired upon encountering a specific category of activity. The suite consists of a succession of adaptive commands which are able to interpret the current screen layout to perform an action with a given semantic value. In this way, the user has just to write a single test script that can be recycled on many other instances, without needing to rewrite it to conform to new or modified UI layouts.