Slope-based fault-proneness thresholds for software engineering measures

S. Morasca, L. Lavazza
{"title":"Slope-based fault-proneness thresholds for software engineering measures","authors":"S. Morasca, L. Lavazza","doi":"10.1145/2915970.2915997","DOIUrl":null,"url":null,"abstract":"Background. Practical use of a measure X for an internal attribute (e.g., size, structural complexity, cohesion, coupling) of a software module often requires setting a threshold on X, to make decisions as to which software modules may be estimated to be potentially faulty. To keep quality under control, practitioners may want to set a threshold on X to identify \"early symptoms\" of possible faultiness of a module, which should be closely monitored and possibly modified. Objective. We propose and evaluate an approach to setting a threshold on X to identify \"early symptoms\" of possible faultiness of software modules. Method. Our proposal is based on the existence of a statistically significant model that relates X to fault-proneness, defined as the probability that a module contains at least one fault. The curve representing a fault-proneness model is usually fairly \"flat\" for relatively small values of X and becomes steeper and steeper for larger values of X. We define two ways in which values of X can be used as \"early symptoms\" of possible faultiness. First, we use the value of X where the fault-proneness model curve changes direction the most, i.e., has maximum convexity. Second, we use the value in which the slope of the curve reaches a proportion (e.g., one half) of the maximum slope that is relevant for the developers. Results. First, we provide the theoretical underpinnings for our approach. Second, we show the empirical results obtained by applying our approach to data from the PROMISE repository by using fault-proneness models built via Binary Logistic and Probit regressions. Our results show that the proposed thresholds are actually effective in showing \"early symptoms\" of possible faultiness of a module, while achieving a level of accuracy in classifying faulty modules that is fairly close to other typical fault-proneness thresholds. Conclusions. Our method can be practically used for setting \"early symptom\" thresholds based on evidence captured by statistically significant models. In particular, the threshold based on the maximum convexity depends on characteristics of the models alone, so software project managers do not need to devise the thresholds themselves. If they choose to use the other kind of slope-based threshold, software project managers can choose a different proportion based on the level of risk-aversion they need when recognizing early symptoms of faultiness.","PeriodicalId":429555,"journal":{"name":"Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering","volume":"27 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2915970.2915997","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

Background. Practical use of a measure X for an internal attribute (e.g., size, structural complexity, cohesion, coupling) of a software module often requires setting a threshold on X, to make decisions as to which software modules may be estimated to be potentially faulty. To keep quality under control, practitioners may want to set a threshold on X to identify "early symptoms" of possible faultiness of a module, which should be closely monitored and possibly modified. Objective. We propose and evaluate an approach to setting a threshold on X to identify "early symptoms" of possible faultiness of software modules. Method. Our proposal is based on the existence of a statistically significant model that relates X to fault-proneness, defined as the probability that a module contains at least one fault. The curve representing a fault-proneness model is usually fairly "flat" for relatively small values of X and becomes steeper and steeper for larger values of X. We define two ways in which values of X can be used as "early symptoms" of possible faultiness. First, we use the value of X where the fault-proneness model curve changes direction the most, i.e., has maximum convexity. Second, we use the value in which the slope of the curve reaches a proportion (e.g., one half) of the maximum slope that is relevant for the developers. Results. First, we provide the theoretical underpinnings for our approach. Second, we show the empirical results obtained by applying our approach to data from the PROMISE repository by using fault-proneness models built via Binary Logistic and Probit regressions. Our results show that the proposed thresholds are actually effective in showing "early symptoms" of possible faultiness of a module, while achieving a level of accuracy in classifying faulty modules that is fairly close to other typical fault-proneness thresholds. Conclusions. Our method can be practically used for setting "early symptom" thresholds based on evidence captured by statistically significant models. In particular, the threshold based on the maximum convexity depends on characteristics of the models alone, so software project managers do not need to devise the thresholds themselves. If they choose to use the other kind of slope-based threshold, software project managers can choose a different proportion based on the level of risk-aversion they need when recognizing early symptoms of faultiness.
软件工程测量中基于坡度的故障倾向阈值
背景。对于软件模块的内部属性(例如,大小、结构复杂性、内聚性、耦合性)的度量X的实际使用通常需要在X上设置一个阈值,以决定哪些软件模块可能被估计为潜在的错误。为了控制质量,从业者可能希望在X上设置一个阈值,以识别模块可能存在缺陷的“早期症状”,并对其进行密切监控和可能的修改。目标。我们提出并评估了一种在X上设置阈值以识别软件模块可能存在缺陷的“早期症状”的方法。方法。我们的建议是基于一个统计显著模型的存在,该模型将X与故障倾向性联系起来,定义为模块包含至少一个故障的概率。对于相对较小的X值,表示断层倾向模型的曲线通常相当“平坦”,而对于较大的X值,曲线变得越来越陡峭。我们定义了两种方法,可以将X值用作可能存在断层的“早期症状”。首先,我们使用断层倾向模型曲线方向变化最大的X值,即凸性最大的X值。其次,我们使用曲线斜率达到与开发人员相关的最大斜率的比例(例如,二分之一)的值。结果。首先,我们为我们的方法提供了理论基础。其次,我们通过使用通过二进制逻辑和Probit回归构建的故障倾向模型,将我们的方法应用于PROMISE存储库中的数据,展示了经验结果。我们的研究结果表明,所提出的阈值实际上在显示模块可能存在故障的“早期症状”方面是有效的,同时在对故障模块进行分类时达到了相当接近其他典型故障倾向阈值的精度水平。结论。我们的方法可以实际用于根据统计显著性模型捕获的证据设置“早期症状”阈值。特别是,基于最大凸性的阈值仅依赖于模型的特征,因此软件项目经理不需要自己设计阈值。如果他们选择使用另一种基于斜率的阈值,软件项目经理可以根据他们在识别缺陷的早期症状时所需要的风险厌恶程度来选择不同的比例。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信