A hybrid approach for reverse engineering gui model from mobile apps for automated testing - Anka, Salihu Ibrahim (2017)
The past few years have experienced a massive transformation in personal computing where mobile devices are rapidly replacing traditional computers for an increasing number of users. This has impacted the area of software development through the growing sector of mobile applications for mobile devices. Like the traditional software applications, mobile apps must also be tested to ensure they behave correctly. Graphical User Interface (GUI) testing has been an effective means of validating GUI software particularly Android mobile applications (mobile apps). However, it still suffers a strong challenge about how to explore event sequence in the GUIs. Researchers and practitioners have proposed several approaches and tools for automated testing of mobile apps. Most of the approaches reverse engineer a model of an application under test and use it for the creation of test cases. However, the models generated by existing approaches are not comprehensive due to inability to explore application’s behaviour extensively. This study proposes a technique based on hybrid approach for the systematic exploration of mobile apps’ events which exploit the capabilities of both static and dynamic approaches while trying to improve application’s state exploration and the generation of a high-quality model from a mobile app. A static analysis was performed on application’s bytecode to extract events supported by an app and use the extracted events to dynamically explore an app at run-time. The hybrid approach was implemented in our tool called AMOGA (Automated Model Generator for Android). AMOGA is developed in Java programming language and was validated using real world mobile apps. Results of the experimental evaluation show that AMOGA has 45%-93% coverage across the 13 apps. In comparison to other existing tools, the result shows that AMOGA achieves better coverage than all the tools with a difference of above 4% on all the apps.