A Comprehensive Study on Quality Aspects and Industry Perspective in Backporting
dc.contributor.advisor | Roy, Dr. Chanchal K. | |
dc.contributor.advisor | Schneider, Dr. Kevin A. | |
dc.contributor.committeeMember | Roy, Dr. Chanchal K. | |
dc.contributor.committeeMember | Schneider, Dr. Kevin A. | |
dc.contributor.committeeMember | Roy, Dr. Banani | |
dc.contributor.committeeMember | Rochan, Dr. Mrigank | |
dc.creator | TASNIM, JARIN | |
dc.creator.orcid | 0000-0001-7663-2811 | |
dc.date.accessioned | 2024-07-25T02:57:35Z | |
dc.date.available | 2024-07-25T02:57:35Z | |
dc.date.copyright | 2024 | |
dc.date.created | 2024-07 | |
dc.date.issued | 2024-07-24 | |
dc.date.submitted | July 2024 | |
dc.date.updated | 2024-07-25T02:57:35Z | |
dc.description.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. | |
dc.format.mimetype | application/pdf | |
dc.identifier.uri | https://hdl.handle.net/10388/15874 | |
dc.language.iso | en | |
dc.subject | Backporting, Code Quality, Technical debt | |
dc.title | A Comprehensive Study on Quality Aspects and Industry Perspective in Backporting | |
dc.type | Thesis | |
dc.type.material | text | |
thesis.degree.department | Computer Science | |
thesis.degree.discipline | Computer Science | |
thesis.degree.grantor | University of Saskatchewan | |
thesis.degree.level | Masters | |
thesis.degree.name | Master of Science (M.Sc.) |