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.Keywords: Slicing adaptive software, software testing, test case generation, model-based testing, Techne language, program slicing.