Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

2-3

Challenges in Testing Context-Aware Applications

Several context-aware systems have recently been developed for pervasive computing.
Example systems include Cabot, Gaia, Carisma, RCSM [1], and so on. Loke [2] and
Poslad [3] provide good introduction to several types of context-aware systems.
Context-aware systems can be designed and implemented in several ways. The
approach depends on the requirements and conditions, such as the locations of sensors,
number of users, resources on mobile devices, and so on. The method of context-data
acquisition is very crucial because it predefines the architectural style of the system.
Developing context-aware applications requires an architecture that can evolve in the
presence of a large number of platforms, increasing number of sensors, and frequent
network and drivers updates. Such requirements usually lead to the use of a layered
architecture. Some of these layers are often aggregated into a context-aware middleware,
which processes the context values on behalf of the application and triggers adaptive
behavior in the application. A context-aware middleware collects the context information from the sensing devices and applications, processes them, and delivers to the application. With the aid of context-aware middleware, context-aware applications only need
to subscribe the contexts of their interests from the middleware, and adapt their behaviors based on these contexts and the triggering rules. Most existing systems incorporate
a middleware-based software architecture [46].
Figure 2.2 shows a layered architecture of context-aware application that incorporates
a context-aware middleware to support the processing of context data. The middleware
typically consists of two parts: Context Manager and Adaptation Manager. The Context
Manager collects and maintains low-level context information, whereas the rule-based
Adaptation Manager queries and processes the current context values on behalf of the
application and triggers the adaptive behavior by the application. Adaptation rules define,
in parts, the application behavior and are typically specified in terms of predicates over the
variables representing the context readings [5].

2.1.1 Overview of Software Testing for Context-Aware


Applications
Software testing is the well-known approach for assuring high-quality software products,
with the aim of detecting as many faults as possible before shipping the product to the

Context-aware application

Presumed context

Adaptation manager

Inferred context

Context manager

Sensed context

External (physical) environment

Physical context

FIGURE 2.2 Architecture of context-aware software applications The corresponding context category is shown on the right. (Adapted from Sama, M. et al., Multi-layer faults in the architecture of
mobile, context-aware adaptive applications: a position paper, in Proceeding of 1st International
Workshop on Software Architectures and Mobility (SAM08), May 10, Leipzig, Germany, 2008.)

You might also like