1. Università degli Studi dell’Aquila
Henry Muccini
University of L’Aquila, Italy
(www.henrymuccini.com, @muccinihenry)
Dagstuhl Seminar 13022 "Engineering Resilient Systems: Models, Methods and Tools“,
January 2013
2. The “context” of this presentation…
Investigation of the peculiarities of mobile applications
and implications on testing [AST 2012]
The mobile market is growing…
http://code.google.com/p/android/issues/list
Henry Muccini, Antonio Di Francesco and Patrizio Esposito, Software Testing of Mobile Applications:
Challenges and Future Research Directions, in: 7th IEEE/ACM International Workshop on Automation of
Software Test (AST 2012) @ ICSE 2012, IEEE Digital Library, 2012
3. 3
and more…
Architecting and Analysing Wireless Sensor Networks
Krishna Doddapaneni, Enver Ever, Ivano Malavolta, Leonardo Mostarda and Henry Muccini, A Model-
driven Engineering Framework to Support an Architecture-Driven Development and Analysis of WSNs,
in: Third Int. Workshop on SE for Sensor Network Applications (SESENA'12) @ ICSE 2012
4. 4
Peculiarities and Implications on testing
Type of Mobile
Application Peculiarity Implications on Testing
Mobile Connectivity 512 MB of RAM,
Reliability, performance, security,
64 GB of disk space, testing Ghz dual core
and functional and 1 through
CPU
different networks
Apps4Mobile
Limited Resources Performance and functional
monitoring
Autonomy Monitoring for energy consumption
MobileApps
User Interface GUI Testing
iPhone 4S: Context Awareness Context-dependent functional and
200 hours autonomy in stand-by …drops to extra functional testing
Mobile Applications
9 hours when Wi-Fi is enabled … drops to
Adaptation Adaptation correctness
6 hours when a 3G connection is active
New programming languages 1,800 different hw/sw
New white box and black-box
configurations analysis
testing, byte-code
New OS releases to increase O.S.s
New autonomy Compatibility and O.S. testing
Diversity of phones and O.S.s Diversity coverage
Touch Screens Usability, and response to screen
touch
5. 5
Peculiarities and Implications on testing
Type of Mobile
Application Peculiarity Implications on Testing
Mobile Connectivity Reliability, performance, security,
and functional testing through
different networks
Apps4Mobile Is the app going to work in any
Limited Resources environment and under functional
Performance and any unpredictable
monitoring
scenarios?
Autonomy Monitoring for energy consumption
MobileApps
User Interface GUI Testing
Context Awareness Context-dependent functional and
extra functional testing
Mobile Applications
Adaptation Adaptation correctness
New programming languages New white box and black-box
testing, byte-code analysis
New O.S.s Compatibility and O.S. testing
Diversity of phones and O.S.s Diversity coverage
Touch Screens Usability, and response to screen
touch
7. 7
Context-Aware Computing
In context-aware computing, an application is aware of the
computing environment in which it runs, and adapts/reacts
according to its computing, user, physical, or time context
[Schilit1994,Chen2000].
Schilit (1994)
•Computing context: e.g., the device connectivity, the
available bandwith, the outside resources the device may
interact with.
•User context: the user’s feeling, his location, his prior
actions.
•Physical context: includes the environment luminosity,
noice, temperature, pressure, etc.
8. 8
The context in this room
Computing context:
Connectivity in this building
Connectivity of our devices
User context:
What happened this morning
Mood
Degree of happiness/tiredeness/…
Deadlines
Physical context:
Luminosity
Noice
…
15. 16
Computing/User/Physical context
Connectivity To access
contextual
(3G, WiFi, resources (printers,
BT) devices)
To get
Sensors contextual data
16. 17
Connectivity
Resources
from
Data from
Data from
Sensors
Sensors
Connectivity
Resources
from
17. 18
“The persistence of dependability
when facing changes”
Avizienis, Laprie, Randell, Landwehr
[IEEE TDSC04]
Laprie [DSN04]
18. 19
[Strigini_Book]
ability to recover to normality after a disturbance
“ “resilience engineering” is about flexibility of people
and organisations, not just in reacting to individual
incidents and anomalous situations, but also in
learning from them and thus developing an ability to
react to the set of problems concretely occurring in
operation, even if not anticipated by designers of the
machinery or of the organisation”
19. 20 Engineering Resilient Context-aware systems = keeping the c-a
system persistently dependable when facing changes
Resources:
signal strenght
type of network
devices around me
Data:
luminosity
mobility noice
adaptivity by c-a feeling
variability (since I move, or others move)
Strategies (for making c-a systems
resilient) builds on these
20. 22
Resilience requirements
The system availability shall not be less than 95% even
when “nodes” will move towards networks with different
speeds:
I have to design my system so to continuously monitor the WiFi
networks around me and select those that overall guarantee 95%.
In case of no open network, I check with my 3G connectivity
The system must guarantee that data xxx remains
confidential even when operating through open networks;
The system reliability/performance shall not go lower
than yy even when zz nodes are down
23. 25
Context-aware systems are subject to both functional,
environmental, and technological changes and
disturbancies.
Context-aware systems input data on which we may
have made wrong assumptions
All traditional dependabiliy issues apply, plus new
related to the contextual (variable, unforeseenable,
uncertain) nature of resources, assumptions, and data
“context-awareness could be an important mechanism for
achieving resilience, while on the other hand that systems
that are intensely context-aware are intrinsically more
vulnerable to failure due to their high sensitivity to changes
in their environment.” [David Rosenblum]