AFChecker: Effective model checking for context-aware adaptive applications - Liu, Yepang; Xu, Chang; Cheung, S.C. (The Journal of systems and software, 2013)
► We propose a novel approach to improving the effectiveness of the existing adaptation fault detection technique. ► Our approach automatically derives domain and environment models for rule-based context-aware adaptive applications. ► We leverage the constraints formulated from the derived models to prune false alarms reported by the existing technique. ► We design a two-phase ranking mechanism and a feedback-directed strategy to effectively rank spurious fault reports. ► Our evaluation on two typical subjects shows that our approach is significantly more effective than the state of the art. Context-aware adaptive applications continually sense and adapt to their changing environments. A large body of such applications relies on user-configured adaptation rules to customize their behavior. We call them rule-based context-aware applications (or RBAs for short). Due to the complexity required for adequately modeling environmental dynamics, adaptation faults are common in these RBAs. One promising approach to detecting such faults is to build a state transition model for an RBA, and exhaustively explore the model's state space. However, it can suffer from numerous false positives. For example, 78.6% of 784 reported faults for one popular RBA – PhoneAdapter, turn out to be false in a real deployment. In this paper, we address this false positive problem by inferring a domain model and an environment model for an RBA. The two models capture the hidden features inside user-configured adaptation rules as well as the RBA's running environment. We formulate these features as deterministic constraints and probabilistic constraints to prune false positives and effectively prioritize remaining faults. Our experiments on two real RBAs report that this approach successfully removes 46.5% of false positives and ranks 86.2% of true positives to the top of the fault list.