Building software systems that adapt to the changing environment is challenging. Developers cannot anticipate all the changes in advance, and even if they could, the effort required to handle such situations is too onerous for practical purposes. Self Adaptive Software (SAS) adapts itself as per changing environment. The area of building SAS has observed immense contribution from both researchers and practitioners.
This dissertation proposes a new technique to build SAS called Test-Based Software Minimization (TBSM) that relies on using tests to define functionality that can be sacrificed to achieve resource gain. TBSM combines Hierarchical Delta Debugger and statement deletion mutation to automatically build SAS using a labeled test suite where test labels define association of test with features or resource usage. We implement the technique using a tool called hddRASS. We demonstrate the easy applicability, usability, and effectiveness of TBSM using 2 real-world adaptation scenarios.
TBSM is applicable, effective, and usable but it is a very inefficient technique. Our research discovers the reasons for inefficiency and tries to mitigate the major reason; the search space. TBSM relies on applying the time-consuming reduction process to the whole program which removes program statements to achieve resource gain. Hence, the search space for TBSM is the whole program. We empirically demonstrate that the removed statements have predictable characteristics and therefore it is possible to use heuristics to select target statements for removals, reducing the search space. Our research proposes 3 heuristics for target selection and evaluates them for efficiency and accuracy.
Spectrum-Based Fault Localization ranks program statements by the likelihood of a statement being faulty using spectra of passing and failing tests. Our research proposes AdFL, a repurposing of Fault Localization that can shrink and prioritize the search space for TBSM. We empirically demonstrate that AdFL is better than previous heuristics in reducing the search space. We utilize 2 real-world adaptation scenarios to demonstrate the effectiveness of AdFL in reducing the search space while retaining accuracy. We also combine AdFL with previous heuristics for TBSM to propose an incremental, best-effort variant of TBSM.