Most research on defect predictions are at module-level which require developers to inspect the whole module for finding faults. However, only a very small percentage of statements in a module is defective. Therefore, it will waste a large amount of inspecting effort. In order to help developers locate defective statement more quickly, this project try to leverage multi-source information to build statement-level defect prediction models. Specifically, we try to leverage the following information to build statement-level defect prediction models: the dependencies between statements, the warnings by static analysis tools, and the information from developer quality. The main research contents of this project are as follows: 1) statement-level feature extraction from multi-source information; 2) modeling techniques by using the features from multi-source information; 3) prediction effectiveness analysis for statement-level defect prediction models. The objective of this project is to make the defect prediction model more practical.
当前的缺陷预测技术的研究大多处在模块级别,需要开发者审查整个模块以查找缺陷并修复。然而,缺陷语句仅占模块很小的一部分,这将浪费大量的审查资源。为了帮助开发者快速直接定位缺陷所在的具体语句,本项目拟利用多源信息构建语句级缺陷预测模型,以减少审查工作量并提高缺陷预测模型的实用性。具体来说,我们试图基于语句依赖、静态检测工具警报、开发者质量等信息抽取语句级度量信息,从而构建语句级缺陷预测模型。本项目的主要研究内容为: 1) 多源语句级特征抽取; 2) 基于多源信息的缺陷预测模型建模技术; 3) 语句级缺陷预测有效性分析。本项目能促进软件缺陷预测技术的理论研究和实际应用。
代码覆盖信息是程序动态执行最为基础的信息,已被广泛应用于大量软件工程实践,如软件测试、模糊测试和软件调试等。不正确的代码覆盖信息可能会导致依赖于它的各种软件工程实践产生不正确结果或做出次优决策,因此保障代码覆盖器的可靠性至关重要。然而,由于缺少研究关注和构造测试预言代价大等问题,迄今没有针对覆盖器缺陷检测技术的相关研究,覆盖器远未得到充分的测试。本文基于差分测试和蜕变关系分别提出了两种不同的覆盖器缺陷检测方法,试图填补这一领域的空白。本文的主要贡献如下:.1. 基于差分测试的覆盖器缺陷检测技术。基于差分测试,本文提出了首个代码覆盖器缺陷检测方法。该框架首先使用程序生成器随机生成测试程序,接着分别使用不同的代码覆盖器为各测试程序生成代码覆盖信息,最后对比不同覆盖器生成的代码覆盖报告。对比覆盖报告所检测到不一致,则认为被测覆盖器潜在包含缺陷。为了有效报告缺陷,我们提出使用程序相似性检测算法来自动过滤潜在重复测试程序、使用缺陷类型作为不变属性来自动约减测试程序,接着制定规则来自动审查部分触发不一致的覆盖报告以便于提交缺陷报告。.2. 基于蜕变关系的覆盖器缺陷检测技术。基于蜕变关系,本文提出了一种单代码覆盖器自验证的方法。该方法是基于原程序与对应覆盖信息,删减程序中未执行的语句代码而生成新的与原程序``等价''的变体程序,然后比较原程序与``等价''变体程序的输出和相同语句的覆盖信息。如果检测到任何不一致,则被测覆盖器潜在包含缺陷。此方法可用于单覆盖器的验证,与基于差分测试的方法相比,无需多覆盖器进行对比,同时也有效避免了基于差分测试方法由于不同的覆盖器对同一条语句的解释不同的局限性。.我们在两个被广泛使用和深度测试的成熟C代码覆盖器gcov和llvm-cov.上实验评估了这两种方法。迄今为止,总共检测到近一百个被开发者确认或修复的独立的前所未知的缺陷。
{{i.achievement_title}}
数据更新时间:2023-05-31
基于LASSO-SVMR模型城市生活需水量的预测
拥堵路网交通流均衡分配模型
基于多模态信息特征融合的犯罪预测算法研究
基于细粒度词表示的命名实体识别研究
肉苁蓉种子质量评价及药材初加工研究
多源数据驱动的软件缺陷预测方法研究
基于多源信息融合的蛋白质功能预测方法研究
基于多层多源信息的地区级智能电网短期负荷预测研究
基于多源信息融合的蛋白质相互作用预测研究