A Comprehensive Study on Quality Aspects and Industry Perspective in Backporting
Date
2024-07-24
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
ORCID
0000-0001-7663-2811
Type
Thesis
Degree Level
Masters
Abstract
Code quality assurance has emerged as a well-established pillar to ensure effective software development
and maintenance. Large and intricate software systems (e.g., Linux, Adobe Reader, Collabora, etc.) often
require developers to version source code and manage multiple stable releases simultaneously. In general,
prior stable releases are maintained by Backporting, which refers to applying changes taken from a newer
release to an old release. In such cases, software quality assurance can be challenging for old stable releases
for a variety of reasons. First, older releases often differ from newer (upstream) releases in terms of code
dependency, infrastructure, architecture, and maintenance strategy. Second, backport maintenance is often
not reviewed consistently to prioritize upstream development. Lastly, as software releases evolve with con-
tinuous maintenance, developers often fail to maintain code in accordance with essential quality standards.
As a result, poor-quality code and design choices can emerge in stable releases, affecting their reliability and
stability. Although researchers have extensively scrutinized the quality assurance practice and paradigm in
upstream versions, how code evolves and quality issues arise in the backporting procedure is yet to be ex-
plored. Thus, to fill this gap in existing research work, we analyzed how software quality deviates in terms of
size, complexity, and coupling throughout backporting. We found that as software releases evolve, backports
are responsible for 11.5% and 12.3% of quality degradation and improvement, respectively. Furthermore,
backporting can significantly affect the complexity and size of old releases. In our second study, we strive
to observe when and why technical debt (fine-grained quality issues) arises as stable releases evolve through
backporting. Our exploration reveals that the early-phase of Apache releases and the mid-phase of Eclipse
and Python releases are more prone to technical debts in the release life cycle. Moreover, we found develop-
ers’ high workload and low exposure can lead to new technical debts in stable releases. Lastly, in our third
study, we explored expert opinions to get a non-biased, reliable view of developers’ needs and challenges to
ensure code quality in the backporting process. We asked 38 experts and analyzed their challenges to ensure
code quality for the backporting process. This study reveals the several subjective factors behind the failed
quality assessment in backporting practice, including code comprehension, lack of efficient decision-making
standards, lack of testing guidelines, scarcity of organization and tool support, etc.
Description
Keywords
Backporting,
Code Quality,
Technical debt
Citation
Degree
Master of Science (M.Sc.)
Department
Computer Science
Program
Computer Science