A Deep Learning Based Approach to Automated App Testing

Mobile applications are worldwide extended. We use them for everything, from texting friends to managing our money. This boom has led to the emergence of companies dedicated exclusively to the development of mobile applications. Also, the mobile industry, made up by millions of apps and billions of...

Full description

Bibliographic Details
Author: Llàcer Giner, David
Format: master thesis
Publication Date:2020
Country:España
Institution:Universitat Politècnica de Catalunya (UPC)
Repository:UPCommons. Portal del coneixement obert de la UPC
Language:English
OAI Identifier:oai:upcommons.upc.edu:2117/335561
Online Access:https://hdl.handle.net/2117/335561
Access Level:Open access
Keyword:Deep learning
Mobile apps
App testing
Aprenentatge profund
Aplicacions mòbils
Àrees temàtiques de la UPC::Informàtica::Intel·ligència artificial::Aprenentatge automàtic
Description
Summary:Mobile applications are worldwide extended. We use them for everything, from texting friends to managing our money. This boom has led to the emergence of companies dedicated exclusively to the development of mobile applications. Also, the mobile industry, made up by millions of apps and billions of users, has been growing at an unprecedented speed and has been incredibly successful. One of the most important steps in the process of application development is testing. Once a first version of the application is released, the testing team is in charge of verifying its correct functioning and that it meets all the requirements set by the design team. Normally, tests are based on following a flow through the app. A person navigates through the different screens tapping buttons and checking everything works fine. There are some tools and software that automates this process, but they use brute force and random algorithms, that lead to inefficient testing. The objective of this project is to design and implement a prototype of an artificial intelligence able to navigate through a mobile application mimicking the behavior of a real user. The burgeoning of deep learning and neural networks allows this kind of tasks to be learned by machines from experience. The system consists of a deep learning architecture able to predict where to tap on the screen and which type of action to perform at this location. It consists of a Convolutional Neural Network to encode the images and recognize elements on the screen, and a Long Short-Term Memory to learn where to tap based on previous screens. Then, we have 2 outputs, one generated by a Deconvolutional Neural Network that predicts the location of the tap, and a Linear Neural Network that predicts the action type. Overall, this work presents how mobile application testing can be automated using deep learning. Moreover, it shows the design and training process of a model to perform this task.