context-aware mobile applications: come testarle?
DESCRIPTION
How to test context-aware mobile applications? This talk, presented @WHYMCA 2012 (http://www.whymca.org) discusses why testing context-aware mobile applications is important and initial results towards their automated testing. See also http://www.henrymuccini.com/mobiletestingTRANSCRIPT
![Page 1: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/1.jpg)
www.henrymuccini.com/MobileTesting
Context-Aware Mobile Applications: come testarle?
Antonio Di FrancescoPatrizio EspositoHenry MucciniUniversita’ degli Studi dell’Aquila
[email protected]@muccinihenry
![Page 2: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/2.jpg)
Contesto di questo lavoroAttivita’ di ricerca su mobile applications presso l’Universita’ degli Studi dell’Aquila
• Testing di applicazioni mobili• studio delle peculiarita’ del testing di applicazioni mobili• studio del testing di context-aware mobile app
• Progettazione di applicazioni mobili
• Corso su “Applicazioni per Dispositivi Mobili” (http://lore.com/course/6623)
![Page 3: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/3.jpg)
Trend generaleSituazione attuale:
29 miliardi di applicazioni scaricate nel 2011. abiresearch
Valore di mercato:
128 miliardi di dollari (2011).
150 miliardi di dollari (2012).
Strategy Analytics
Previsione:
185 miliardi di apps scaricate (2014). Gartner
![Page 4: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/4.jpg)
Applicazioni Mobile
appartengono solo alla classe delle applicazioni mobile?
Tipologia➢ Applicazioni Native➢ Applicazioni Web ➢ Applicazioni Ibride
Sistema operativo
![Page 5: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/5.jpg)
Contesto (def)Definizione
Schilit (1994)➢ Computing context: connettività del dispositivo, la banda a
disposizione, i costi di comunicazione e le risorse circostanti con le quali il dispositivo può interagire.
➢ User context: situazione sociale dell’utente, la sua localizzazione e le sue possibili attività.
➢ Physical context: include la luminosità, il livello di rumore e la temperatura.
![Page 6: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/6.jpg)
Contesto (esempio) Computing context User context
Physical context
![Page 7: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/7.jpg)
Contesto (in classe)Computing context:
Connettività Wifi UnivAq Hot Spot
➢ User context: Umore Stanchezza Cio’ che successo questa mattina… Dove sono andato ieri Periodo dell’anno
➢ Physical context: Luminosita’ Rumore
![Page 8: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/8.jpg)
Applicazioni mobile context-aware
➢Il mondo fisico si mescola a quello delle informazioni.➢Mobilità.
"... change the business world..."
Video: 2012 GM Advanced Tech Windowhttp://www.youtube.com/watch?v=9G4cYYlIaCc
![Page 9: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/9.jpg)
Applicazioni context-aware➢ Evoluzione tecnologica dei sensori.➢ Riproduzione sempre più precisa dell'ambiente.
Video: Microsoft Kinect per Xbox 360 http://www.youtube.com/watch?v=NUYBapS5nEM&feature=g-hist
![Page 10: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/10.jpg)
Integrazione: context-aware & mobile
➢ Smartcities: integrazione con i sensori.
![Page 11: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/11.jpg)
Context-Aware/Mobile apps
![Page 12: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/12.jpg)
Trend (context-aware)➢Influenza della tecnologia context-aware96 miliardi di dollari entro il 2015 a livello mondiale. gartner
➢Utilizzo della tecnologiasmartphone iOS, Android, Windows Phone o altre piattaforme saranno utilizzati da più di 1,8 miliardi di persone entro il 2015.
➢Ambienti di studioLa user experience migliora attraverso l'utilizzo delle informazioni sugli interessi di una persona, le intenzioni, la storia, l'ambiente circostante, le attività e le connessioni.
Eric Schmidt: “So we do need to extend the vision for context-aware applications to include the device, it’s characteristics, and the human interface guidelines set out for the experience.”
![Page 13: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/13.jpg)
Perché è importante testarle?➢Crescita delle applicazioni context-aware nel futuro.
➢ User experience.
Perché è difficile testarle?➢Sensore traduce il Contesto in una rappresentazione matematica.
➢ Imprevedibilità dell'input contestuale.
➢ Variabilità dell'input contestuale.
![Page 14: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/14.jpg)
Perché è importante testarle? Esempio:Navatar
Video: Navatar: Indoor navigation system for users who are visually impaired
http://www.youtube.com/watch?v=cBqvkRCxYIw&feature=g-hist
![Page 15: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/15.jpg)
Testing
➢Connettività mobile bugs riconducibili all'inaffidabilità delle connessioni.
➢Risorse limitate degradazione delle prestazioni del sistema.
➢Autonomia cattiva implementazione dell'app – memory leak.
➢Sistemi operativi continua inaffidabilità e variabilità.
➢Differenti dispositivi Android: 1800 ambienti diversi di esecuzione.
➢Consapevolezza del contesto bugs: contesti inaffidabili o non gestiti.
“..user experience..”
![Page 16: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/16.jpg)
Sviluppo apps sensor-basedpublic class SensorActivity extends Activity, implements SensorEventListener { private final SensorManager mSensorManager; private final Sensor mAccelerometer;
public SensorActivity() { mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); }
protected void onResume() { super.onResume(); mSensorManager.registerListener(mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); }
protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); }
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) { }}
![Page 17: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/17.jpg)
Approccio
➢Analisi → Selezione → Esecuzione
![Page 18: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/18.jpg)
Capture Replay
Black-box / design-time
Framework attuale
![Page 19: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/19.jpg)
Analisi
Sensor Analysis
➢Studio dei sensori attualmente in uso dall’App
se applicazione e' WB, controllo dal codice le chiamate, se applicazione e' BB:
eseguo il running dell'app sul dispositivo uso emulatore (e.g., Samsung Sensor Simulator) e sposto
i valori dei sensori per vedere se app emulata reagisce
![Page 20: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/20.jpg)
Analisi
Event-sensor Data Analysis/Data Model
➢Link tra sensore ed evento.
➢Rappresentazione matematica dell'evento.
Camminata in linea retta = ?????
•Sollecitazione maggiore sull'asse y. Asse x e z ininfluenti.•y compreso tra [-14.81 ; -9.81[ e ]9.81 ; 14.81].•x e z compresi tra [-9.81; 9.81].
?
![Page 21: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/21.jpg)
Event-Sensor Data Model
![Page 22: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/22.jpg)
Analisi
Contextual Test Scenarios (CTS) Specification
➢Scenario reale.➢ ”muovi k passi in avanti, ruota di 180 gradi, fai x salti” → ” k+x ?”.
![Page 23: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/23.jpg)
Selezione
➢ Passo 1: Individuare il sensore utilizzato nell'applicazione.
➢ Passo 2: Individuare la maggior parte degli eventi attinenti all'applicazione.
➢ Passo 3: Ad ogni evento (passo 2) associare un modello matematico.
➢ Passo 4: Category Partition Method.
![Page 24: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/24.jpg)
EsecuzioneRegistrazione istanze scenario
![Page 25: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/25.jpg)
EsecuzioneNormalizzazione del file di registrazione
-3 < x < -2.8-9.8 < y < 9.41.8 < z < 2
L UBounds
![Page 26: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/26.jpg)
EsecuzioneReplay istanze registrate su emulatore
![Page 27: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/27.jpg)
Tools➢Open Intents➢Samsung Sensor Simulator
➢IOS/Android emulator
![Page 28: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/28.jpg)
Casi di studio
•Metal Detector (Campo magnetico)•Pushup Buddy (Prossimità)•Bubble (Orientamento)•Pedometer (Accelerometro)
1.Pedometer (P1)2.LexApps Pedometer (P2)3.Step Counter (P3)4.WalkMe (P4)
![Page 29: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/29.jpg)
Risultati
![Page 30: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/30.jpg)
Capture Replay
Monitoring
Upgrade
Black-box / design-timeWhite-box/ run-time
Framework attuale e futuro
![Page 31: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/31.jpg)
Challenges Utilizzo di vari smart phones nella fase di registrazione
eventi Cosa accade se l’utente e’ alto 2.5 metri? Real-timeness?
![Page 32: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/32.jpg)
Lavori Futuri Creazione di librerie per la gestione di scenari noti
Creazione di pattern predefiniti riusabili nell’esecuzione dei casi di test
Analisi dei dati provenienti da piu’ sensori
Interazione con le aziende
![Page 33: Context-aware Mobile Applications: come testarle?](https://reader036.vdocuments.mx/reader036/viewer/2022062513/554d2bd0b4c905c5208b5198/html5/thumbnails/33.jpg)
Contatti
Henry Muccini (team leader)www: HenryMuccini.comemail: [email protected]: @muccinihenry
Antonio Di Francescoemail: [email protected]
Patrizio Espositoemail: [email protected]