Background: Adaptive software adapts its behavior based on the dynamic changes of its
environment and users' requirements. Due to the high complexity of adaptive software, a program
slice of adaptive software makes it easier to testing, debugging, and comprehension, also described in
various patents. Specifically, program slicing is very useful for testing, which is a critical and costly
step in lifecycle of adaptive software.
Method: In this paper, a model-based method for slicing adaptive software is proposed and then test
cases are generated using a new coverage criterion called satisfaction. Our method uses a requirement
based model of adaptive software called the Techne model as a dependency graph whose nodes and
edges are propositions and relations of the program model respectively. The Satisfaction criterion is
defined according to the independent path of a slice consisting of elements of the program's Techne
model: hard-goals, soft-goals, quality constraints, domain assumptions and tasks.
Results: Assessing the proposed method by several test scenarios indicates the proposed method simplifies
the complexity of program slicing and increases concentration on goal and requirement satisfaction
which is the primary intention of adaptive software.
Conclusion: Although slicing methods have been best known for the analysis of program code and
structure, our proposed approach for slicing adaptive software scrutinizes the adaptive software model
denoting the software behavior. On the other hand, we choose coverage criterion of the approach
based on essential parameters of adaptive software, which are various types of goals to be satisfied.
Considering the coverage criterion, test cases are tailored for the slicing approach.