Automated GUI Layout Refactoring to Improve Monkey Testing of Android Applications
A line of research in the software testing community is dedicated to proposing effective testing techniques for finding defects in Android applications. Monkey testing is one of the promising techniques, mainly because of having low setup cost, good reusability across different applications, and being successful in challenging the application under test with corner cases. Despite its benefits, monkey testing suffers from well known weaknesses, including widget obliviousness and state obliviousness. The former means that the monkey does not utilize specific knowledge about the behavior of the elements in the GUI of the application under test. The latter means that the monkey simply generates random events without taking into consideration the current state of the application and whether those events are helpful in that state, from the point of view of revealing potential faults. As a result, different methods are presented in the literature to improve monkey testing of Android applications. In this paper, we have proposed a novel technique to improve effectiveness of monkey testing by alleviating the widget obliviousness issue. This technique is based on the idea of automated GUI layout refactoring to improve effectiveness of the monkey. We have implemented the proposed technique and have used it to conduct a case study on a real world Android application. The results demonstrate that the proposed technique is promising in improving effectiveness of monkey testing by increasing the interaction of the monkey with the GUI elements that are associated with the more complex functionalities of the application.
2020 CSI/CPSSI International Symposium on Real Time and Embedded Systems and Technologies (RTEST)