Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi provenienti da sensori

Documenti analoghi
Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011

Valutazione Comparativa Sperimentale di Tecniche di Testing di Applicazioni Android

Testing automatico di applicazioni Android

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Un sistema per il Crawling di Rich Internet Applications Anno Accademico 2008/2009

Metodi e Tecniche per il Riuso di componenti in Applicazioni Android

Definizione di metodi e tecniche per il testing di applicazioni Android Sensor Based

Progetto e realizzazione di una libreria per la comunicazione sicura di. dati sui fallimenti in ambiente Android. Anno Accademico 2011/2012

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications

Tecniche di automazione del testing: applicazione ad un caso di studio reale

Testing black box di web service: sperimentazione su di un servizio senza stato

Un architettura orientata ai servizi per la localizzazione di dispositivi mobili

Confronto sperimentale tra tecniche di testing automatico per applicazioni Android

Tecniche per la ricerca di test suite minimali per RIA

Un'applicazione per lo scambio di contenuti multimediali in ambiente Android

Robotium Recorder. Un altro ambiente che supporta il capture & replay è Robotium Recorder.

Testing di applicazioni flex: uso dello strumento FlexUnit

Valutazione sperimentale di algoritmi per la rilevazione di fallimenti temporali nel sistema operativo Minix3

Realizzazione di un software per la gestione di apparecchiature biomedicali Anno Accademico 2010/2011

Strumenti per l automazione del testing di applicazioni web Javascript-based

Uno Strumento per la ricerca di campi Output e Etichetta in pagine Client

Sviluppo di un applicazione di front-end per il monitoraggio di un Isola Ecologica

GENITORI NELLA RETE! Possono fare le stesse cose?

Sintesi e sperimentazione di un modello di propagazione sonora per l analisi di reti di sensori sottomarine

Applicazione software per la classificazione, guidata da query Xpath, di pagine equivalenti ai fini del testing

Servizi di verifica runtime di Ambienti Intelligenti

Scuola di Ingegneria Dipartimento di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria Biomedica. Anno accademico 2015/2016

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded

Anno Accademico 2007/2008

Un processo a supporto della classificazione di pagine client Anno Accademico 2006/2007

Progetto e sviluppo di un applicazione Android per il controllo di reti di sensori senza filo

Un'Interfaccia per il Monitoraggio dei Guasti in un'applicazione per il Controllo del Traffico Aereo

L Affidabilità dei Sistemi di Input-Output ad Elevate Prestazioni

Dal sito web all applicazione mobile

Sviluppo di un'interfaccia grafica per l'automatizzazione di campagne di software fault injection. relatore Ch.mo prof.

Sviluppo di una piattaforma per lo streaming multimediale in ambiente Android

G. M. Patti Proteo Control Technologies S.r.l.

Tecniche e strumenti per la validazione di codice Java: un esempio applicativo

Ingegneria del Software II. Proposte di progetto d esame. a.a. 2016/17

Ski Ways Piano di Testing

Progetto di un sistema di videosorveglianza basato su tecnologie multi-agente Corso di Laurea Magistrale in Ingegneria Informatica

Analisi di strumenti e tecniche per lo sviluppo di applicazioni Ajax.

Tesi di Laurea: Uno strumento per l estrazione di sessioni utente per applicazioni web JavaScript-based Anno Accademico: 2005/2006

DIMKIT - WL. Gestione della luce

Ingegneria dei requisiti di sistema e dei requisiti software della piattaforma MLA con il tool DOORS

ALLEGATO A (D.R. n. 832 del ) AREA SCIENTIFICO DISCIPLINARE INGEGNERIA INDUSTRIALE E DELL INFORMAZIONE

Progettazione user-centered di sistemi a regole in ambienti intelligenti

UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II

Proposte di tesi: telecomunicazioni mobili e satellitari, sistemi WLAN

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...

Alma Mater Studiorum- Università di Bologna. Progettazione ed Implementazione di un Hidden TCP Proxy

A wearable IoT device for users with mild cognitive impairment needs

STRUMENTI PER LA MISURA SU CODICE ACTIONSCRIPT SVILUPPATI CON JAVACC

Perfezionamento e sperimentazione di uno strumento per la

