The development of software is a continuous process that involves several adjustments to the code, in order to improve the relative features. This process, because of bad coding practices, unexpected behaviours, poor documentation and, in particular, the absence of any kind of testing, can lead to a frustrating journey, both for developers and stakeholders. In order to avoid these obstacles there is the necessity to develop or use specific technologies that help the different players in this development process. To accomplish this objective, an automation testing framework has been developed. The goal of this software is to verify that two products, a mobile application and a IoT device, are working as expected. In particular we want to make sure that their interaction is successful and the functionalities they provides are not compromised. This validation is performed when a software program undergoes code changes. When a mobile application or machine firmware is updated, it is possible that some functionalities may be broken, for this reason we want to ensure that changes to the code don't compromise the behaviours of the software. The goal of the framework is to prevent that such issues may land on the final user's products. The framework executes multiple test cases, that verify the most important features of the software and, if an error may show up, the role of the development team is to identify the problem and fix it. The development team uses the framework to design appropriate test cases for the critical features of the software. The framework provides the tools to prepare the testing environment, setting up the required resources, running the tests and producing extensive results. The software should be simple and accessible for those who want to use it. Ideally these tests should run every time the code is changed, because it allows the developer to fix errors as soon as the software has been tested. Hence it's important to use a proper continuous deployment environment, where tests are executed automatically, based on specific criteria. We will describe how the framework is placed in the company's context, the requirements, the details of its architecture and components.

Lo sviluppo di un software è un processo continuo che comporta diverse modifiche al codice, al fine di migliorare le relative caratteristiche. Questo processo, a causa di cattive pratiche di programmazione, comportamenti imprevisti, scarsa documentazione e, in particolare, l'assenza di qualsiasi tipo di test, può portare ad un viaggio frustrante, sia per gli sviluppatori che per gli stakeholder. Per evitare questi ostacoli, c'è la necessità di sviluppare o utilizzare tecnologie specifiche che aiutino i diversi attori in questo processo di sviluppo. Per raggiungere questo obiettivo, è stato sviluppato un framework di automazione di test. L'obiettivo di questo software è verificare che due prodotti, un'applicazione mobile e un dispositivo IoT funzionino come previsto. In particolare, vogliamo assicurarci che la loro interazione abbia successo e le funzionalità che forniscono non siano compromesse. Questa convalida viene eseguita quando il software subisce modifiche al codice. Quando si aggiorna un'applicazione mobile o firmware della macchina, è possibile che alcune funzionalità vengano interrotte, per questo motivo vogliamo assicurarci che le modifiche al codice non compromettano i comportamenti del software. L'obiettivo del framework è prevenire che tali problemi possano finire sui prodotti dell'utente finale. Il framework esegue numerosi casi di test, che verificano le funzionalità più importanti del software e, se si presenta un errore, il ruolo del team di sviluppo è identificare il problema e risolverlo. Il team di sviluppo utilizza il framework per progettare casi di test appropriati per le funzionalità critiche del software. Il framework fornisce gli strumenti per preparare l'ambiente di test, impostare le risorse richieste, eseguire i test e produrre ampi risultati. Il software dovrebbe essere semplice e accessibile per coloro che vogliono utilizzarlo. Idealmente questi test dovrebbero essere eseguiti ogni volta che il codice viene modificato, perché consente allo sviluppatore di correggere gli errori non appena il software è stato testato. Quindi è importante utilizzare un ambiente adeguato di continuous integration, in cui i test vengono eseguiti automaticamente, in base a criteri specifici. Descriveremo in che modo il framework è inserito nel contesto aziendale, i requisiti, i dettagli della sua architettura e delle sue componenti.

Automation testing framework for mobile applications and IoT devices in continuous integration

Di FEBBO, FRANCESCO
2018/2019

Abstract

The development of software is a continuous process that involves several adjustments to the code, in order to improve the relative features. This process, because of bad coding practices, unexpected behaviours, poor documentation and, in particular, the absence of any kind of testing, can lead to a frustrating journey, both for developers and stakeholders. In order to avoid these obstacles there is the necessity to develop or use specific technologies that help the different players in this development process. To accomplish this objective, an automation testing framework has been developed. The goal of this software is to verify that two products, a mobile application and a IoT device, are working as expected. In particular we want to make sure that their interaction is successful and the functionalities they provides are not compromised. This validation is performed when a software program undergoes code changes. When a mobile application or machine firmware is updated, it is possible that some functionalities may be broken, for this reason we want to ensure that changes to the code don't compromise the behaviours of the software. The goal of the framework is to prevent that such issues may land on the final user's products. The framework executes multiple test cases, that verify the most important features of the software and, if an error may show up, the role of the development team is to identify the problem and fix it. The development team uses the framework to design appropriate test cases for the critical features of the software. The framework provides the tools to prepare the testing environment, setting up the required resources, running the tests and producing extensive results. The software should be simple and accessible for those who want to use it. Ideally these tests should run every time the code is changed, because it allows the developer to fix errors as soon as the software has been tested. Hence it's important to use a proper continuous deployment environment, where tests are executed automatically, based on specific criteria. We will describe how the framework is placed in the company's context, the requirements, the details of its architecture and components.
ING - Scuola di Ingegneria Industriale e dell'Informazione
16-apr-2019
2018/2019
Lo sviluppo di un software è un processo continuo che comporta diverse modifiche al codice, al fine di migliorare le relative caratteristiche. Questo processo, a causa di cattive pratiche di programmazione, comportamenti imprevisti, scarsa documentazione e, in particolare, l'assenza di qualsiasi tipo di test, può portare ad un viaggio frustrante, sia per gli sviluppatori che per gli stakeholder. Per evitare questi ostacoli, c'è la necessità di sviluppare o utilizzare tecnologie specifiche che aiutino i diversi attori in questo processo di sviluppo. Per raggiungere questo obiettivo, è stato sviluppato un framework di automazione di test. L'obiettivo di questo software è verificare che due prodotti, un'applicazione mobile e un dispositivo IoT funzionino come previsto. In particolare, vogliamo assicurarci che la loro interazione abbia successo e le funzionalità che forniscono non siano compromesse. Questa convalida viene eseguita quando il software subisce modifiche al codice. Quando si aggiorna un'applicazione mobile o firmware della macchina, è possibile che alcune funzionalità vengano interrotte, per questo motivo vogliamo assicurarci che le modifiche al codice non compromettano i comportamenti del software. L'obiettivo del framework è prevenire che tali problemi possano finire sui prodotti dell'utente finale. Il framework esegue numerosi casi di test, che verificano le funzionalità più importanti del software e, se si presenta un errore, il ruolo del team di sviluppo è identificare il problema e risolverlo. Il team di sviluppo utilizza il framework per progettare casi di test appropriati per le funzionalità critiche del software. Il framework fornisce gli strumenti per preparare l'ambiente di test, impostare le risorse richieste, eseguire i test e produrre ampi risultati. Il software dovrebbe essere semplice e accessibile per coloro che vogliono utilizzarlo. Idealmente questi test dovrebbero essere eseguiti ogni volta che il codice viene modificato, perché consente allo sviluppatore di correggere gli errori non appena il software è stato testato. Quindi è importante utilizzare un ambiente adeguato di continuous integration, in cui i test vengono eseguiti automaticamente, in base a criteri specifici. Descriveremo in che modo il framework è inserito nel contesto aziendale, i requisiti, i dettagli della sua architettura e delle sue componenti.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
tesi-difebbo.pdf

non accessibile

Descrizione: Thesis text
Dimensione 1.48 MB
Formato Adobe PDF
1.48 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/147382