A systematic mapping study on cross-project defect prediction
跨项目缺陷预测作为缺陷预测的一个子课题,已经成为当前研究的热点。在这篇文章中,我们提出了一个系统的映射研究,重点是CPDP,我们发现50个出版物。我们总结了每个出版物提出的方法,并讨论了案例研究的设置和结果。我们发现案例研究的方式存在很大的异质性,因为数据集、分类器、性能指标和基线比较都存在差异。因此,我们无法在定性基础上比较我们的审查结果,即,确定哪些方法对CPDP性能最好。
2017-05-18 cs.SE
Simplification of Training Data for Cross-Project Defect Prediction
跨项目缺陷预测(CPDP)在估计最有可能缺陷倾向的软件组件方面起着重要作用,特别是对于新的或不活动的项目。据我们所知,很少有以前的研究提供明确的指导方针,如何选择合适的训练数据的质量从大量的公共软件存储库。在本文中,我们提出了一种实用的CPDP的训练数据简化方法,考虑到多层次的粒度和过滤策略的数据集。此外,我们还提供了定量的证据,选择一个合适的过滤器的缺陷倾向比。基于对10个开源项目的34个版本的实证研究,我们精心比较了不同的缺陷预测器的预测性能,这些缺陷预测器使用五种知名的分类器,使用不同粒度级别的简化训练数据和两种流行的过滤器。结果表明,在采用多粒度简化方法和适当的滤波器时,基于朴素贝叶斯的预测模型可以获得较好的性能,优于基准方法。
2014-10-09 cs.SE
Towards Cross-Project Defect Prediction with Imbalanced Feature Sets
跨项目缺陷预测(Cross-project defect prediction,CPDP)是一种新兴的软件质量保证技术,特别是在新的或不活跃的项目中,已经提出了一些改进的方法来支持更好的缺陷预测。然而,常规CPDP总是假设训练数据和测试数据的特征都是相同的。因此,很少有人知道是否CPDP与不平衡的功能集(CPDP-IFS)的方法工作得很好。考虑到互联网上缺陷数据集的多样性以及标注数据的高成本,本文提出了一种基于分布特征的实例(对象类)映射的简单方法,并基于三个公共缺陷数据集(即,Promise、ReLink和AEEEM)。此外,实证结果表明,由CPDP和CPDP-IFS组成的混合模型确实在一定程度上提高了常规CPDP的预测性能。
2014-11-16 cs.SE
Implementing Effective Changes in Software Projects to Optimize Runtimes and Minimize Defects
本研究探索软件项目中学习和实施有效变更的策略,通过混合方法分析变更前后数据,识别关键技术并提供建议,显著优化运行时间、减少缺陷,为软件工程持续改进提供框架。
2025-02-25 cs.SE
An empirical study of public data quality problems in cross project defect prediction
背景:Jureczko和NASA两个公开的缺陷数据集已被广泛用于跨项目缺陷预测(CPDP)。缺陷数据的质量是影响缺陷预测性能的一个重要因素,Shepperd等人研究了NASA数据集的数据质量问题。然而,到目前为止,还没有研究集中在Jureczko数据集的质量问题,这是最广泛使用的CPDP。目标:在本文中,我们打算研究Jureczko数据集中的相同和不一致情况的问题,并验证删除这些有问题的情况是否会对CPDP中的缺陷预测性能产生影响。方法:分别从单个数据集和不同版本的数据集两个方面分析了软件项目中的相同和不一致问题。然后,通过删除重复和不一致的情况,提供Jureczko数据集的清理版本。最后,采用三种训练数据选择方法,比较了清洗数据集和原始数据集的缺陷预测性能。结果:在AUC和F-Measure方面的实验结果表明,大多数数据集获得了非常不同的缺陷预测性能。结论:因此,对CPDP中的数据质量问题进行研究是非常必要的,而经过清洗的Jureczko数据集可以为CPDP提供更可靠的缺陷预测性能。
2018-05-28 cs.SE
Why Security Defects Go Unnoticed during Code Reviews? A Case-Control Study of the Chromium OS Project
同行代码审查已被发现在识别安全漏洞方面是有效的。然而,尽管实行强制性代码审查,许多开源软件(OSS)项目仍然遇到大量的发布后安全漏洞,因为一些安全缺陷逃脱了这些。因此,项目经理可能想知道在代码审查期间是否有任何弱点或不一致,从而错过了安全漏洞。对这个问题的回答可以帮助管理者确定关注的领域,并采取措施来提高他/她的项目代码审查在识别安全缺陷方面的有效性。因此,本研究的目的是确定的因素,区分代码审查,成功地确定了安全缺陷,从那些错过了这样的缺陷。为此,我们对Chromium OS项目进行了病例对照研究。使用多阶段半自动化方法,我们构建了一个包含516个代码审查的数据集,这些代码审查成功地识别了安全缺陷,以及374个安全缺陷逃逸的代码审查。我们的实证研究结果表明,代码审查期间识别的安全缺陷类别和遗漏的安全缺陷类别之间存在显着差异。在我们的数据集上拟合的逻辑回归模型的AUC得分为0.91,并确定了9个影响安全缺陷识别的代码审查属性。虽然完成审查的时间,两个开发人员之间的相互审查的数量,如果审查是为了修复漏洞,对漏洞识别有积极的影响,但从审查中的目录数量,开发人员的总审查数量以及审查中的文件的先前提交总数中观察到相反的影响。
2021-02-13 cs.SE
A Systematic Study of Cross-Project Defect Prediction With Meta-Learning
基于外部项目的数据对目标项目中的缺陷进行预测称为跨项目缺陷预测(CPDP)。已经提出了几种方法来提高CPDP模型的预测性能。然而,缺乏最先进方法之间的比较。此外,以前的工作表明,最适合一个项目的方法可以根据被预测的项目而变化。这使得选择使用哪种方法变得困难。我们提供了一个广泛的实验比较31 CPDP方法来自国家的最先进的方法,适用于47个版本的15个开源软件项目。四种方法脱颖而出,表现出跨数据集的最佳性能。然而,这些方法中最适合的方法仍然根据所预测的项目而变化。因此,我们提出并评估了一种元学习解决方案,旨在自动选择和推荐最适合项目的CPDP方法。我们的研究结果表明,元学习解决方案能够从以前的经验中学习,并动态推荐合适的方法。然而,当与基本方法相比时,所提出的解决方案表现出较小的性能差异。这些结果提供了关于应用于CPDP的元学习解决方案的可能性和局限性的有价值的知识。
2019-05-31 cs.SE
Predicting Defective Visual Code Changes in a Multi-Language AAA Video Game Project
本文针对AAA游戏项目中可视化代码缺陷较多的问题,构建了包含可视化代码指标的缺陷预测模型,发现纳入可视化代码特征能显著提升AUC和MCC等预测性能。
2023-09-07 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
Benchmarking cross-project defect prediction approaches with costs metrics
缺陷预测可以成为指导质量保证资源使用的有力工具。跨项目缺陷预测(Cross-Project Defect Prediction,CPDP)问题是近年来众多研究者关注的焦点,基于其他项目的训练数据创建预测模型。然而,只有少数已发表的论文评估了预测的成本效率,即,如果它们被用来指导质量保证工作,在本文中,我们提供了一个基准的26 CPDP方法的基础上成本指标。我们的基准测试表明,在考虑成本的情况下,将所有东西都假设为有缺陷的平均效果要好于CPDP。此外,我们表明,我们的排名的方法使用成本指标是不相关的排名的基础上的指标,不直接考虑成本。这些研究结果表明,我们必须投入更多的精力来评估CPDP的实际效益,因为CPDP的当前技术水平实际上可以通过以成本为导向的评估中的琐碎方法来击败。
2018-01-12 cs.SE
Too Trivial To Test? An Inverse View on Defect Prediction to Identify Methods with Low Fault Risk
背景测试资源通常是有限的,因此通常不可能在发布之前完全测试应用程序。为了解决资源稀缺的问题,开发团队可以应用缺陷预测来识别容易出错的代码区域。然而,在跨项目预测场景中,缺陷预测往往精度较低。目的。我们对缺陷预测采取了相反的观点,目的是确定在测试时可以推迟的方法,因为它们几乎不包含任何错误,因为它们的代码是“微不足道的”。我们希望这种方法的特点可能是独立于项目的,所以我们的方法可以提高跨项目的预测。法我们计算代码度量,并应用关联规则挖掘来创建用于识别具有低故障风险的方法的规则。我们进行了实证研究,以评估我们的方法与六个Java开源项目包含精确的故障数据的方法级。结果我们的研究结果表明,逆缺陷预测可以识别约。32-44%的项目方法具有低故障风险;平均而言,它们包含故障的可能性比其他方法低六倍。在具有更大、更多样化训练集的跨项目预测中,识别出的方法包含错误的可能性甚至低11倍。结论.反向缺陷预测通过识别测试活动中优先级较低的方法来支持测试资源的有效分配,并且非常适用于跨项目预测场景。
2018-11-02 cs.SE
Memory and Resource Leak Defects and their Repairs in Java Projects
尽管在软件工程方面付出了巨大的努力,并且有程序设计语言的支持,但资源和内存泄漏仍然是一个棘手的问题,即使在内存管理语言(如Java)中也是如此。了解导致泄漏的缺陷的属性、泄漏如何表现以及如何修复它们是设计更好的方法来避免、诊断和修复泄漏相关错误的基本前提。我们对15个大型开源Java项目的491个问题进行了详细的实证研究。这项研究提出了分类的泄漏类型,导致他们的缺陷,并为修复行动。我们调查,在几个方面,每个分类内的分布和它们之间的关系。我们发现,手动代码检查和手动运行时检测仍然是泄漏检测的主要方法。我们发现,大多数的错误表现在无错误的执行路径,和开发人员修复泄漏的缺陷在更短的时间比非泄漏的缺陷。我们还确定了13个经常性的代码转换的修复补丁。根据我们的研究结果,我们得出了开发人员如何避免,检测,隔离和修复泄漏相关的错误的各种影响。
2019-06-27 cs.SE
How Far Does the Predictive Decision Impact the Software Project? The Cost, Service Time, and Failure Analysis from a Cross-Project Defect Prediction Model
背景:跨项目缺陷预测(CPDP)模型正在开发中,以优化测试资源。目的:提出了一个集成分类框架的CPDP,许多现有的模型缺乏更好的性能和分析的主要目标的CPDP从建议的分类框架的结果。方法:对于分类任务,我们提出了一种基于自举聚合的混合诱导集成学习(HIEL)技术,使用概率加权多数表决(PWMV)策略。为了了解HIEL对软件项目的影响,我们提出了三个特定于项目的性能指标,如完美清洗百分比(PPC),非完美清洗百分比(PNPC)和错误遗漏率(FOR),从预测中计算出节省的成本,剩余服务时间和目标项目中失败的百分比。结果如下:在PROMISE、NASA和AEEEM库的许多目标项目上,所提出的模型在F-度量方面优于最近的工作,如TDS、TCA+、HYDROGEN、TPTL和CODEP。在AUC方面,TCA+和HYDRONIC模型是HIEL模型的强有力竞争对手。结论:为了更好地预测,我们建议CPDP模型采用集成学习方法。而且,为了估计CPDP模型的好处,我们建议采用上述项目特定的绩效指标。
2022-09-28 cs.SE
TDSelector: A Training Data Selection Method for Cross-Project Defect Prediction
跨项目缺陷预测(cross-project defect prediction,CPDP)是近年来备受关注的一种解决新创建或不活跃软件项目中局部数据稀疏问题的有效方法。不幸的是,CPDP的性能通常很差,低质量的训练数据选择被认为是实现更好预测结果的主要障碍。据我们所知,大多数与此主题相关的现有方法仅基于实例相似性。因此,这项工作的目的是提出一种改进的训练数据选择方法CPDP,同时考虑相似性和缺陷的数量每个训练实例(表示为缺陷),这被称为TDQs,并证明所提出的方法的有效性。我们的实验进行了14个项目(包括15个数据集)从两个公共存储库收集。结果表明,在特定的CPDP场景中,基于TDSelector的错误预测器的平均性能优于基于基线方法的错误预测器,AUC(ROC曲线下面积)值分别增加了10.6%和4.3%。另外,通过实验表明,直接选取缺陷较多的实例作为训练数据,可以进一步提高缺陷预测器的性能。
2016-12-29 cs.SE
Leveraging the Defects Life Cycle to Label Affected Versions and Defective Classes
最近的两项研究明确建议使用问题跟踪器中可用的受影响版本(AV)来标记版本中的缺陷类别。我们的研究有三个目的:1)测量真实方法可用的缺陷比例,2)提出一种检索缺陷AV的方法,从而在AV不可用时使用真实方法,3)比较所提出的方法与三种SZZ实现的准确性。我们所提出的方法的假设是,缺陷有一个稳定的生存周期的比例,受影响的版本的数量发现和修复这些缺陷。Apache生态系统中的212个开源项目的结果显示,现实方法不能用于大多数(51%)缺陷。因此,重要的是开发自动化方法来检索AV。结果涉及Apache生态系统中的76个开源项目,共有约6,250,000个类,受到60,000个缺陷的影响,分布在4,000个版本和760,000次提交中,揭示了缺陷发现和修复之间的版本数量比例在同一项目的缺陷中非常稳定(STDV < 2)。此外,所提出的方法比所有三种SZZ实现在(i)检索AV,(ii)将类标记为有缺陷的,以及(iii)开发缺陷库以执行特征选择方面更准确。因此,当现实的方法是不可用的,所提出的方法是一个有效的自动替代SZZ检索缺陷的起源。最后,考虑到SZZ的准确性较低,研究人员应该考虑重新执行使用SZZ作为预言的研究,并且通常应该选择具有高比例可用和一致AV的项目。
2020-11-11 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
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
The Impact of Defect (Re) Prediction on Software Testing
针对跨项目缺陷预测中Bandit Algorithm早期易选到不合适数据而遗漏缺陷的问题,提出测试后再预测并重新测试相关模块的方法,实验表明其可在不降低准确率的同时稳定减少缺陷遗漏。
2024-09-10 cs.SE
Defect Category Prediction Based on Multi-Source Domain Adaptation
针对现有缺陷预测仅做二分类、跨项目泛化差的问题,本文将其重构为CWE缺陷类别的多标签分类任务,提出融合对抗训练与加权最大均值差异注意力的多源域适应框架,在8个开源项目上性能优于现有基线。
2024-05-17 cs.SE
BiLO-CPDP: Bi-Level Programming for Automated Model Discovery in Cross-Project Defect Prediction
跨项目缺陷预测(CPDP)通过将迁移学习器与分类器相结合,从类似项目中借用数据,已经成为在目标项目的可用数据不足时预测软件缺陷的一种有前途的方法。然而,开发这样的模型是具有挑战性的,因为很难确定迁移学习器和分类器的正确组合以及它们的最佳超参数设置。在本文中,我们提出了一个工具,dubbedBiLO-CPDP,这是第一次制定的自动CPDP模型发现从双层编程的角度来看。特别地,双层编程以分层方式用两个嵌套层进行优化。具体来说,上层优化例程旨在搜索迁移学习器和分类器的正确组合,而嵌套的下层优化例程旨在优化相应的超参数设置。为了评估BiLO-CPDP,我们在20个项目上进行了实验,将其与现有的21种CPDP技术进行比较,以及其单级优化变体和Auto-Sklearn,一个最先进的自动化机器学习工具。实证结果表明,BiLO-CPDP在70%的项目上的预测性能优于所有其他21种现有的CPDP技术,同时在所有情况下都压倒性地优于Auto-Sklearn及其单级优化变体。此外,BiLO-CPDP中独特的双层形式化还允许将更多的预算分配给上层,这显着提高了性能。
2020-08-31 cs.SE
How the adoption of feature toggles correlates with branch merges and defects in open-source projects?
背景:分支在版本控制中被广泛采用,以支持协作软件开发。然而,分支造成的隔离可能会对即将到来的合并过程带来挑战。最近,像谷歌、微软、Facebook和Spotify等公司已经采用了基于主干的开发以及功能切换。此策略支持协作,而无需通过分支进行隔离,从而可能减少合并的挑战。然而,文献缺乏证据的好处和限制功能切换协作软件开发。目的/方法:在本文中,我们研究的影响,应用功能切换949个开源项目写在6个不同的程序设计语言。我们首先确定了每个项目采用功能切换框架的时刻。然后,我们观察采用是否意味着分支合并的频率或复杂性以及缺陷数量的显着变化,以及修复它们的平均时间。最后,我们比较了从一组控制项目,不使用功能切换框架获得的结果。结果/结论:我们可以观察到,在采用特性切换框架之后,平均合并工作量减少,修复缺陷所需的平均总时间增加。然而,我们无法确认这种增加是受到使用功能切换的影响。
2021-09-12 cs.SE
Towards Developing and Analysing Metric-Based Software Defect Severity Prediction Model
在一个关键的软件系统中,由于缺陷的不断出现,测试人员不得不花费大量的时间和精力来维护软件。在这些缺陷中,一些严重的缺陷可能会对软件产生不利影响。为了减少测试人员的时间和精力,文献中已经提出了许多机器学习模型,其使用文档化的缺陷报告来自动预测有缺陷的软件模块的严重性。与传统的方法相比,在这项工作中,我们提出了一个基于度量的软件缺陷严重性预测(SDSP)模型,使用自训练半监督学习的方法来分类的严重性有缺陷的软件模块。该方法是建立在未标记和标记的缺陷严重性数据的混合物。自训练工作的基础上的决策树分类器分配的伪类标签的未标记的实例。预测是有希望的,因为自我训练成功地分配合适的类标签的未标记的实例。另一方面,许多研究已经涵盖了提出预测方法以及缺陷严重性预测模型的方法学方面,从预测模型估计项目属性的差距仍然没有得到解决。为了弥补这一差距,我们提出了五个项目特定的措施,如风险因素(RF),节省预算的百分比(PSB),节省预算的损失(LSB),剩余服务时间(ESTA)和免费服务时间(GST)从预测中捕获项目结果。类似于传统的措施,这些措施也计算从观察到的混淆矩阵。这些度量用于分析预测模型对软件项目的影响。
2022-10-10 cs.SE
On the Need of Preserving Order of Data When Validating Within-Project Defect Classifiers
[上下文]使用缺陷预测模型,例如分类器,可以通过使用同一项目的先前版本的数据来预测哪些软件组件可能有缺陷,从而支持测试资源分配。验证技术(下文中的技术)定义了在训练集和测试集中分割可用数据以测量分类器准确度的特定方式。时间序列技术具有保存数据的时间顺序的独特能力;即,防止测试集具有先于训练集的数据。[Aim]本文的目的是双重的:首先,我们检查是否有时间序列与非时间序列技术测量的分类器的准确性的差异。之后,我们检查这种差异的可能原因,即,如果缺陷率在一个项目的不同版本之间发生变化。[方法]我们的方法包括测量准确度,即,AUC,10个分类器上的13个开放和两个封闭的项目,使用三种验证技术,即交叉验证,引导,和向前走,其中只有后者是一个时间序列技术。[结果]在同一项目上使用同一分类器,采用10倍法测量的AUC与采用前走法测量的AUC在[-0. 20,0.22]范围内变化,有45%的情况下差异有统计学意义。同样,与通过向前走测量相比,通过自助法测量的AUC在[-0.17,0.43]范围内变化,并且在56%的情况下存在统计学差异。[结论]我们建议通过仔细考虑要得出的结论,可用数据集的属性以及分类器使用场景的真实程度来选择要使用的技术。
2020-07-31 cs.SE
A deep tree-based model for software defect prediction
缺陷在软件系统中是常见的,并且可能对软件用户造成各种问题。已经开发了不同的方法来快速预测大型代码库中最可能的缺陷位置。他们中的大多数专注于设计与潜在缺陷代码相关的功能(例如复杂性度量)。然而,这些方法不足以捕获源代码的语法和不同级别的语义,这是构建准确预测模型的重要能力。在本文中,我们开发了一种新的预测模型,它能够自动学习的功能,代表源代码,并使用它们的缺陷预测。我们的预测系统是建立在强大的深度学习,树结构的长短期记忆网络,直接匹配源代码的抽象树表示。对两个数据集的评估,一个来自三星贡献的开源项目,另一个来自公共PROMISE存储库,证明了我们的方法对项目内和跨项目预测的有效性。
2018-02-03 cs.SE
Moving from Cross-Project Defect Prediction to Heterogeneous Defect Prediction: A Partial Replication Study
Ryerson University(瑞尔森大学)
软件缺陷预测严重依赖于从软件项目中收集的度量。早期的研究通常使用机器学习技术来构建、验证和改进错误预测模型,这些模型使用的是在一个项目内或跨不同项目收集的一组指标。然而,这些模型所应用的技术和得出的结论受到这些指标是否相同的限制。如果在源项目中没有收集到足够的重叠度量,那么来自这些模型的知识将不能扩展到目标项目。为了探索在没有共同标记指标的情况下跨项目转移知识的可行性,我们通过复制和验证所获得的结果,系统地集成了异构缺陷预测(HDP)。我们的主要目标是扩展先前的研究,探索HDP的可行性,并最终将其性能与其前身跨项目缺陷预测进行比较。我们在不同的公开数据集上构建了一个HDP模型。此外,我们提出了一种新的集成投票方法,在HDP的上下文中,利用多个可用数据集的预测能力。我们的实验结果与最初的研究结果相当。然而,我们也探讨了HDP在实际案例中的可行性。我们的研究结果揭示了HDP算法由于其对参数选择的敏感性而在许多情况下不可行。总的来说,我们的分析深入了解了为什么以及如何执行从一个域到另一个域的迁移学习,特别是,提供了一套指导方针,以帮助研究人员和从业人员传播知识的缺陷预测域。
2021-03-05 cs.LG cs.SE
Source Code Metrics for Software Defects Prediction
在目前的研究中,有对比的结果,软件源代码度量的缺陷预测模型的功能的适用性。本文的目标是评估软件缺陷预测模型中软件度量的采用,确定单个源代码度量的影响。通过对从GitHub上挖掘的39个Java项目的275个发布版本的实证研究,我们计算了12个软件度量并收集了软件缺陷信息。我们训练和比较三个缺陷分类模型。所有项目的结果表明,决策树(DT)和随机森林(RF)分类器显示出最好的结果。性能最高的单个指标包括NOC、NPA、DIT和LCOM5。而其他指标,如CBO,并没有带来显着的改进模型。
2023-01-19 cs.SE
ConPredictor: Concurrency Defect Prediction in Real-World Applications
并发程序由于其固有的非确定性而难以测试。为了解决这个问题,测试通常需要探索程序的线程调度;这在应用于真实世界的程序时可能很耗时。软件缺陷预测已经被用来帮助开发人员发现错误并优先考虑他们的测试工作。先前的研究已经使用机器学习来基于对程序的特性进行编码的设计特征来构建这样的预测模型。然而,研究的重点是顺序程序,迄今为止,没有工作考虑并发程序的缺陷预测,程序特性区别于顺序程序。在本文中,我们提出了ConPredictor,一种方法来预测特定的并发程序的缺陷相结合的静态和动态程序度量。具体来说,我们提出了一套新的静态代码度量的基础上并发程序的独特属性。我们还利用基于突变分析构建的动态指标的额外指导。我们对四个大型开源项目的评估表明,与传统功能相比,ConPredictor改进了项目内缺陷预测和跨项目缺陷预测。
2018-04-10 cs.SE
Generative Adversarial Network-based Cross-Project Fault Prediction
背景:在软件开发生存周期的早期阶段进行缺陷预测,可以减少测试工作量,保证软件质量。由于缺乏同一项目内的历史数据,跨项目缺陷预测(CPDP)已成为研究人员的热门研究课题。CPDP训练的分类器基于一个项目的标记数据集来预测另一个项目中的故障。目标:软件缺陷预测(SDP)数据集由手动设计的静态特征组成,这些特征是软件度量。在CPDP中,源项目和目标项目数据的差异是实现高性能的主要挑战。在本文中,我们提出了一种基于生成对抗网络(GAN)的数据转换,以减少源项目和目标项目之间的数据分歧。方法:我们采用生成对抗方法,其中标签数据集被选择为真实数据,而目标数据集被选择为假数据。判别器试图通过损失函数来衡量领域自适应的完善程度。通过生成器,目标数据集尝试适应源项目域,并且最后应用机器学习分类器(即,Naive Bayes)来对错误模块进行分类。结果:我们的研究结果表明,它是可能的预测缺陷的基础上生成的对抗方法。当我们选择JDT作为目标数据集时,我们的模型在跨项目环境中表现得很好。然而,所有选择的数据集都面临着一个大的类不平衡问题,这影响了我们的模型的性能。
2021-05-15 cs.SE
A Defect Taxonomy for Infrastructure as Code: A Replication Study
本研究复现了基于Puppet的IaC缺陷分类研究,通过分析285个开源PL-IaC仓库的缺陷提交构建对应分类体系,改进ACID工具在扩展数据集上验证,证实原8类缺陷的普适性,明确不同缺陷的频率特征与范式固有性。
2025-06-18 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
BAFLineDP: Code Bilinear Attention Fusion Framework for Line-Level Defect Prediction
提出BAFLineDP框架,融合代码行语义、上下文及局部交互信息,实现行级缺陷预测,在9个项目32版本上优于现有方法。
2024-02-11 cs.SE
Defectors: A Large, Diverse Python Dataset for Defect Prediction
本文构建涵盖24个Python项目、约213K代码文件的多样化数据集Defectors,以支持即时与行级缺陷预测及ML/DL模型训练。
2023-07-25 cs.SE
An Empirical Study on Software Defect Prediction with a Simplified Metric Set
软件缺陷预测在估计软件中最容易出现缺陷的组件方面起着至关重要的作用,并且大量的研究都在追求提高项目内或跨项目的预测准确性。然而,当可用的历史数据不足时,在项目内和跨项目缺陷预测之间做出适当决定的规则仍然不清楚。本文的目的是验证在不同的软件缺陷预测场景中,基于简化度量集的预测器的可行性,并探讨在特定项目中选择训练数据、分类器和度量子集的实用指导原则。首先,基于六个典型的分类器,我们构造了三种类型的预测器,在三种情况下使用软件度量集的大小。然后,我们验证了可接受的性能的预测器的基础上Top-k度量的统计方法。最后,我们尝试通过去除冗余度量来最小化Top-k度量子集,并且我们使用单向ANOVA检验来测试这样的最小度量子集的稳定性。实验结果表明:(1)训练数据的选择应取决于预测精度的具体要求;(2)使用简化的度量集建立的预测器工作良好,在资源有限的情况下非常有用;(3)简单的分类器(例如,朴素贝叶斯)在使用简化的度量集进行缺陷预测时也倾向于表现良好;以及(4)在若干情况下,可以识别最小度量子集,以便于在实践中具有可接受的预测精度损失的一般缺陷预测过程。表12列出了在不同情景下选择合适的简化指标集的指南。
2014-12-24 cs.SE
Effectiveness Of Defect Prevention In I.T. For Product Development
缺陷预防是任何项目中软件质量保证中最关键但最容易被忽视的组成部分。如果应用于软件开发的所有阶段,它可以减少设计高质量产品所需的时间,成本和资源。软件检查已被证明是最有效和高效的技术,使缺陷检测和预防。在软件生存周期的所有阶段进行的检查已被证明是最有益的,并增加了软件属性的价值。工作是基于从一家领先的产品公司收集的三个不同项目的数据进行分析。本文的目的是表明,55%至65%的总数量的缺陷发生在设计阶段。本文的立场还强调了在产品开发生存周期的所有阶段进行检查的重要性,以实现最小的部署后缺陷。
2010-01-21 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
Transfer-Learning Oriented Class Imbalance Learning for Cross-Project Defect Prediction
Beihang University(北京航空航天大学);Science & Technology on Reliability & Environmental Engineering Laboratory(可靠性与环境工程技术重点实验室)
跨项目缺陷预测(CPDP)的目的是通过使用基于其他项目的历史缺陷数据训练的预测模型来预测缺乏训练数据的项目的缺陷。然而,由于不同项目的数据集之间的分布差异,建立高质量的CPDP模型仍然是一个挑战。不幸的是,软件缺陷数据集的类不平衡性质进一步增加了难度。在本文中,我们提出了一个面向迁移学习的少数过采样技术(TOMO)的特征加权转移朴素贝叶斯(FWTNB)方法(TOMOFWTNB)的CPDP同时考虑classimbalance和功能的重要性问题。与传统的过采样技术不同,TOMO不仅可以平衡数据,而且可以减小分布差异。然后使用FWTNB进一步增加两个分布的相似性。在11个公开的缺陷数据集上进行了实验。实验结果表明:(1)TOMO算法使G-Measure平均提高了23.7 $\sim$ 41.8%,MCC平均提高了54.2 $\sim$ 77.8%; (2)特征加权(FW)策略使G-Measure平均值提高了11%,MCC平均值提高了29.2%. (3)与现有的最新CPDP方法相比,TOMOFWTNB将平均G-Measure值提高了至少27.8%,将平均MCC值提高了至少71.5%。可以得出结论:(1)TOMO是非常有效的解决类不平衡问题的CPDP场景;(2)我们的FW策略是有助于CPDP;(3)TOMOFWTNB优于以前的国家的最先进的CPDP方法。
2019-01-24 cs.LG cs.SE
Better Knowledge Enhancement for Privacy-Preserving Cross-Project Defect Prediction
School of Computer Science and Technology, Soochow University(苏州大学计算机科学与技术学院);School of Computer Science and Technology, Huazhong University of Science and Technology(华中科技大学计算机科学与技术学院)
本文研究联邦学习框架下具有数据异构性的隐私保护跨项目缺陷预测问题,提出名为FedDP的知识增强方法,通过局部异构性感知和全局知识蒸馏优化模型,在19个项目上显著优于基线。
2024-12-23 cs.LG cs.SE
Use of Source Code Similarity Metrics in Software Defect Prediction
近年来,缺陷预测在经验软件工程领域受到了极大的关注。在维护阶段之前预测软件缺陷对于降低软件维护成本和提高软件产品的整体质量具有重要意义。有不同类型的产品,过程和开发人员为基础的软件度量提出了迄今为止,以衡量软件系统的缺陷。本文建议使用一套新的软件度量标准,它是基于软件项目中的源代码文件之间的相似性检测。为了发现软件系统的不同文件之间的源代码相似性,使用剽窃和克隆检测技术。为每个文件计算两个简单的相似性度量,考虑其与项目中有缺陷和无缺陷文件的总体相似性。使用这些相似性度量,我们预测一个特定的文件是否有缺陷。我们在10个开放的源数据集上的实验表明,根据检测到的相似性的量,建议的度量可以实现显着更好的性能相比,现有的静态代码度量的曲线下面积(AUC)。
2018-08-29 cs.SE
Early Life Cycle Software Defect Prediction. Why? How?
North Carolina State University(北卡罗来纳州立大学)
许多研究人员认为,对于软件分析来说,“数据越多越好。“我们写这篇文章是为了表明,至少对于学习缺陷预测器来说,这可能不是真的。为了证明这一点,我们分析了数百个流行的GitHub项目。这些项目运行了84个月,包含3,728次提交(中位数)。在这些项目中,大多数缺陷都发生在它们的生存周期的早期。因此,从前150次提交和四个月中学习的缺陷预测器与其他任何东西一样好。这意味着,至少对于这里研究的项目,在最初的几个月之后,我们不需要不断更新我们的缺陷预测模型。我们希望这些结果能激励其他研究人员在工作中采用“简单第一”的方法。有些领域需要复杂且数据量大的分析。但在假设复杂性之前,谨慎的做法是检查原始数据,寻找可以简化分析的“捷径”。
2021-02-09 cs.LG 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
Bellwethers: A Baseline Method For Transfer Learning
软件分析为软件项目建立质量预测模型。经验表明,(a)研究的项目越多,结论就越多样化;(b)如果软件分析的结果不断变化,项目经理就会对这些结果失去信心。为了减少这种结论的不稳定性,我们建议使用"领头羊":给定来自一个社区的N个项目,领头羊是其数据对所有其他项目产生最佳预测的项目。领头羊提供了一种减轻结论不稳定性的方法,因为只要这个领头羊继续作为最好的预言者,关于社区的结论就是稳定的。领头羊也很容易发现(只需在标准数据挖掘器周围包装一个for循环)。与其他迁移学习方法(TCA+、迁移朴素贝叶斯、价值认知提升)相比,仅使用领头羊数据来构建简单的迁移学习器可以产生类似的预测。此外,领头羊出现在许多SE任务中,例如缺陷预测,工作量估计和不良气味检测。因此,我们建议使用领头羊作为迁移学习的基线方法,未来的工作应该与之进行比较
2018-01-21 cs.SE
Evaluating Software Defect Prediction Models via the Area Under the ROC Curve Can Be Misleading
Università degli Studi dell’Insubria(因斯布鲁克大学)
研究质疑通过ROC曲线和AUC评估软件缺陷预测模型的可靠性,指出高AUC值不一定意味着模型在所有阈值下均优于随机模型。
2026-04-22 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
Revisiting Unsupervised Learning for Defect Prediction
NC State(北卡罗来纳州立大学)
从软件项目中收集高质量的数据可能既耗时又昂贵。因此,一些研究人员探索了不需要标记数据的“无监督”质量预测方法。另一种技术是使用“监督”方法,从标有“有缺陷”或“无缺陷”的项目数据中学习模型。大多数研究人员使用这些监督模型,因为他们可以利用更多的项目知识。在FSE'16上,Yang等人报告了惊人的结果,其中无监督缺陷预测器在努力感知的即时缺陷预测方面优于有监督预测器。如果得到证实,这些结果将导致一个看似复杂的任务(数据采掘),在软件工程文献中广泛探讨戏剧性的简化。本文重复并反驳了这些结果如下。(1)Yang等人的预测器的有效性存在很大的差异,因此即使使用他们的方法,也需要一些监督数据来修剪较弱的预测器。(2)他们的研究结果按$N$项目分组。当我们在逐个项目的基础上重复他们的分析时,监督预测器被认为工作得更好。尽管本文拒绝了杨等人的具体结论,我们仍然赞同他们的总体目标。在我们的实验中,监督预测器在努力感知的即时缺陷预测方面并没有比无监督预测器表现得更好。因此,它们可能确实是无监督学习器的某种组合,以实现与有监督学习器相当的性能。因此,我们鼓励其他国家在这一有希望的领域开展工作。
2017-06-24 cs.LG cs.SE
Exploring the relationship between performance metrics and cost saving potential of defect prediction models
内容:性能指标是评估任何机器学习模型的核心组成部分,用于比较模型并估计其有用性。最近的工作开始质疑许多性能指标的有效性,为此目的,在软件缺陷预测的上下文中。目的:在这项研究中,我们探讨性能指标和成本节约的缺陷预测模型的潜力之间的关系。我们研究是否性能指标是合适的代理,以评估成本节约能力,并得出一个理论的性能指标和成本节约潜力之间的关系。方法:我们在缺陷预测实验中测量性能指标和成本节约潜力。我们使用多项logit模型、决策和随机森林来模拟指标与成本节约之间的关系。结果:我们无法找到成本节约和性能指标之间的稳定关系。我们属性的关系的缺乏,性能指标无法占的财产,一小部分非常大的软件工件的主要驱动程序的成本。结论:任何对寻找最佳预测模型感兴趣的缺陷预测研究都必须直接考虑成本节约,因为否则就无法对缺陷预测的经济效益提出合理的要求。
2022-07-27 cs.SE
Methods for Stabilizing Models across Large Samples of Projects (with case studies on Predicting Defect and Project Health)
North Carolina State University(北卡罗来纳州立大学)
尽管有几十年的研究,SE缺乏广泛接受的模型(提供精确的定量稳定的预测),什么因素最影响软件质量。本文提供了一个有希望的结果,显示这种稳定的模型可以使用一个新的迁移学习框架称为“稳定器”。给定一个递归聚类的项目树(使用项目元数据),如果模型在较低的聚类中表现最好,则STABILIZER向上提升模型(当提升的模型表现比在较低级别看到的模型更差时停止)。STABILIZER发现的模型数量很少:一个用于缺陷预测(756个项目),不到12个用于项目健康(1628个项目)。因此,通过STABILIZER,可以找到一些可以用于迁移学习的项目,并得出一次在数百个项目中成立的结论。此外,以这种方式产生的模型提供的预测,以及或更好地比现有的国家的最先进的。据我们所知,稳定器是数量级快于现有的国家的最先进的转移学习者,寻求找到结论的稳定性,这些案例研究是最大的示范项目质量的定量预测的概括性尚未在SE文献中报道。为了支持开放科学,我们所有的脚本和数据都在线https://github.com/Anonymous633671/STABILIZER。
2022-03-21 cs.LG cs.SE
v-SVR Polynomial Kernel for Predicting the Defect Density in New Software Projects
Universidad de Guadalajara(瓜达拉哈拉大学);Applied Science Private University(应用科学私立大学);University of Sharjah(沙迦大学);University of Detroit Mercy(底特律梅西大学)
确定软件过程有效性的一个重要产品度量是缺陷密度(DD)。在这项研究中,我们提出了应用支持向量回归(SVR)来预测从国际软件基准标准组(ISBSG)2018年发布的数据集获得的新软件项目的DD。两种类型的支持向量机(e-SVR和v-SVR)被用于训练和测试这些项目。每个SVR使用四种类型的内核。将每个SVR的预测准确度与统计回归的预测准确度进行比较(即,简单线性回归(SLR)。统计显著性检验表明,在大型机上开发新的软件项目并使用第三代程序设计语言编码时,多项式核的v-SVR优于SLR
2018-12-15 cs.LG cs.SE
KG-Commit: A Dynamic Knowledge Graph for Online Just-in-Time Software Defect Prediction
Sharif University of Technology(谢里夫理工大学)
针对在线即时缺陷预测忽略项目上下文的问题,提出动态知识图谱KG-Commit,增量维护仓库与代码结构,在11个Apache项目上以CPU推理取得最优Macro-F1、G-Mean和AUC,且延迟稳定。
2026-09-11 cs.SE
Learning Actionable Analytics from Multiple Software Projects
当前一代的软件分析工具主要是预测算法(例如,支持向量机、朴素贝叶斯、逻辑回归等)。虽然预测是有用的,但在预测之后,计划采取什么行动来提高质量。本研究寻求的方法,产生明显有用的指导“做什么”的背景下,一个特定的软件项目。具体来说,我们提出了Xtree(用于项目内规划)和BELLTREE(用于跨项目规划)来生成可以提高软件质量的计划。每一个这样的计划都有这样的特性,如果遵循,它会减少未来缺陷报告的预期数量。为了找到这个预期的数字,首先将规划应用于来自版本X的数据。接下来,我们寻找x+1版本中符合我们计划的更改。该程序适用于使用一系列的规划师从文献中,以及Xtree。在10个开源JAVA系统中,符合Xtree计划的代码部分减少了数百个缺陷。此外,与其他规划者相比,Xtree的计划更容易实施(因为它们更短),并且在减少预期缺陷数量方面更有效。
2020-01-24 cs.SE
Problems with SZZ and Features: An empirical study of the state of practice of defect prediction data collection
上下文:SZZ算法是标记bug修复提交和查找缺陷预测数据的诱发更改的事实标准。最近的研究发现了SZZ算法不同部分的潜在问题。大多数缺陷预测数据集只提供静态代码度量作为特征,而研究表明其他特征也很重要。目的:我们提供了一个经验分析的缺陷标签创建的SZZ算法和常用的功能对结果的影响。方法:我们使用了人工验证和采用或改进的缺陷数据收集的方法相结合。我们对38个Apache项目的398个版本进行了实证研究。结果:我们发现SZZ确定的bug修复提交中只有一半是真正的bug修复。如果将六个月的时间框架与SZZ结合使用来确定哪些bug影响发布,则对于每个被正确标记为有缺陷的文件,都有一个文件被错误地标记为有缺陷。此外,还遗漏了两个有缺陷的文件。我们还探索了在大多数缺陷预测数据集中可用的相对较小的特征集的影响,因为有多个出版物表明,例如,扰动相关特征对于缺陷预测是重要的。我们发现使用更多功能的差异并不显着。结论:缺陷标签不准确的问题严重威胁到缺陷预测技术的有效性。小功能集似乎是一个不太严重的威胁。
2021-11-11 cs.SE
The Need for a Fine-grained approach in Just-in-Time Defect Prediction
随着软件系统的复杂性导致软件缺陷的增加,已经对预测软件缺陷的技术和预测代码更改是否有缺陷的即时(JIT)缺陷预测进行了研究。虽然使用功能来确定潜在的有缺陷的代码更改,但检查工作仍然很重要。由于代码更改可能会影响多个文件,因此我们调查了一个开源项目,以确定JIT视角下功能的潜在差距。此外,由于缺乏将功能与实际提交联系起来的公开可用的JIT数据集,我们还提出了一个可用于JIT和语义分析的新数据集。
2021-10-02 cs.SE
StateGuard: Detecting State Derailment Defects in Decentralized Exchange Smart Contract
针对去中心化交易所多合约交互下的状态脱轨缺陷检测难题,提出基于深度学习的StateGuard框架,通过构建合约AST提取特征生成图表示、结合GCN检测缺陷,在46个项目5671个合约上精确率达92.24%,还在真实审计中发现多个新CVE。
2024-05-15 cs.SE
The Cost and Benefits of Static Analysis During Development
没有定量数据,决定是否以及如何在开发工作流中使用静态分析是专家意见和猜测的问题,而不是工程权衡。此外,在现实世界条件下收集的相关数据很少。重要但未知的定量参数包括但不限于应用技术的努力、消除缺陷的有效性、分析应应用于工作流程的何处以及静态分析如何与其他质量技术相互作用。本研究检视了35个工业开发项目的详细开发过程数据,这些项目包括静态分析,并且也使用了团队软件过程。我们收集了数据项目计划、工作日志、缺陷和规模以及事后报告,并分析了他们的开发活动的性能,以填充参数化的性能模型。我们使用一个计划模型比较了有和没有静态分析的工作量和缺陷级别,该计划模型包括缺陷删除有效性和修复工作量的反馈。我们发现的证据表明,使用每种工具,开发人员发现和删除缺陷的速度比其他删除技术更高。此外,早期和廉价的去除不仅减少了最终的缺陷密度,而且减少了总的开发工作。本文的贡献包括使用静态分析工具的项目过程数据的真实基准,使用这些数据的成本效益分析的演示,并建议这些工具始终具有成本效益的操作。
2020-03-06 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