BioDefect: The First Dataset for Defect Detection in Bioinformatics Software
School of Computer Science and Technology, Xi'an Jiaotong University(西安交通大学计算机科学与技术学院)
本研究提出了BioDefect数据集,用于生物信息学软件缺陷检测,通过引入完整的源代码仓库来提高缺陷检测的准确性,并在九种语言模型上进行了系统评估,展示了其在提升缺陷检测性能方面的显著优势。
2026-05-20 cs.SE
Effective Defect Prevention Approach in Software Process for Achieving Better Quality Levels
在任何项目中,缺陷预防是软件质量保证中最重要但通常被忽视的方面。如果在软件开发的所有阶段都能发挥作用,它可以压缩设计高质量产品所需的时间、开销和资金。IT行业的关键挑战是设计一个软件产品,使其部署后的缺陷最小化。这项工作是一项分析的基础上获得的数据为五个选定的项目,从领先的软件公司不同的软件生产能力。本文的主要目的是提供各种方法和实践的信息,支持缺陷检测和预防导致蓬勃发展的软件生成。缺陷预防技术可以发现99%的缺陷。检查被发现是一个重要的技术,在产生理想的软件生成工厂通过增强的方法,教唆和独立的检查时间表。在整个项目工作时间中,平均需要13%-15%的检查和25% - 30%的测试,以消除99% - 99.75%的缺陷。对公司之间五个选定项目的最终结果进行比较,也有助于了解特定公司是否有可能利用适当的检查测试补充比例来定位自己。
2010-01-20 cs.SE
Model based approach to study Defect Dependency in Large Scale Integrated Software Products
大型组织拥有多种产品以满足各种业务需求。为了增加收入,现在通常将软件产品作为集成的产品套件而不是单独的产品提供。在集成产品套件中创建和维护高质量的软件产品需要严格的产品工程方法。产品和相关依赖项的庞大规模往往会引发无法识别的缺陷,这些缺陷可能在产品升级后或每个发布周期后成为关键。很难跟踪此类缺陷及其在基础子产品中的广泛分布。本文提出了一种基于模型的方法来研究大规模集成软件产品中的缺陷依赖性,以避免产品发布后的意外缺陷。为了验证该方法的有效性,我们将其应用于工业中的一些试点项目。
2017-09-30 cs.SE
Explainable Software Defect Prediction: Are We There Yet?
解释软件缺陷预测模型的预测结果是一项具有挑战性和实用性的任务,它可以为开发人员提供有用的信息,以了解和修复预测的错误。为了解决这个问题,最近,Jiarpakdee等人提出使用{两种最先进的}模型不可知技术(即,LIME和BreakDown)来解释缺陷预测模型的预测结果。他们的实验表明,这些工具可以生成有希望的结果,生成的解释可以帮助开发人员理解预测结果。然而,事实上,LIME和BreakDown仅在单个软件缺陷预测模型设置上进行了检查,这使得人们对它们在具有各种设置的软件缺陷预测模型中的一致性和可靠性提出了质疑。在本文中,我们着手研究基于模型不可知技术的解释生成方法(即,LIME和BreakDown)对具有不同设置的软件缺陷预测模型的影响,例如,不同的数据采样技术、不同的机器学习分类器和不同的预测场景。具体来说,我们使用LIME和BreakDown来生成具有不同设置的软件缺陷预测模型下的相同实例的解释,然后检查实例的生成解释的一致性。在我们的实验中,我们重用了来自Jiarpakdee等人的相同缺陷数据。结果表明,对于相同的测试实例,在不同的软件缺陷预测设置下,LIME和BreakDown产生的解释不一致,这使得它们产生的解释不可靠。总的来说,通过这项研究,我们呼吁在可解释的软件缺陷预测方面进行更多的研究,以实现一致和可靠的解释。
2021-11-21 cs.SE
Towards Developing and Analysing Metric-Based Software Defect Severity Prediction Model
在一个关键的软件系统中,由于缺陷的不断出现,测试人员不得不花费大量的时间和精力来维护软件。在这些缺陷中,一些严重的缺陷可能会对软件产生不利影响。为了减少测试人员的时间和精力,文献中已经提出了许多机器学习模型,其使用文档化的缺陷报告来自动预测有缺陷的软件模块的严重性。与传统的方法相比,在这项工作中,我们提出了一个基于度量的软件缺陷严重性预测(SDSP)模型,使用自训练半监督学习的方法来分类的严重性有缺陷的软件模块。该方法是建立在未标记和标记的缺陷严重性数据的混合物。自训练工作的基础上的决策树分类器分配的伪类标签的未标记的实例。预测是有希望的,因为自我训练成功地分配合适的类标签的未标记的实例。另一方面,许多研究已经涵盖了提出预测方法以及缺陷严重性预测模型的方法学方面,从预测模型估计项目属性的差距仍然没有得到解决。为了弥补这一差距,我们提出了五个项目特定的措施,如风险因素(RF),节省预算的百分比(PSB),节省预算的损失(LSB),剩余服务时间(ESTA)和免费服务时间(GST)从预测中捕获项目结果。类似于传统的措施,这些措施也计算从观察到的混淆矩阵。这些度量用于分析预测模型对软件项目的影响。
2022-10-10 cs.SE
Estimation of Defect proneness Using Design complexity Measurements in Object- Oriented Software
软件工程不断面临着软件包日益复杂和软件生产过程中缺陷和缺点数据水平不断提高的挑战。这就要求有新的发明和方法来实现更可重用、更可靠、更易于维护和更高质量的软件系统,并对软件生成过程进行更深层次的控制。质量和生产率确实是控制任何工业过程的两个最重要的参数。成功的控制系统的实施需要一些测量手段。软件度量在软件开发过程的管理方面起着重要的作用,如更好的规划,评估改进,资源分配和减少不可预测性。涉及早期发现潜在问题、生产力评估和评估外部质量因素(如可重用性、可维护性、缺陷倾向性和复杂性)的过程至关重要。在这里,我们讨论的CK度量和估计模型的应用,以预测外部质量参数,优化设计过程和生产过程中所需的质量水平。提出了一种新的面向对象系统设计级缺陷倾向性估计方法,建立了CK度量与缺陷倾向性指数之间的关系模型。一个多功能的估计方法捕捉CK度量和软件模块的缺陷倾向水平之间的相关性。
2010-01-20 cs.SE
Software Process Improvement Based on Defect Prevention Using Capability and Testing Model Integration in Extreme Programming
软件过程改进(Software Process Improvement,SPI)在不断净化软件质量的过程中得到了广泛的关注。以前有几种敏捷方法与极限编程(XP)一起使用。在改进过程之前,缺陷预防(DP)是不可避免的。此外,DP在很大程度上取决于缺陷检测,要么在设计和实现阶段发现,要么在测试阶段。然而,测试成熟度模型集成(TMMI)在DP以及软件过程改进中具有至关重要的作用。特别是,当软件通过测试和修复缺陷得到验证时,它实现了以过程改进为目标的最大能力成熟度模型集成(CMMI)。在这里,本文提出了一种改进的缺陷检测和预防模型,以提高软件过程遵循XP的方法。此外,作为一个独特的贡献,我们已经统一了能力和测试模型集成,以确保更好的SPI。
2021-07-12 cs.SE
Benchmarking Machine Learning Technologies for Software Defect Detection
机器学习方法在解决信息较少的问题方面很好。在大多数情况下,软件领域问题的特点是一个学习的过程,取决于各种情况和相应的变化。通过使用机器学习方法构建预测模型,并将其分类为有缺陷和无缺陷模块。机器学习技术帮助开发人员在分类后检索有用的信息,并使他们能够从不同的角度分析数据。机器学习技术在软件缺陷预测方面被证明是有用的。这项研究使用了软件模块的公共可用数据集,并提供了不同的机器学习技术用于软件错误预测的比较性能分析。结果表明,大多数机器学习方法在软件缺陷数据集上表现良好。
2015-06-24 cs.SE
Software Defect Prediction by Online Learning Considering Defect Overlooking
该研究指出在线学习式软件缺陷预测中,负向预测会导致测试用例减少、缺陷遗漏,错误测试数据反哺训练会降低预测准确率,并通过实验验证了该负面影响。
2023-08-25 cs.SE
Implementing Effective Changes in Software Projects to Optimize Runtimes and Minimize Defects
本研究探索软件项目中学习和实施有效变更的策略,通过混合方法分析变更前后数据,识别关键技术并提供建议,显著优化运行时间、减少缺陷,为软件工程持续改进提供框架。
2025-02-25 cs.SE
Four-Step Approach Model of Inspection (FAMI) for Effective Defect Management in Software Development
IT行业应该不断灌输有效的缺陷管理,以向客户部署几乎零缺陷的产品。检查是缺陷管理中最重要、最有效的策略之一。尽管如此,领先软件行业现有的缺陷管理策略成功地提供了最高96%的无缺陷产品。对几个基于服务和基于产品的行业的各种项目的实证研究证明了上述肯定。本文提出了一种改进的检查方法,通过检查的四步方法模型(FAMI)。FAMI包括:i)将检查生存周期集成到软件开发的V模型中,ii)实施过程度量检查深度(DI),iii)实施人员度量检查性能度量(IPM),iv)应用贝叶斯概率方法选择适当的检查影响参数值,以实现理想的DI。软件公司的管理者可以利用P2度量作为项目的基准工具,以改善内部缺陷管理过程。FAMI在软件行业的实施反映了持续的过程改进,并通过有效的缺陷管理导致了几乎零缺陷产品的开发。
2012-09-28 cs.SE
Evaluation of the Design Metric to Reduce the Number of Defects in Software Development
软件设计是系统开发生存周期(SDLC)阶段中最重要、最关键的活动之一,是软件质量的保证。在设计软件时,不同的关键设计领域是非常重要的。软件设计描述了软件系统如何分解和管理更小的组件。面向对象(OO)范式为软件工业提供了更可靠、更易管理的软件及其设计。软件设计的质量可以通过不同的度量来衡量,例如Chidamber和Kemerer(CK)设计度量,Mood和Lorenz以及Kidd度量。CK度量是软件行业用来评估OO设计的所有度量中最古老和最可靠的度量之一。本文提出了一个评估的CK度量,提出了一个改进的CK设计度量值,以减少软件设计阶段的软件缺陷。本文还将描述任何CK设计指标是否对每个模块的缺陷总数存在显著影响。这是通过在两家软件开发公司进行调查来实现的。
2012-04-22 cs.SE
Explainable Software Defect Prediction from Cross Company Project Metrics Using Machine Learning
本研究针对现有缺陷预测多聚焦模块级、模型缺乏透明度的问题,基于跨公司项目级度量数据,采用多种机器学习算法构建缺陷预测模型,并通过SHAP方法实现模型可解释性,识别出关键预测特征。
2023-06-14 cs.SE
Defect Management Strategies in Software Development
软件是一个独特的实体,它对所有其他与软件相关或不相关的领域产生了强烈的影响。这些领域包括医疗、科学、商业、教育、国防、运输、电信等。国家的最先进的专业领域的活动需要开发高质量的软件。高质量的软件是指没有缺陷的产品,能够产生可预测的结果,并在时间和成本限制内交付。它应该是可控的,干扰最小。它还应该是可维护的,可靠的,可理解的和有效的。因此,由于当今商业世界的竞争日益激烈,技术进步,硬件复杂性和频繁变化的业务需求,需要采用系统化的方法进行高质量的软件开发。
2012-09-25 cs.SE
Feature Importance in the Context of Traditional and Just-In-Time Software Defect Prediction Models
本研究基于Apache Camel项目数据,对比深度学习与传统机器学习在传统和即时缺陷预测中的性能,并用积分梯度和SHAP方法分析特征重要性。
2024-11-07 cs.SE
An Analytical Approach for Project Managers in Effective Defect Management in Software Process
在任何软件行业中,缺陷估计和预测都是软件项目成功的主要调节因素。项目经理在有效预测和评估资源能力方面的成熟度和能力是产生高质量软件的战略驱动力之一。目前,还没有通过实证分析开发的评估技术来评估项目经理对有效缺陷管理的资源分配的决策能力。本文提出了一个基于产品的软件组织中进行的实证研究。通过对几个项目的深入调查,揭示了项目经理决策能力对实现上述目标的影响。本文使项目管理人员进一步认识到预测定位在资源分配中的重要性,以开发高质量的无缺陷软件产品。它还提高了公司的成熟度和在竞争环境中的持久性。
2012-03-29 cs.SE
Defect Prediction Guided Search-Based Software Testing
如今,大多数自动化测试生成器,例如基于搜索的软件测试(SBST)技术,都致力于实现高代码覆盖率。然而,高代码覆盖率不足以最大限度地提高发现的bug数量,特别是在测试预算有限的情况下。在本文中,我们提出了一个自动化的测试生成技术,也是由估计的源代码的缺陷程度的指导。代码中可能有更多缺陷的部分比缺陷较少的部分得到更多的测试预算。为了测量缺陷的程度,我们利用了Schwa,一种著名的缺陷预测技术。我们将我们的方法实现到EvoSuite中,EvoSuite是Java的最先进的SBST工具。我们在Defects4J基准测试上的实验证明了缺陷预测引导测试生成的效率提高,并证实了我们的假设,即在可能有缺陷的部件上花费更多的时间预算会增加在相同时间预算中发现的错误数量。
2021-09-26 cs.SE
Software Defect Prediction Using Support Vector Machine
软件缺陷预测是软件开发过程中的一项重要任务,它可以帮助管理人员识别出最易出现缺陷的模块。从而降低了测试成本,有效地分配了测试资源。许多分类方法可以用来确定软件是否有缺陷。由于支持向量机在不同的数据集和参数设置下的不稳定性,使得支持向量机在这类问题中的应用并不广泛。影响精度的主要参数是核函数的选择。核函数的使用在以前的论文中没有得到深入的研究。因此,本研究以六种不同的核函数来检验支持向量机的效能与准确度。来自PROMISE项目的各种公共数据集实证验证了我们的假设。结果表明,没有核函数可以在不同的实验设置提供稳定的性能。此外,使用PCA作为特征约简算法在某些数据集上显示出轻微的准确性提高。
2022-09-10 cs.SE
DBBRBF- Convalesce optimization for software defect prediction problem using hybrid distribution base balance instance selection and radial basis Function classifier
针对软件缺陷预测数据的类别不平衡问题,提出结合分布基平衡实例选择与径向基函数分类器的DBBRBF方法,在多类不平衡数据集上验证了有效性并通过统计检验确认适用性。
2018-06-08 cs.SE
Does class size matter? An in-depth assessment of the effect of class size in software defect prediction
在过去的20年里,缺陷预测研究已经普遍承认类大小对软件预测性能的影响。为了量化面向对象(OO)度量和缺陷之间的关系,建模必须考虑类大小对缺陷的直接和潜在的间接影响。然而,一些研究表明,在建立预测模型时,不能简单地控制或忽略大小。因此,是否以及何时控制班级规模仍然是一个问题。这项研究提供了一个新的深入检查类大小的影响之间的关系,面向对象的度量和软件缺陷或缺陷倾向。我们评估类大小对软件系统中缺陷和缺陷倾向的数量的影响,通过采用基于回归的调解(自举)和适度分析,调查类大小在计数和二进制缺陷预测中的直接和间接影响。我们的研究结果表明,规模效应并不总是显着的所有指标。在我们研究的七个OO指标中,大小一致地仅对对象之间的耦合(CBO)和缺陷/缺陷倾向性之间的关系具有显著的中介影响,并且对扇出和缺陷/缺陷倾向性之间的关系具有潜在的适度影响。根据研究结果,我们提出三点建议。第一,我们鼓励研究人员和从业人员研究班级规模对他们手头的具体数据的影响,并通过使用拟议的统计调解/调节程序。第二,我们鼓励实证研究在相关的情况下调查其模型中可能的附加变量的间接影响。第三,本研究所采用的统计方法可用于其他经验软件工程研究,以调查潜在的中介/调节者的影响。
2021-06-08 cs.SE
A Review On Software Defects Prediction Methods
Nirma University(尼尔玛大学)
软件质量是软件的重要方面之一。随着需求的增加,软件设计变得越来越复杂,增加了软件缺陷的可能性。测试人员通过修复缺陷来提高软件的质量。因此,缺陷分析可以显著提高软件质量。软件的复杂性也会导致更多的缺陷,因此手动检测可能会成为一个非常耗时的过程。这给了研究人员开发自动软件缺陷检测技术的动力。在本文中,我们试图分析最先进的机器学习算法的软件缺陷分类的性能。我们使用了来自NASA Promise数据库的七个数据集进行这项研究工作。神经网络和梯度提升分类器的性能优于其他算法。
2020-11-17 cs.LG cs.SE
A deep tree-based model for software defect prediction
缺陷在软件系统中是常见的,并且可能对软件用户造成各种问题。已经开发了不同的方法来快速预测大型代码库中最可能的缺陷位置。他们中的大多数专注于设计与潜在缺陷代码相关的功能(例如复杂性度量)。然而,这些方法不足以捕获源代码的语法和不同级别的语义,这是构建准确预测模型的重要能力。在本文中,我们开发了一种新的预测模型,它能够自动学习的功能,代表源代码,并使用它们的缺陷预测。我们的预测系统是建立在强大的深度学习,树结构的长短期记忆网络,直接匹配源代码的抽象树表示。对两个数据集的评估,一个来自三星贡献的开源项目,另一个来自公共PROMISE存储库,证明了我们的方法对项目内和跨项目预测的有效性。
2018-02-03 cs.SE
On the Value of Oversampling for Deep Learning in Software Defect Prediction
深度学习的一个真理是,自动特征工程(在这些网络的第一层中可见)使数据科学家在运行深度学习之前不必执行繁琐的手动特征工程。对于缺陷预测的深度学习的特定情况,我们证明了这一真理是错误的。具体来说,当我们使用称为模糊采样的新型过采样技术预处理数据时,作为称为GHOST(面向目标的可扩展训练超参数优化)的更大管道的一部分,我们可以在14/20缺陷数据集中做得比现有的DL技术更好。我们的方法产生了最先进的结果,大大加快了深度学习者的速度。这些结果为在软件缺陷预测数据集上应用深度学习之前使用过采样提供了令人信服的案例。
2021-04-20 cs.SE
Managing Human-Centric Software Defects: Insights from GitHub and Practitioners' Perspectives
该研究通过分析 GitHub 上 1,100 个开源 issue 并访谈 15 名从业者,识别人本缺陷的类别与现有报告流程不足,提出改进 HCDs 管理的缺陷报告工具实践。
2024-08-03 cs.SE
Effectiveness Of Defect Prevention In I.T. For Product Development
缺陷预防是任何项目中软件质量保证中最关键但最容易被忽视的组成部分。如果应用于软件开发的所有阶段,它可以减少设计高质量产品所需的时间,成本和资源。软件检查已被证明是最有效和高效的技术,使缺陷检测和预防。在软件生存周期的所有阶段进行的检查已被证明是最有益的,并增加了软件属性的价值。工作是基于从一家领先的产品公司收集的三个不同项目的数据进行分析。本文的目的是表明,55%至65%的总数量的缺陷发生在设计阶段。本文的立场还强调了在产品开发生存周期的所有阶段进行检查的重要性,以实现最小的部署后缺陷。
2010-01-21 cs.SE
How do software practitioners perceive human-centric defects?
本研究通过调查和访谈软件从业者,发现以人为中心的缺陷(HCDs)管理存在认知不足和流程缺口,并提出改进反馈、分类和自动化以提升其管理。
2024-02-05 cs.SE
Assessing Software Defection Prediction Performance: Why Using the Matthews Correlation Coefficient Matters
背景:在评估软件缺陷预测分类器的计算实验的范围和设计方面存在相当大的差异。关于分类器性能指标的选择,尤其如此。不幸的是,一些广泛使用的指标是有偏差的,特别是F1。目的:我们想了解F1的广泛使用使软件缺陷预测的经验结果不可靠的程度。方法:我们搜索了报告F1和Matthews相关系数(MCC)的缺陷预测研究。这使我们能够确定两个指标之间一致的结果比例以及变化的比例。结果:我们的系统评价确定了8项研究,包括4017个成对结果。在这些结果中,当采用无偏MCC度量时,比较的方向在23%的情况下改变。结论:我们找到了令人信服的原因,为什么分类性能指标的选择很重要,特别是有偏见和误导性的F1指标应该被弃用。
2020-03-02 cs.SE
Efficacy of static analysis tools for software defect detection on open-source projects
本研究针对Java、C++、Python三种语言的多个数据集,对比SonarQube等四款主流静态分析工具的缺陷检测性能,发现SonarQube表现最优,为工具选择提供参考并指明未来改进方向。
2024-05-20 cs.SE
Evaluating software defect prediction performance: an updated benchmarking study
准确地预测错误的软件单元可以帮助从业者瞄准错误的单元,并优先考虑他们的工作,以保持软件质量。之前的研究使用机器学习模型来检测错误的软件代码。我们回顾过去的研究,并指出潜在的改进。我们的新研究提出了一个修订的基准配置。该配置考虑了许多新的维度,例如类分布抽样、评估指标和测试程序。这项新研究还包括新的数据集和模型。我们的研究结果表明,预测的准确性通常是好的。然而,预测能力受到评估指标和测试程序(频率论或贝叶斯方法)的严重影响。分类器的结果取决于软件项目。虽然很难选择最好的分类器,但研究人员应该考虑不同的维度来克服潜在的偏见。
2019-01-07 cs.SE
Using Defect Prediction to Improve the Bug Detection Capability of Search-Based Software Testing
自动测试生成器,如基于搜索的软件测试(SBST)技术,取代了手动编写测试用例的繁琐和昂贵的任务。SBST技术在生成具有高代码覆盖率的测试时是有效的。然而,高代码覆盖率是否足以最大限度地增加发现的bug数量?我们认为,SBST需要集中在有缺陷的领域,而不是在非缺陷的代码领域,以最大限度地发现错误的可能性搜索测试用例。缺陷预测算法提供了有关软件中容易出现错误的区域的有用信息。因此,我们制定了本论文的目标:\textit{Improve the bug detection capability of SBST by incorporating defect prediction information}。为了实现这一目标,我们设计了两个研究目标,即,1)开发一种新的方法(SBST $_{CL}$),该方法基于类有缺陷的可能性将时间预算分配给类,以及2)开发一种新的策略(SBST $_{ML}$)来指导底层搜索算法(即,遗传算法)对一类中的缺陷区域进行优化。通过对Defects4J数据集中434个真实报告的错误进行实证评估,我们证明了我们的新方法SBST $_{CL}$在资源受限的环境中,在时间预算紧张的情况下,比最先进的SBST更有效。
2022-06-14 cs.SE
The Need for a Fine-grained approach in Just-in-Time Defect Prediction
随着软件系统的复杂性导致软件缺陷的增加,已经对预测软件缺陷的技术和预测代码更改是否有缺陷的即时(JIT)缺陷预测进行了研究。虽然使用功能来确定潜在的有缺陷的代码更改,但检查工作仍然很重要。由于代码更改可能会影响多个文件,因此我们调查了一个开源项目,以确定JIT视角下功能的潜在差距。此外,由于缺乏将功能与实际提交联系起来的公开可用的JIT数据集,我们还提出了一个可用于JIT和语义分析的新数据集。
2021-10-02 cs.SE
SDPERL: A Framework for Software Defect Prediction Using Ensemble Feature Extraction and Reinforcement Learning
针对复杂环境下软件缺陷预测难题,提出集成特征提取与强化学习结合的SDPERL框架,通过多模型提特征、ACO启发的RL选特征,在PROMISE数据集上F1-Score较基线平均提升6.25%。
2024-12-15 cs.SE
Practitioners' Perceptions of the Goals and Visual Explanations of Defect Prediction Models
软件缺陷预测模型是从历史软件数据构建的分类器。这种软件缺陷预测模型已经被提出来帮助开发人员优化有限的软件质量保证(SQA)资源,并帮助管理人员制定SQA计划。以前的研究有不同的目标,他们的缺陷预测模型,并使用不同的技术来生成他们的模型的视觉解释。然而,目前还不清楚从业者对(1)这些缺陷预测模型目标和(2)用于可视化这些模型的模型无关技术的看法。我们进行了一项定性调查,以调查从业者的缺陷预测模型的目标和模型无关的技术,用于生成缺陷预测模型的视觉解释的看法。我们发现,(1)82%-84%的受访者认为缺陷预测模型的三个目标是有用的;(2)LIME是理解有助于预测文件的最重要特征的最首选技术,而ANOVA/VarImp是理解与过去软件缺陷相关的特征的第二首选技术。我们的研究结果突出了调查如何提高对缺陷预测模型及其预测的理解的重要性。因此,来自可解释AI领域的模型不可知技术可以帮助从业者理解缺陷预测模型及其预测。
2021-02-24 cs.SE
Revisiting the Impact of Dependency Network Metrics on Software Defect Prediction
通过应用社会网络分析(SNA度量)从软件模块的依赖图中提取软件依赖网络度量,已被证明可以提高软件缺陷预测(SDP)模型的性能。然而,这些SNA指标在提高SDP模型性能方面相对于代码指标的相对有效性一直受到广泛讨论,没有明确的共识。此外,一些常见的SDP场景,如预测跨版本和跨项目SDP上下文中的模块中的缺陷数量(缺陷计数)仍然没有探索。与广泛使用的代码度量相比,SNA度量的有效性缺乏明确的指导,这使我们无法构建性能更好的SDP模型。因此,通过对30个版本的9个开源软件项目的案例研究,我们研究了SNA指标与3个常用SDP上下文(项目内,跨版本和跨项目)和场景(缺陷计数,缺陷分类(如果模块有缺陷,则进行分类)和工作量感知(将缺陷模块排名为所涉及的工作量))的代码指标相比的相对有效性。我们发现SNA度量本身或与代码度量一起提高了SDP模型的性能,而不仅仅是在9个研究的SDP场景中的5个场景(三个SDP场景,三个SDP上下文)上使用代码度量。然而,我们注意到,在某些情况下,通过考虑SNA度量或与代码度量一起考虑SNA度量所提供的改进可能只是微不足道的,而在其他情况下,改进可能是巨大的。基于这些研究结果,我们建议未来的工作应该:考虑SNA度量在其SDP模型中的代码度量;以及考虑自我度量和全局度量,这两种不同类型的SNA度量在训练SDP模型时分开,因为它们的行为不同。
2022-02-12 cs.SE
From Illusion to Insight: Change-Aware File-Level Software Defect Prediction Using Agentic AI
Sharif University of Technology(谢里夫理工大学)
本文提出了一种基于代理AI的变更感知文件级软件缺陷预测方法,通过多代理辩论框架提升缺陷预测的准确性和敏感性。
2025-12-29 cs.SE
Reflections on Software Failure Analysis
失败研究对于揭示软件系统中缺陷的根本原因、行为和生存周期是非常重要的。这些研究要么侧重于理解特定类别系统中缺陷的特征,要么侧重于理解其所体现的系统中特定类型缺陷的特征。失败研究影响了软件工程的各个研究方向,特别是在软件演化、缺陷检测和程序修复等领域。在本文中,我们反映了在软件工程中进行失败研究。我们回顾了52篇失败研究论文的样本。我们在这些研究中发现了几个反复出现的问题,其中一些问题阻碍了工程界信任或复制结果的能力。基于我们的研究结果,我们建议未来的研究方向,包括识别和分析故障因果链,标准化的故障研究的行为,以及更快的缺陷分析工具的支持。
2022-09-22 cs.SE
Application of Orthogonal Defect Classification for Software Reliability Analysis
采用数字仪表和控制系统(DI&C)对现有和新建核电厂进行现代化改造是一个最近的热门话题。然而,美国(U.S.)核管理委员会(NRC)和工业界。在这项工作中,我们开发了一种方法,称为软件可靠性评估(ORCAS)的软件缺陷分类,以量化的DI&C系统中的各种软件故障模式的概率。该方法采用公认的行业质量保证方法,并通过实验证据进行验证。本质上,该方法结合了语义故障分类模型和可靠性增长模型来预测软件系统故障模式的概率。案例研究是在一个代表性的I&C平台(Chibios)上进行的,该平台运行由弗吉尼亚联邦大学(VCU)开发的智能传感器采集软件。应用了ORCAS中的测试和证据收集指南,发现了软件中的缺陷。定性证据,如修改的条件决策覆盖率,被用来衡量的完整性和可信度的评估,而定量证据被用来确定软件故障概率。然后估计软件的可靠性,并将其与传感器设备的现有操作数据进行比较。它表明,通过使用ORCAS,可以开发一个语义推理框架,以证明如果软件是可靠的(或不可靠的),同时仍然利用现有方法的强度。
2022-05-24 cs.SE
Defect patterns and software metric correlations in a mature ubiquitous system
软件工程不是一门基于经验的学科。因此,它的许多做法只不过是基于一种普遍认同的感觉,即某事可能是真的。问题的部分原因在于,它相对年轻,而且在新的和经常相互竞争的方法论方面异常丰富。因此,在技术发展之前,几乎没有时间来推断重要的经验行为模式。非常偶然的机会出现在一个良好指定的软件系统中,该软件系统也有良好的文档记录并在很长一段时间内大量使用。在这里,我们分析的缺陷增长和结构模式,在这样一个系统中,一个数值库编写的Fortran在30年的发展。这对更广泛的社区很重要,原因有二。首先,研究结果对长期存在的语言独立信念产生了重大怀疑,其次,其中一些信念在现代技术中得以延续。因此,使用经验性的长期数据是很有意义的,因为它可以用来重新校准这些概括。最后,我们分析了缺陷聚集现象,为它的存在提供了进一步的实证支持。
2019-12-06 cs.SE
An Empirical Study on the Effectiveness of Data Resampling Approaches for Cross-Project Software Defect Prediction
跨项目缺陷预测(CPDP),其中来自不同的软件项目的数据被用来预测缺陷,已被提出作为一种方式来提供数据的软件项目,缺乏历史数据。最近的研究表明,使用最近邻(NN)滤波器方法对CPDP模型进行评估的结果很有希望。缺陷预测数据集的一个关键挑战是类不平衡,这是一个高度倾斜的数据集,其中非错误模块占主导地位的错误模块。在过去,数据恢复方法已被应用于项目内缺陷预测模型,以帮助减轻数据集中类不平衡的负面影响。为了解决CPDP中的类不平衡问题,作者评估了应用NN过滤器后数据恢复方法对CPDP模型的影响。研究了五种过采样方法(MAHAKIL,SMOTE,Borderline-SMOTE,Random Oversampling和ADASYN)和三种欠采样方法(Random Undersampling,Tomek Links和Onesided selection)对预测性能的影响,并将结果与没有数据恢复的方法进行了比较。作者在从PROMISE库中提取的34个数据集上检查了6个缺陷预测模型。作者的研究结果表明,有一个显着的积极影响,CPDP性能的数据恢复,这表明软件质量团队和研究人员应该考虑应用数据恢复方法,提高召回(PD)和g-测量预测性能。然而,如果目标是提高精度和减少虚警(pf),则应避免数据恢复方法。
2022-06-16 cs.SE
What Makes Software Bugs Escape Testing? Evidence from a Large-Scale Empirical Study
University of North Carolina at Charlotte(北卡罗来纳大学夏洛特分校);University of Naples Federico II(那不勒斯费德里科二世大学);IMT School for Advanced Studies Lucca(卢卡高等研究学院)
本文通过大规模实证研究,分析了软件缺陷在生产环境中的表现与演变,揭示了发布后缺陷集中于老旧、高频修改和高 churn 组件,强调了进化和过程动态对缺陷产生的影响。
2026-04-29 cs.SE
Do the Defect Prediction Models Really Work?
您可以开发一个潜在的预测模型,但我如何才能相信您的模型会使我的软件受益?使用软件缺陷预测(SDP)模型作为工具,我们解决这个基本问题,在机器学习研究。这是一个初步的工作,旨在提供一个分析开发的二进制SDP模型在实时工作环境。
2023-01-13 cs.SE
Exploring software developers' work practices: Task differences, participation, engagement, and speed of task resolution
在寻求理解的过程中制定的软件开发,越来越多的研究挖掘软件库。特别是,研究已经结束,以显示团队如何解决软件缺陷。虽然这些工作很有用,但我们认为,除了与缺陷相关的问题之外,对通常执行的活动范围进行大规模检查,将有助于我们更充分地了解缺陷发生的原因及其后果。更一般地说,这些探索将揭示团队过程如何在所有软件开发工作中发生。因此,我们扩展这样的研究,调查软件从业人员如何工作,同时承担的软件任务,通常执行的范围。多种形式的纵向案例研究的分析表明,软件从业人员主要参与修复缺陷,他们的参与covariate取决于他们所执行的工作的性质。此外,多种外部因素影响任务解决的速度。我们的研究结果表明,行为和内在的问题可能与外在因素相互作用,成为软件任务解决速度的重要预测因素。
2021-04-16 cs.SE
Contrasting the Hyperparameter Tuning Impact Across Software Defect Prediction Scenarios
本研究对比超参数调优在版本内与跨版本两种软件缺陷预测场景中的影响,通过多算法、多数据集的实验发现场景不同调优增益差异显著,建议相关人员考虑场景因素。
2025-10-18 cs.SE
A Hybrid Sampling and Multi-Objective Optimization Approach for Enhanced Software Defect Prediction
本文提出一种结合Borderline SMOTE、Tomek Links混合采样与NSGA-II等多目标优化算法的软件缺陷预测框架,通过特征融合与并行处理提升预测准确率、泛化能力与计算效率,在NASA和PROMISE数据集上优于现有技术。
2024-10-13 cs.SE
Connecting Software Metrics across Versions to Predict Defects
State Key Laboratory for Novel Software Technology, Nanjing University(南京大学计算机软件新技术国家重点实验室);Department of Computer Science and Technology, Nanjing University(南京大学计算机科学与技术系);Institute for Interdisciplinary Information Sciences, Tsinghua University(清华大学交叉信息研究院)
准确的软件缺陷预测可以帮助软件从业者有效地将测试资源分配到容易出现缺陷的模块上。在过去的几十年里,人们一直致力于建立准确的缺陷预测模型,包括开发质量缺陷预测器和建模技术。然而,目前广泛使用的缺陷预测,如代码度量和过程度量不能很好地描述软件模块如何改变项目的发展,我们认为这是重要的缺陷预测。为了解决这一问题,本文提出使用连续软件版本中的历史版本序列作为缺陷预测器。此外,我们利用递归神经网络(RNN),一种流行的建模技术,以HVSM作为输入来构建软件预测模型。实验结果表明,在大多数情况下,所提出的HVSM为基础的RNN模型有一个显着更好的努力意识的排名效率比常用的基线模型。
2017-12-28 cs.LG cs.SE
Continuous Defect Prediction: The Idea and a Related Dataset
我们想介绍我们的连续缺陷预测(CDP)研究的想法以及我们创建和共享的相关数据集。我们的数据集目前是一组超过1100万个数据行,代表持续集成(CI)构建中涉及的文件,这些文件将CI构建的结果与我们从软件存储库中挖掘的数据相结合。我们的数据集包含1265个软件项目,30,022个不同的提交作者和几个软件过程度量,这些度量在早期的研究中似乎对软件缺陷预测有用。在这个特定的数据集中,我们使用TravisTorrent作为CI数据的来源。TravisTorrent综合来自Travis CI服务器和GitHub开源项目存储库的提交级别信息。我们将此数据扩展到文件更改级别,并计算可用于的软件过程度量,例如,作为预测风险软件更改的功能,这些更改如果提交到启用CI的存储库中,可能会破坏构建。
2017-06-22 cs.SE
Feature-Oriented Defect Prediction: Scenarios, Metrics, and Classifiers
在过去的几十年中,已经开发了几种软件缺陷预测技术。这些技术在典型软件资产(如组件和文件)的粒度上预测缺陷。在本文中,我们研究面向功能的缺陷预测:预测缺陷的粒度特征-域实体,代表软件功能,往往横切软件资产。面向故障的缺陷预测可以是有益的,因为:(i)一些特征可能比其他特征更容易出错,(ii)有缺陷的特征的特性可能对预测其他容易出错的特征有用,以及(iii)特征特定的代码可能容易出现由特征交互引起的故障。我们探讨了面向特征的缺陷预测的可行性和解决方案空间。我们的研究依赖于12个软件项目,我们分析了13,685个错误引入和纠正提交,并系统地生成了62,868个训练和测试数据集,以评估分类器,指标和场景。这些数据集是根据我们12个项目的13,685次提交、81次发布和24532次排列生成的,具体取决于所处理的场景。我们讨论了诸如即时(JIT)和跨项目缺陷预测等场景。我们的研究结果证实了面向特征的缺陷预测的可行性。我们发现最好的性能(即,精度和鲁棒性),以及过程和结构度量。令人惊讶的是,单项目JIT和发布级预测的中位AUC-ROC值分别大于95%和90%,这与断言由于训练数据不足而导致性能不佳的研究相反。我们还发现,在12个项目中的一个项目的发布级数据上训练的模型可以预测其他11个项目的特征的缺陷倾向性,AUC-ROC中位数为82%,而无需重新训练。
2021-04-13 cs.SE
Deep Incremental Learning of Imbalanced Data for Just-In-Time Software Defect Prediction
针对JIT-SDP中单一分类、类别平衡破坏数据分布及单一概念漂移问题,提出CPI-JIT增量学习框架,结合时间序列预测与SMOTE-PC过采样技术,构建DeepICP深度神经网络模型,有效提升了预测性能并适应了新的概念漂移。
2023-10-18 cs.SE
Quality of Open Source Systems from Product Metrics Perspective
软件工程和信息系统实践最终寻求创建完美的产品。用来提高软件开发质量的工具之一是度量的使用。本文分析了从开源软件中检索到的指标的质量属性。缺陷密度被认为是软件产品质量的一个强有力的指标。在研究软件质量和缺陷倾向性时,很少有研究考虑缺陷的密度。本研究的分析表明,缺陷密度与不同的显影剂和不同的产品尺寸有关。因此,开源项目的缺陷密度较低,产品越大,缺陷密度越低。此外,这项研究表明,有不同的指标,相互关联,表明这些指标中的一些具有概念和实际相关性。另一种关系是测试bug的数量和度量之间的关系。结果表明,除类内聚方法之间的耦合度外,大多数属性与错误数呈正相关。
2015-11-10 cs.SE
MLD: An Intelligent Memory Leak Detection Scheme Based on Defect Modes in Smart Grids
随着智能电网系统软件规模和复杂性的不断扩大,智能电网软件缺陷检测成为研究热点。由于现有智能电网软件代码规模庞大,现有智能电网缺陷检测算法的效率和准确性都不高。提出了一种基于缺陷模式MLD的智能内存泄漏检测方案。在分析现有内存泄漏缺陷模式的基础上,总结了内存操作行为(分配、释放和转移),提出了一种状态机模型。我们采用基于正则表达式的模糊匹配算法来确定内存操作行为,然后分析状态机的变化来评估源代码中的漏洞。为了提高检测效率,解决函数调用点重复检测的问题,提出了一种内存操作行为的函数摘要方法。实验结果表明,该方法具有较高的检测速度和准确性。该算法能够识别智能电网运行软件的缺陷,保证电网的安全运行。
2020-08-22 cs.SE
Defect Prevention Approaches in Medium Scale it Enterprises
如果软件行业能够吸引客户的全部注意力,那么它就是成功的。如果组织能够生产出高质量的产品,那么这是可以实现的。要确定一个产品是高质量的,它应该没有缺陷,应该能够产生预期的结果。它应该在估计的成本和时间内交付,并以最小的努力进行维护。缺陷预防是任何项目中软件质量保证中最关键但经常被忽视的组成部分。如果应用于软件开发的所有阶段,它可以减少设计高质量产品所需的时间,成本和资源。
2010-01-22 cs.SE
Statistical Analysis of Metrics for Software Quality Improvement
软件产品质量可以定义为产品满足用户需求的特性和特征。任何软件的质量都可以通过遵循定义良好的软件过程来实现。这些软件过程导致各种度量,如项目度量,产品度量和过程度量。软件质量取决于设计和开发软件的过程。即使这个过程可以非常小心地进行,它仍然可以引入一些错误和缺陷。从管理的角度来看,过程度量非常有用。过程度量可用于改进软件开发和维护过程,以消除缺陷,并减少响应时间。本文介绍了在质量审核过程中捕获过程度量的重要性,并试图根据捕获的错误的性质对其进行分类。为减少发现的此类错误和缺陷,建议采取纠正措施。
2018-02-16 cs.SE
When Shared Worlds Break: Demystifying Defects in Multi-User Extended Reality Software Systems
本文通过分析2649份多用户XR真实缺陷报告构建三维缺陷分类体系,明确主要缺陷症状与根因,指出超34%缺陷会严重破坏共享体验,并针对相关方提出质量保障建议。
2025-10-01 cs.SE
An empirical evaluation of the usefulness of Tree Kernels for Commit-time Defect Detection in large software systems
在提交签入时进行缺陷检测可以防止缺陷引入软件系统。目前的缺陷检测方法依赖于基于度量的模型,这些模型不是很准确,并且其结果对开发人员没有直接的用处。我们提出了一种方法来检测bug诱导提交通过比较传入的更改与项目中所有过去的提交,同时考虑那些引入缺陷和那些没有。我们的方法在方法级的粒度上单独考虑提交中的单个更改。这样做有助于开发人员,因为他们被告知需要进一步关注的特定方法,而不是被告知整个提交都有问题。我们的方法将源代码表示为抽象语法树,并使用树内核来估计代码与以前提交的相似性。我们使用子树内核(STK),子集树内核(SSTK)或部分树内核(PTK)进行实验。然后使用K-NN分类器对过去的更改进行分类。我们使用NiCad克隆检测器作为基线,在BigCloneBench基准和Technical Debt数据集上评估我们的方法。我们的BigCloneBench基准测试的实验表明,树内核的方法可以检测克隆与NiCad的MAP相当。此外,在使用Technical Debt数据集进行缺陷检测时,树核的效率最低,MRR、F分数和准确度分别为0.87、0.80和0.82。
2021-06-21 cs.SE