Testing Techniques for Context-Aware Ubiquitous Systems

Lead Research Organisation: University College London
Department Name: Computer Science

Abstract

Mark Weiser's vision of ubiquitous computing, in which computers become transparently and seamlessly woven into the many activities of our daily lives, is slowly becoming a reality. Researchers have created prototype ubiquitous computing environments such as 'smart homes' that can automatically sense the presence of a resident in a particular room and change some aspect of the environment of the room such as turning on the lights, or 'smart museums' that can play recorded information about the museum artefact a visitor is standing in front of. There seem to be limitless possibilities for the kinds of environments and applications that can be developed for ubiquitous computing, yet the very nature of ubiquitous computing creates new and significant challenges for engineers who would like to build these environments and applications. Anybody who has ever used a computer has experienced the extreme frustration of using a software package that doesn't work the way it's supposed to, or that unceremoniously crashes in the middle of its operation, or that runs extremely slowly, or that transmits sensitive information such as credit card numbers over untrusted networks. For ubiquitous computing to achieve true transparent and seamless integration with its surroundings, it is important to prevent such mishaps, crashes, inefficiencies and insecurities from happening to the greatest extent possible. This project will initiate the definition and implementation of sound software testing methods that engineers can use to create ubiquitous computing environments and applications that function correctly, efficiently and securely.
 
Description In this project we have developed an approach to improve the testing of context-aware ubiquitous systems by identifying points in the system source text where context changes may affect the system's behaviour, and by systematically manipulating the context data fed into the system to increase its exposure to potentially valuable context variations. To achieve such improvement the approach performs the following tasks: 1) it identifies key program points where context information can effectively affect the application's behaviour, 2) it generates potential variants for each existing test case that explore the execution of different context sequences, and 3) it attempts to dynamically direct the application execution towards the generated context sequences.
Exploitation Route The project produced an infrastructure to support the research, including the adaptation of static and dynamic analysis tools, tailoring of context-awareness middleware developed by other researchers and by commercial mobile phone manufacturers, and the development of a range of sample application programs and scenarios exhibiting complex modes of context-awareness and context-aware adaptation.
Sectors Creative Economy,Digital/Communication/Information Technologies (including Software),Healthcare

 
Description This project formed the basis of further research on testing and verification of ubiquitous computing systems, sensor-driven systems, and unmanned aerial vehicles (UAVs).
First Year Of Impact 2007
Sector Digital/Communication/Information Technologies (including Software)