Politecnico di Torino (logo)

TOGGLE: a library for lightweight and automated generation of mobile visual GUI test sequences

Vittorio Di Leo

TOGGLE: a library for lightweight and automated generation of mobile visual GUI test sequences.

Rel. Luca Ardito, Riccardo Coppola. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2021

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (3MB) | Preview

Mobile applications and mobile devices are becoming more and more pervasive in our everyday life supporting a wide range of activities in different contexts. An “app” is a highly event-oriented software thought to react to a set of inputs typical of the mobile world. Furthermore, mobile devices themselves are characterized by a mixture of attributes that can affect in many ways how an app’s graphical user interface (GUI) is displayed. This highlights the need to have applications that have been tested extensively and from different points of view. Despite these factors, visual GUI testing (VGT) is not a common activity. The existing tools introduce a collection of different approaches to this activity, with specific testing goals and suffering of well-known weaknesses. These frameworks can be categorized into three groups. First generation VGT tools focus on interacting with the bitmap layer of the application’s front-end, second generation ones access the app’s visual components to extract locators and third generation ones use image recognition algorithms to match areas on the screen. Issues that make VGT not feasible in an industrial development process are the diversity among mobile operating systems and hardware models, that makes tests not portable, the test flakiness and the tests fragility that makes their maintenance during the project’s lifecycle unsustainable. Our focus is TOGGLE, a tool supporting the maintenance and the creation of VGT in the Android ecosystem. TOGGLE is thought to be used on applications running on an Android Virtual Device (AVD) being executed on a personal computer. Android introduces Espresso that is TOGGLE’s starting point. Our framework’s main purpose is to automatically translate second-generation Espresso tests into third generation ones. These tests can detect graphical features that the source ones cannot identify enlarging the suite’s overall testing capability. Third generation tests use the java APIs offered by SikuliX and EyeAutomate libraries. At its state-of-the-art TOGGLE successfully completed the translation while showing several weaknesses impacting both its usability and portability in non-academic context. Our main goal was to make TOGGLE a library that testers could use when performing VGT in an industrial development process. To achieve this result, we intervened on some of TOGGLE’s most problematic aspects increasing the flexibility of the modules composing the system and of their APIs, strengthening the translation flow against some of the weaknesses typical of this context, adding new features to increase the portability of the intermediate results. To summarize, we wanted to make the tool as easy as possible for the end user. Additionally, we decided to adopt the façade structural design pattern to offer a clean interface to the system with methods suited for both casual and more experienced users. Finally, we enlarged the set of translatable inputs adding the possibility to emulate the scroll interaction on the AVD’s screen. This is a typical mobile interaction that requires a dedicated translation mechanism. The final version shows some considerable improvements and can be the starting point to further extensions enriching the collection of applications that could exploit TOGGLE and adding the support for other second-generation test syntaxes. Our hope is that one day VGT can become a feasible activity that will be used to improve the overall quality of the produced software.

Relators: Luca Ardito, Riccardo Coppola
Academic year: 2020/21
Publication type: Electronic
Number of Pages: 106
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: Linear System S.r.l.
URI: http://webthesis.biblio.polito.it/id/eprint/18077
Modify record (reserved for operators) Modify record (reserved for operators)