A Deep Learning Based Approach to Automated App Testing
Tipus de documentProjecte Final de Màster Oficial
Data2020-09-09
Condicions d'accésAccés obert
Tots els drets reservats. Aquesta obra està protegida pels drets de propietat intel·lectual i
industrial corresponents. Sense perjudici de les exempcions legals existents, queda prohibida la seva
reproducció, distribució, comunicació pública o transformació sense l'autorització del titular dels drets
Abstract
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. Les aplicacions mòbils estan àmpliament esteses pel món. Les fem servir per a tot, des d’enviar missatges als amics fins administrar els nostres diners. Aquest auge ha conduit a l’aparició de companyies dedicades exclusivament al desenvolupament d’aplicacions. També, la indústria mòbil, formada per milions d’aplicacions i bilions d’usuaris, ha estat creixent a una velocitat sense precedents i ha aconseguit gran èxit. Un dels passos més importants en el procés de desenvolupament d’aplicacions és el testing. Un cop la primera versió de l’aplicació es llançada, l’equip de testing s’ha de fer càrrec de verificar el seu correcte funcionament i de que complica els requisits demandats per l’equip de disseny. Normalment, els tests estan basats en seguir un flux a traves de l’aplicació. Una persona navega a través de diferents pantalles prement botons i comprovant que tot funciona correctament. N’hi han algunes ferramentes i softwares que automatitzen aquest procés, però utilitzen algoritmes de força bruta o aleatoris que comporten un testing ineficient. L’objectiu d’aquest projecte és implementar una solució capaç de navegar a través d’una aplicació mòbil imitant el comportament d’un usuari real. El creixement de l’aprenentatge profund i les xarxes neuronals permet que aquest tipus de tasques puguem ser apreses per una màquina gràcies a l’experiència. El sistema està format per una arquitectura d’aprenentatge profund capaç de predir on prémer en la pantalla i quin tipus de gest realitzar en aquesta localització. Està format per una xarxa neuronal Convolucional per a extraure característiques de les pantalles i reconèixer elements en ella, seguida d’una part LSTM per a aprendre informació seqüencial, és a dir, on prémer basant-se en interaccions anteriors. Per últim, la xarxa te dos eixides, una generada per una xarxa Deconvolucional que prediu la localització de la pulsació, i l’altra generada per una xarxa lineal que prediu el tipus de gest. En general, aquest treball presenta com el testing d’aplicacions mòbils pot ser automatitzat fent servir aprenentatge profund. A més, demostra el disseny i el procés d’entrenament de model per dur a terme aquesta tasca
TitulacióMÀSTER UNIVERSITARI EN ENGINYERIA DE TELECOMUNICACIÓ (Pla 2013)
Col·leccions
Fitxers | Descripció | Mida | Format | Visualitza |
---|---|---|---|---|
A_Deep_learning ... g_DavidLlacerGiner_Def.pdf | 5,517Mb | Visualitza/Obre |