Impiego della concept analisys nella classificazione di pagine web ai fini del reverse engineering

Analisi e valutazione di un algoritmo di pianificazione per reti di telecomunicazione a qualità del servizio garantito

UNIVERSITA CA FOSCARI VENEZIA - CT0090 INGEGNERIA DEL SOFTWARE 2016/2017 ARRIFORNISCETE. Piano di Testing 1.1 TEAM CODROT

Interfacce per End-User Debugging nel contesto Internet of Things

Realizzazione di uno strumento software per la compilazione assistita di piani di qualità (richiesta ed offerta) per un Servizio Web

Tesi di laurea: Realizzazione di Strumenti per la valutazione di accessibilità di pagine Web

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Sviluppo e manutenzione di un applicazione CAD tramite le WPF e l MV-VM

Realizzazione di un software a supporto della Classificazione guidata di Pagine Web

Strumenti per il testing di applicazioni in ambiente Android

CORSO DI PROGRAMMAZIONE ios BASE IN LINGUAGGIO NATIVO OBJECTIVE-C

LE ALTRE BOARD ARDUINO

TECNICHE DI RIDUZIONE DELLE TEST SUITE

Software Testing. Esercizi proposti. Esercizi di Testing 1

Un applicazione per il trasferimento file in ambiente Symbian

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Realizzazione di strumenti per il testing di accessibilità di applicazioni web

Accessibilità ai dispositivi informatici

Progetto e sviluppo di un prototipo per la migrazione di applicazioni Web di tipo Legacy

Validazione della piattaforma software per la sperimentazione clinica OpenClinica

Soluzioni globali. Un workspace digitale sicuro può semplificare l ingresso in nuovi mercati.

ISO Allegato M04.10 EL10353 DIMMER LAMPIONE

Open Data Roma Capitale Apps4Roma

Introduzione al corso. Laboratorio di Telecomunicazioni (6 CFU) Corso di Laurea in Ingegneria dell Informazione

Strumenti e tecniche per il testing di applicazioni web al variare dei browser

Un architettura per la cooperazione di applicazioni: un approccio basato sulla migrazione di applicazioni Legacy

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

Integrazione tra simulazione numerica e dati reali in procedure automatiche di collaudo

Diagramma delle classi

Rilevazione dei fallimenti nel sistema operativo open source Linux per applicazioni critiche Anno Accademico 2006/2007

Small Business Mobile

Piano di Testing. Fontolan Federico Giacomazzi Andrea Yoshida Kotono Rosada Fabio

Università degli Studi della Calabria Facoltà di Ingegneria. Corso di Diploma in Ingegneria Informatica TESI DI DIPLOMA

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Uno Strumento Simulativo per Architetture VoIP per Dispositivi Mobili Multihomed

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Test in automatico di programmi Android

Web 2.0 e Web Services nell'era dei Social Network. Snal: un caso di studio

Rilevazione di malfunzionamenti nei device driver del kernel Linux

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II Scuola Politecnica e delle Scienze di Base

Laboratorio software. A.A C. Brandolese

Sistemi di sicurezz a

Un sistema di interazione uomo-robot per compiti di manipolazione mobile basato su realtà virtuale

Studio del linguaggio TROPOS per la modellazione dei requisiti orientata agli agenti

Proposte di Tesi di Laurea

Transcript:

tesi di laurea Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi Anno Accademico 2011/2012 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Domenico Amalfitano candidato Nicola Amatucci Matr. 885/337

Dispositivi mobili Android e sensori Dispositivi mobili Android come smartphone e tablet sono corredati di un insieme abbastanza vario di sensori fisici (accelerometro, bussola, ) Vengono utilizzati sia per interagire con l utente, sia per reagire a variazioni nell ambiente (ad es. regolazione della luminosità dello schermo) Lo stack software Android permette di semplificare la gestione dei sensori Variazione nel valore dei sensori possono influenzare la GUI Quando si effettua il testing GUI-based è opportuno dunque tenere in considerazione gli eventi sensore

