Context-Aware Adaptive Applications: Fault Patterns and Their Automated Identification

Applications running on mobile devices are intensely context-aware and adaptive. Streams of context values continuously drive these applications, making them very powerful but, at the same time, susceptible to undesired configurations. Such configurations are not easily exposed by existing validation techniques, thereby leading to new analysis and testing challenges. In this paper, we address some of these challenges by defining and applying a new model of adaptive behavior called an Adaptation Finite-State Machine (A-FSM) to enable the detection of faults caused by both erroneous adaptation logic and asynchronous updating of context information, with the latter leading to inconsistencies between the external physical context and its internal representation within an application. We identify a number of adaptation fault patterns, each describing a class of faulty behaviors. Finally, we describe three classes of algorithms to detect such faults automatically via analysis of the A-FSM. We evaluate our approach and the trade-offs between the classes of algorithms on a set of synthetically generated Context-Aware Adaptive Applications (CAAAs) and on a simple but realistic application in which a cell phone's configuration profile changes automatically as a result of changes to the user's location, speed, and surrounding environment. Our evaluation describes the faults our algorithms are able to detect and compares the algorithms in terms of their performance and storage requirements.

[1]  Gruia-Catalin Roman,et al.  Mobile UNITY: reasoning and specification in mobile computing , 1997, TSEM.

[2]  Shing-Chi Cheung,et al.  Incremental consistency checking for pervasive context , 2006, ICSE '06.

[3]  Cecilia Mascolo,et al.  CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications , 2003, IEEE Trans. Software Eng..

[4]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[5]  Valerie Barr,et al.  Applications of rule-base coverage measures to expert system evaluation , 1997, Knowl. Based Syst..

[6]  Shing-Chi Cheung,et al.  Inconsistency detection and resolution for context-aware middleware support , 2005, ESEC/FSE-13.

[7]  Linda Hutcheon,et al.  A Theory of Adaptation , 2006 .

[8]  Stephen S. Yau,et al.  Testing context-sensitive middleware-based software applications , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[9]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[10]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[11]  Uma G. Gupta Automatic tools for testing expert systems , 1998, CACM.

[12]  Nancy G. Leveson,et al.  Completeness and Consistency in Hierarchical State-Based Requirements , 1996, IEEE Trans. Software Eng..

[13]  Nelly Bencomo,et al.  RELAX: Incorporating Uncertainty into the Specification of Self-Adaptive Systems , 2009, 2009 17th IEEE International Requirements Engineering Conference.

[14]  David S. Rosenblum,et al.  Automated Generation of Context-Aware Tests , 2007, 29th International Conference on Software Engineering (ICSE'07).

[15]  David S. Rosenblum,et al.  Algorithms for efficient symbolic detection of faults in context-aware applications , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[16]  T. H. Tse,et al.  Testing context-aware middleware-centric programs: a data flow approach and an RFID-based experimentation , 2006, SIGSOFT '06/FSE-14.

[17]  Siobhán Clarke,et al.  CASS - Middleware for Mobile Context-Aware Applications , 1990 .

[18]  Hung Keng Pung,et al.  A middleware for building context-aware mobile services , 2004, 2004 IEEE 59th Vehicular Technology Conference. VTC 2004-Spring (IEEE Cat. No.04CH37514).

[19]  Vinny Cahill,et al.  A framework for developing mobile, context-aware applications , 2004, Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the.

[20]  Premkumar T. Devanbu,et al.  Static checking of dynamically generated queries in database applications , 2004, Proceedings. 26th International Conference on Software Engineering.

[21]  Roy H. Campbell,et al.  A Middleware for Context-Aware Agents in Ubiquitous Computing Environments , 2003, Middleware.

[22]  David S. Rosenblum,et al.  A Model to Design and Verify Context-Aware Adaptive Service Composition , 2009, 2009 IEEE International Conference on Services Computing.

[23]  David S. Rosenblum,et al.  Model-based fault detection in context-aware adaptive applications , 2008, SIGSOFT '08/FSE-16.