当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Deriving a usage-independent software quality metric
Empirical Software Engineering ( IF 4.1 ) Pub Date : 2020-02-19 , DOI: 10.1007/s10664-019-09791-w
Tapajit Dey , Audris Mockus

Context The extent of post-release use of software affects the number of faults, thus biasing quality metrics and adversely affecting associated decisions. The proprietary nature of usage data limited deeper exploration of this subject in the past. Objective To determine how software faults and software use are related and how, based on that, an accurate quality measure can be designed. Method Via Google Analytics we measure new users, usage intensity, usage frequency, exceptions, and release date and duration for complex proprietary mobile applications for Android and iOS. We utilize Bayesian Network and Random Forest models to explain the interrelationships and to derive the usage independent release quality measure. To increase external validity, we also investigate the interrelationship among various code complexity measures, usage (downloads), and number of issues for 520 NPM packages. We derived a usage-independent quality measure from these analyses, and applied it on 4430 popular NPM packages to construct timelines for comparing the perceived quality (number of issues) and our derived measure of quality during the lifetime of these packages. Results We found the number of new users to be the primary factor determining the number of exceptions, and found no direct link between the intensity and frequency of software usage and software faults. Crashes increased with the power of 1.02-1.04 of new user for the Android app and power of 1.6 for the iOS app. Release quality expressed as crashes per user was independent of other usage-related predictors, thus serving as a usage independent measure of software quality. Usage also affected quality in NPM, where downloads were strongly associated with numbers of issues, even after taking the other code complexity measures into consideration. Unlike in mobile case where exceptions per user decrease over time, for 45.8% of the NPM packages the number of issues per download increase. Conclusions We expect our result and our proposed quality measure will help gauge release quality of a software more accurately and inspire further research in this area.

中文翻译:

导出与使用无关的软件质量指标

上下文 软件发布后使用的程度会影响故障的数量,从而使质量指标产生偏差并对相关决策产生不利影响。过去,使用数据的专有性质限制了对该主题的深入探索。目标 确定软件故障和软件使用之间的关系,以及如何在此基础上设计准确的质量度量。方法 通过谷歌分析,我们测量 Android 和 iOS 的复杂专有移动应用程序的新用户、使用强度、使用频率、例外情况以及发布日期和持续时间。我们利用贝叶斯网络和随机森林模型来解释相互关系并推导出与使用无关的发布质量度量。为了提高外部有效性,我们还调查了各种代码复杂性度量、使用(下载)、以及 520 个 NPM 包的问题数量。我们从这些分析中得出了与使用无关的质量度量,并将其应用于 4430 个流行的 NPM 包,以构建时间表,以比较感知质量(问题数量)和我们在这些包的生命周期内得出的质量度量。结果我们发现新用户的数量是决定异常数量的主要因素,并且发现软件使用的强度和频率与软件故障之间没有直接联系。崩溃随着 Android 应用程序新用户的 1.02-1.04 功率和 iOS 应用程序的 1.6 功率而增加。以每个用户的崩溃表示的发布质量独立于其他与使用相关的预测因素,因此作为软件质量的使用独立度量。使用也影响了 NPM 的质量,下载量与问题数量密切相关,即使在考虑其他代码复杂性措施之后也是如此。与每个用户的异常随时间减少的移动情况不同,对于 45.8% 的 NPM 包,每次下载的问题数量增加。结论我们希望我们的结果和我们提出的质量度量将有助于更准确地衡量软件的发布质量并激发该领域的进一步研究。
更新日期:2020-02-19
down
wechat
bug