Testing the robustness of controllers for self-adaptive systems

  • PDF / 644,949 Bytes
  • 14 Pages / 595 x 794 pts Page_size
  • 106 Downloads / 196 Views

DOWNLOAD

REPORT


RESEARCH

Open Access

Testing the robustness of controllers for self-adaptive systems Javier Cámara1* , Rogério de Lemos2,3 , Nuno Laranjeiro4 , Rafael Ventura4 and Marco Vieira4

Abstract Self-adaptive systems are software-intensive systems endowed with the ability to respond to a variety of changes that may occur in their environment, goals, or the system itself by adapting their structure and behaviour at run-time in an autonomous way. Controllers are complex components incorporated in self-adaptive systems, which are crucial to their function since they are in charge of adapting the target system by executing actions through effectors, based on information monitored by probes. However, although controllers are becoming critical in many application domains, so far very little has been done to assess their robustness. In this paper, we propose an approach for evaluating the robustness of controllers for self-adaptive software systems, aiming to identify faults in their design. Our proposal considers the stateful nature of the controller and identifies a set of robustness tests, which includes the provision of mutated inputs to the interfaces between the controller and the target system (i.e. probes). The feasibility of the approach is evaluated on Rainbow, a framework for architecture-based self-adaptation, and in the context of the Znn.com case study. Keywords: Robustness testing; Controller; Self-adaptive system; Autonomic system

Introduction One of the main traits of a self-adaptive software system, compared to any other kind of system, is its ability to deliver its services in spite of changes that may occur in the system, its environment, or even in its goals. A key component that enables self-adaptive systems to handle changes at run-time (e.g. repairing anomalies and improving operation) is a controller that relies on a feedback control loop for managing adaptations [1] by executing actions through system-level effectors on the target system, based on information monitored by probes. In the context of complex software systems, these controllers typically implement the traditional sense-planact architectures. An example of such controllers is the MAPE-K model, which includes four distinct operational stages, namely monitoring, analysis, planning, and execution [2]. Despite major achievements in the area, existing approaches in autonomic systems and self-adaptation do not systematically address the need to determine if a self-adaptive system can deliver a service that can *Correspondence: [email protected] 1 Carnegie Mellon University, Pittsburgh, PA, USA Full list of author information is available at the end of the article

justifiably be trusted when facing changes (i.e. that it will be resilient [3]). This lack of assurances is an issue that has hampered the widespread adoption of self-adaptive systems, which are often regarded as unreliable by industry. A major problem associated with the provision of evidence is the combinatorial nature of the stateful aspects of a controller and the changes that ma