Affiliation:
1. Software Engineering Group, University of Siegen, Siegen, Germany
2. Real-Time Systems Lab, TU Darmstadt, Darmstadt, Germany
Abstract
Nowadays software tends to come in many different, yet similar variants, often derived from a common code base via clone-and-own. Family-based-analysis strategies have recently shown very promising potential for improving efficiency in applying quality-assurance techniques to such variant-rich programs, as compared to variant-by-variant approaches. Unfortunately, these strategies require a single program representation superimposing all program variants in a syntactically well-formed, semantically sound, and variant-preserving manner, which is usually not available and manually hard to obtain in practice. In this article, we present a novel methodology, called S
i
MPOSE, for automatically generating superimpositions of existing program variants to facilitate family-based analyses of variant-rich software. To this end, we propose a novel N-way model-merging methodology to integrate the control-flow automaton (CFA) representations of N given variants of a C program into one unified CFA representation. CFA constitute a unified program abstraction used by many recent software-analysis tools for automated quality assurance. To cope with the inherent complexity of N-way model-merging, our approach (1) utilizes principles of similarity-propagation to reduce the number of potential N-way matches, and (2) enables us to decompose a set of N variants into arbitrary subsets and to incrementally derive an N-way superimposition from partial superimpositions. We apply our tool implementation of S
i
MPOSE to a selection of realistic C programs, frequently considered for experimental evaluation of program-analysis techniques. In particular, we investigate applicability and efficiency/effectiveness trade-offs of our approach by applying S
i
MPOSE in the context of family-based unit-test generation as well as model-checking as sample program-analysis techniques. Our experimental results reveal very impressive efficiency improvements by an average factor of up to 2.6 for test-generation and up to 2.4 for model-checking under stable effectiveness, as compared to variant-by-variant approaches, thus amortizing the additional effort required for merging. In addition, our results show that merging all
N
variants at once produces, in almost all cases, clearly more precise results than incremental step-wise 2-way merging. Finally, our comparison with major existing N-way merging techniques shows that S
i
MPOSE constitutes, in most cases, the best efficiency/effectiveness trade-off.
Funder
Deutsche Forschungsgemeinschaft
Publisher
Association for Computing Machinery (ACM)
Reference69 articles.
1. Accompanying materials for this paper. 2019. Retrieved from http://pi.informatik.uni-siegen.de/projects/variance/tosem. Accompanying materials for this paper. 2019. Retrieved from http://pi.informatik.uni-siegen.de/projects/variance/tosem.
2. A survey on model versioning approaches
3. FEATUREHOUSE: Language-independent, automated software composition
4. The Oracle Problem in Software Testing: A Survey
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. RaQuN: a generic and scalable n-way model matching algorithm;Software and Systems Modeling;2022-11-21
2. Quantifying the Potential to Automate the Synchronization of Variants in Clone-and-Own;2022 IEEE International Conference on Software Maintenance and Evolution (ICSME);2022-10
3. Scalable N-Way Model Matching Using Multi-Dimensional Search Trees;2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS);2021-10
4. Can Program Synthesis be Used to Learn Merge Conflict Resolutions? An Empirical Analysis;2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE);2021-05
5. Towards projectional editing for model-based SPLs;Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems;2020-02-05