Android Testing Framework Android mette a disposizione un'estensione del framework junit per effettuare il testing delle applicazioni Si possono scrivere sia test junit classici, sia dedicati alla piattaforma Android Il collegamento con l applicazione sotto test avviene tramite l Instrumentation Framework L Instrumentation Framework permette di: Controllare l applicazione Controllare l ambiente in cui l applicazione viene eseguita

Android Testing Strumenti inclusi nel SDK Monkey: Random-testing della GUI e Stress-testing Emma: Copertura del codice Strumenti standard de-facto Robotium: helper per l interazione con la GUI Roboelectric: testing sulla JVM locale di applicazioni Android Android Ripper

Android Ripper è uno strumento di automazione del testing GUI-based è configurabile e implementa sia tecniche crawler-based che di random testing è basato su un approccio black-box permette di effettuare crash testing, testing di regressione, smoke testing e di valutare la copertura dei casi di test generati Consente di ricostruire il modello della GUI a partire dagli output del processo

Obiettivi Si vuole rendere capace l Android Ripper di: Variare il valore dei sensori Variare la posizione geografica del dispositivo Simulare la ricezione di sms e chiamate Interagire con la fotocamera Gestire le reti wifi e dati Si vuole procedere Utilizzando soluzioni esistenti dove possibile Implementando nuove soluzioni dove necessario

Problemi L emulatore Android ha delle limitazioni non c'è il supporto per la ricezione di chiamate reali non c'è il supporto per la determinazione della connessione ad internet non c'è supporto per il WiFi non c'è il supporto per i sensori fisici Nel caso dei sensori fisici, le soluzioni esistenti sono difficilmente integrabili in Android Ripper È impossibile disconnettere l emulatore dalla rete poiché necessaria per il funzionamento di DDMS Emulare una fotocamera a basso livello è oneroso

Sensori fisici Soluzioni Implementazione di librerie basate sul Sensor Framework di Android Instrumentazione del codice sorgente Variazione della posizione geografica del dispositivo (GPS) Utilizzo delle funzionalità messe a disposizione dall SDK Simulazione di ricezione chiamate ed SMS Utilizzo di una socket connesso alla console DDMS dell Emulatore Interazione con la fotocamera Realizzazione di Activity che rispondano agli Intent al posto di quelle di sistema Gestire le reti WiFi e dati Non facilmente realizzabile Ininfluente sulla connessione dell emulatore

Android Sensor Framework

Sperimentazione La sperimentazione è stata effettuata su WordPress Interazione con la fotocamera GPS Marine Compass (bussola) Sensore di Orientazione Bubble (livella) Accelerometro PedoMeter (contapassi) Accelerometro Sensore di Orientazione OmniDroid Ricezione di telefonate ed SMS

Risultati Sperimentazione APPLICAZIONE EVENTI CONSIDERATI COPERTURA (LOC) COPERTURA (METODI) Marine Compass SENSORE DI ORIENTAZIONE 97% (92%) 463/475 (435/475) 93% (86%) 27/29 (25/29) WordPress FOTOCAMERA GPS 46% (45%) 4599,3/10007 (4505,2/10007) 53% (53%) 784/1479 (779/1479) Bubble ACCELEROMETRO SENSORE DI ORIENTAZIONE 75% (60%) 464,4/616 (371,1/614) 74% (66%) 85/115 (75/113) Pedometer ACCELEROMETRO 67% (66%) 544,1/807 (528,2/805) 72% (72%) 161/225 (160/225) Omnidroid TELEFONATE SMS 57% (56%) 3480,2/6130 (3408,6/6130) 60% (58%) 813/1361 (789/1361) Generazione di nuovi eventi Incremento della copertura del codice sorgente

Conclusioni È stata aggiunta la possibilità di generare nuove tipologie di eventi nell Android Ripper Questi nuovi eventi permettono di aumentare la copertura del codice sorgente Rilevazioni di eccezioni non gestite nel codice sorgente relativo a questi nuovi eventi Sviluppi Futuri Simulare una variazione dei sensori secondo pattern più complessi (ad esempio shake) Simulare risposte ad Intent diretti verso altre applicazioni Rilevazione automatica dei sensori utilizzati Sviluppare tecniche euristiche per la valorizzazione degli input dei sensori Sviluppare tecniche per la generazioni di casi di test multi-threaded