Testing of adaptive and context‐aware systems: approaches and challenges. (3rd May 2021) - Siqueira, Bento R.; Ferrari, Fabiano C.; Souza, Kathiani E.; Camargo, Valter V.; de Lemos, Rogério
Summary: Adaptive systems (ASs) and context‐aware systems (CASs) are able to evaluate their own behaviour and to adapt it when the system fails to accomplish its goals or when better functionality or performance is possible. Ensuring the reliability of ASs and CASs is demanding because failures might have undesirable consequences. Testing ASs and CASs effectively is not trivial because of the inherent characteristics of these systems. The literature lacks a comprehensive review that provides a broad picture of the area; current reviews are outdated and incomplete. The objectives of this study are characterizing the state of the art in AS and CAS testing and discussing approaches, challenges, observed trends, and research limitations and directions. We performed a systematic literature review (SLR) and a thematic analysis of studies, reporting up‐to‐date, refined and extended results when compared with existing reviews. Based on 102 selected studies, we (i) characterized testing approaches by grouping techniques for ASs and CASs; (ii) updated and refined a characterization of testing challenges for ASs and CASs; and (iii) analysed and discussed research trends and implications for AS and CAS testing. There are recurring research concerns regarding AS and CAS testing. Examples are the generation of test cases and built‐in tests. Moreover, we also identified recurring testing challenges such as context monitoring and runtime decisions. Moreover, there are some trends such as model‐based testing and hybrid techniques and some little investigated issues like uncertainty and prediction of changes. All in all, our results may provide guidance for developers and researchers with respect to the practice and the future research on AS and CAS testing. Abstract : Testing adaptive and context‐aware systems is not trivial due to the inherent characteristics of these systems. In this study, we characterize the state of the art for these types of systems with respect to testing. Based on a systematic literature review and a thematic analysis of studies, we discuss approaches, challenges, observed trends, and research limitations and directions. These results may provide guidance for developers and researchers with respect to the practice and the future research on testing these types of systems.