Repository logo
 

A Comprehensive Study on Quality Aspects and Industry Perspective in Backporting

Date

2024-07-24

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

Citation

Part Of

item.page.relation.ispartofseries

DOI

item.page.identifier.pmid

item.page.identifier.pmcid