Facilitating Feature-Oriented Quality Assurance in Low-Maturity Variant-rich Systems
Abstract
Context: Many software systems exist in several variants customized for specific stakeholder requirements, such as different market segments or hardware constraints. This customization introduces a high level of complexity that renders traditional single-system quality assurance techniques inapplicable, since they need to consider variations and constraints between a system’s features—a.k.a feature-oriented or variability-aware analysis. While several analysis techniques have been conceived in the last two decades for this purpose, they mostly target a branch of variant-rich systems called software product lines, and are less applicable to systems that still rely on cloning strategies to engineer variants—a.k.a low-maturity variant-rich systems. Among other reasons, this is because such systems exhibit: immature architectures that do not systematically account for variability, redundancy that is not exploited to reduce analysis effort, and missing essential meta-information such as feature constraints and locations of features in source code.
Objective: This research aims to facilitate quality assurance in low-maturity variant-rich systems. Through analysis of the state-of-practice, we propose techniques that can improve maturity and help developers of such systems mitigate some challenges posed by redundancy.
Method: First, we conducted a survey and interviews with practitioners to identify industrial needs and practices for analyzing variant-rich systems, followed by a case study of some open source systems to understand where developers record information necessary for feature-oriented analysis. Then, we designed and systematically evaluated a technique and a tool that can improve the maturity of variant rich systems by supporting feature recording, and two techniques that can reduce analysis effort.
Results: Our results stem from two main contributions: our analysis of the state-of-practice and techniques we propose for improving maturity to facilitate feature-oriented analysis in low-maturity variant-rich systems. For the former, we present results of a survey and interviews targeting 27 practitioners from 18 companies in 8 countries to understand industrial practices and needs for analyzing variant-rich systems. Then, we present our empirical understanding of features and their characteristics (facets) based on a case study of two industrial open-source systems. For the latter, we present design decisions and an evaluation of a tool and technique that help developers proactively and continuously record features. Then, we present empirical data on the potential of two techniques for reducing QA effort: one for predicting software defects at the level of features (evaluated on 13 open-source systems), and another for propagating test cases across forked projects, i.e., projects with similar but cloned features (evaluated on over 426,000 test cases from 2,153 projects).
Conclusion: This thesis identifies the lack of adoption of feature-oriented quality assurance techniques in industry, and addresses the problem through tools and techniques for feature recording and quality assurance effort reduction.
Parts of work
Mukelabai, M., Nešić, D., Maro, S., Berger, T., & Steghöfer, J. P. (2018, September). Tackling combinatorial explosion: a study of industrial needs and practices for analyzing highly configurable systems. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (pp. 155-166). Krüger, J., Mukelabai, M., Gu, W., Shen, H., Hebig, R., & Berger, T. (2019). Where is my feature and what is it about? a case study on recovering feature facets. Journal of Systems and Software, 152, 239-253. Martinson, J., Jansson, H., Mukelabai, M., Berger, T., Bergel, A., & Ho-Quang, T. (2021, September). HAnS: IDE-based editing support for embedded feature annotations. In Proceedings of the 25th ACM International Systems and Software Product Line Conference-Volume B (pp. 28-31). Mukelabai, M., Berger, T., & Borba, P. (2021, May). Semi-automated test-case propagation in fork ecosystems. In 2021 IEEE/ACM 43rd International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER) (pp. 46-50). IEEE.
Degree
Doctor of Philosophy
University
University of Gothenburg. IT Faculty
Institution
Department of Computer Science and Engineering ; Institutionen för data- och informationsteknik
Disputation
Torsdag den 29 Sept. 2021, kl. 13.00, Jupiter 520, Hörselgången 5, Lindholmen
Date of defence
2022-09-29
mukemuke2008@gmail.com
Date
2022-09-08Author
Mukelabai, Mukelabai
Keywords
Variant-Rich Systems
Cloned Projects
Quality Assurance
Feature Location
Test Case Reuse
Recommender System
Publication type
Doctoral thesis
ISBN
978-91-8009-955-4 (PRINT)
978-91-8009-956-1 (PDF)
Series/Report no.
225D
Language
eng