  In the past few years, mobile devices have been increasingly replacing
traditional computers as their capabilities such as CPU computation, memory,
RAM size, and many more, are being enhanced almost to the level of conventional
computers. These capabilities are being exploited by mobile apps developers to
produce apps that offer more functionalities and optimized performance. To
ensure acceptable quality and to meet their specifications (e.g., design),
mobile apps need to be tested thoroughly. As the testing process is often
tedious, test automation can be the key to alleviating such laborious
activities. In the context of the Android-based mobile apps, researchers and
practitioners have proposed many approaches to automate the testing process
mainly on the creation of the test suite. Although useful, most existing
approaches rely on reverse engineering a model of the application under test
for test case creation. Often, such approaches exhibit a lack of
comprehensiveness as the application model does not capture the dynamic
behavior of the applications extensively due to the incompleteness of reverse
engineering approaches. To address this issue, this paper proposes AMOGA, a
strategy that uses a hybrid, static-dynamic approach for generating user
interface model from mobile apps for model-based testing. AMOGA implements a
novel crawling technique that uses the event list of UI element associated with
each event to dynamically exercise the events ordering at the run-time to
explore the applications' behavior. Results of the experimental assessment
showed that AMOGA represents an alternative approach for model-based testing of
mobile apps by generating comprehensive models to improve the coverage of the
applications.
