Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
tesi di laurea
Definizione di metodi e tecniche per il testing di applicazioni Android Sensor Based Anno Accademico 2010/2011
relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Domenico Amalfitano
candidato Teresa Papa Matr. 534/3348
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Adattabilità di metodi e tecniche di testing su applicazioni Android sensor based
Ricerca di soluzioni che consentano di testare applicazioni Android basate sugli eventi, tramite simulazione da programma degli eventi stessi
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Componenti dell’applicazione che consentono di eseguire operazioni in background e non forniscono un’interfaccia utente
Services
UnBounded: Servizio che può auto-interrompersi oppure essere fermato da un client per poi essere distrutto
Bounded: Servizio UNBOUNDED
BOUNDED
distrutto solo quando tutti i suoi client lo rilasciano
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Classi JUnit
Services myApp.apk Instrumentation TestRunner
Tests Package myAppTests.apk
Instrumentation Test Case class Instrumentation Test Runner Mock Object classes
Test case classes JUnit
Mock Object
Instrumentation Process
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
ActivityInstrumentationTestCase2
TestClass: classe contenente i casi di test SmsMock: classe che estende l’activity sotto test ed istanzia un nuovo oggetto di tipo SmsManager MockSender: Thread che riceve i dati dalla TestClass, li elabora ed istanzia l’occorrenza di un Intent Message SmsActivity: activity sotto test BroadcastReceiver: componenete in ascolto dell’arrivo di messaggi
TestClass +mysman: SmsManager + setUp() + testcase()
MockSender
SmsMock
+ invia_messaggio()
<
>
BroadcastReceiver
<>
SmsActivity
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Emulatore sul quale è eseguito il Progetto di Test
Emulatore in attesa degli sms Porta:“5554”
Invio Sms in Corso
1/3
Porta:“5556”
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Ormai i dispositivi mobili di ultima generazione sono dotati di diversi tipi di sensori La piattaforma Android attraverso un set di librerie permette una semplice gestione dei sensori da parte dello sviluppatore
Classificazione Accelerometro
Bussola
Sensori
Prossimità
Temperatura
Luminosità
Orientamento
Giroscopio
Pressione
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
SensorService Testing In particolare la Piattaforma Android mette a disposizione una libreria android.hardware per la gestione dell’apparato sensoristico Al contrario non vi sono metodi che permettono la simulazione di eventi sensore Infatti sono stati prima re-implementati i componenti base della libreria android.hardware e poi applicata la tecnica di testing
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Utilizzo della tecnica su applicazione Sensor Based AccelTesting + setUp() + testcase()
Progetto di Test Progetto dell’applicazione package activity
Handler AccelSender +set_cordinate() + notifyMessage()
SensorEvent Progetto dell’applicazione package hardware
SimulationActivity
SensorManager
SensorEventListener
Sensor
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Dinamica del SensorService Testing TEST CASE
HANDLER
SENSOR EVENT LISTENER
Prelievo da file .txt
Incapsulamento dei valori
Interfaccia in ascolto
INTERFACCIA
notifyMessage() SensorEvent event = new SensorEvent(ctx, mValues, 1); mListener.mSensorListener.onSensorChanged(event);
Set dei Valori nel Layout
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Metodologie e strumenti del workflow management Definizione di metodi e tecnicheper peril ilreengineering testing di applicazioni Android Sensor Based
Conclusioni Struttura implementata per predisporre al testing automatico applicazioni che fanno uso dei Servizi Android (ad es. GPS o SMS) Utilizzo della struttura per il SensorManager e l’SmsManager (simile a quella del LocationService)
Sviluppi Futuri Generazione di casi di test a partire dalla struttura implementata Uso della struttura implementata per applicazioni che fanno uso di altri servizi Android come: TelephonyService Valutazione della compatibilità della struttura proposta in applicazioni reali
GRAZIE PER L’ATTENZIONE