噪声可容忍的软件缺陷预测特征选择方法

来源 :计算机科学 | 被引量 : 0次 | 上传用户:ejian
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
通过对缺陷数据集进行挖掘,缺陷预测模型能够提前预测出被测软件中的缺陷模块,帮助测试人员实现更有针对性的测试,而普遍存在的数据集标签噪声会影响预测模型的性能.已有的特征选择方法很少对噪声可容忍性进行针对性设计,同时在主流的具有噪声容忍能力的特征选择框架中策略选取只能依靠经验手动执行,难以在软件工程实践中得到应用.鉴于此,文中提出一种噪声可容忍的软件缺陷预测特征选择方法NTFES(Noise Tolerable FEature Selection),即通过Bootstrap抽样技术生成多个自助样本集,在自助样本集上基于近似马尔可夫毯将特征进行分组并采用两种启发式特征选择策略从每个组中选出候选特征,随后利用遗传算法在候选特征空间中搜索最优特征子集.为了验证NTFES方法的有效性,选择了NASA MDP软件项目集作为实验对象并对标签注入噪声以获得带有噪声标签的数据集,通过控制标签噪声比例对NTFES方法以及其他基准方法(如FULL,FCBF,CFS)进行了比较.实验结果表明:在可接受的标签噪声比例下,NTFES方法不仅具有更高的分类性能,还具有更好的噪声可容忍性.
其他文献
湍流燃烧问题的数值模拟是航空发动机设计的关键工具.由于需要使用高精度计算模型求解NS方程,湍流燃烧的数值模拟需要庞大的计算量,而物理化学模型的引入则导致流场极为复杂,使得计算域内的负载平衡问题成为大规模并行计算的瓶颈.为此文中将湍流燃烧的数值模拟方法在单台具有强大计算能力的服务器——DGX-2上进行移植和优化,设计了通量计算的线程分配方式,并以Roofline模型为工具分析指导了实际的优化方向.此外,还设计了高效的数据通信方式,并结合DGX-2的高速互联实现了湍流燃烧数值模拟方法的多GPU并行版本.实验结
作为基本的数学运算,三角函数的高性能实现对构建处理器的基础软件生态具有重要意义,特别是当前处理器都采用了SIMD架构,基于SIMD实现高性能三角函数具有重要的研究意义和应用价值.对此,文中采用数值分析的方法,对5个常用的三角函数sin,cos,tan,atan,atan2进行了高性能的实现与优化.首先通过分析浮点数IEEE754标准,设计了高效的三角函数算法;然后通过多项式逼近算法中的泰勒公式、帕德近似及雷米兹算法提升了算法精度;最后利用指令流水线与SIMD优化进一步提升了算法性能.实验结果表明,在满足精
随着软件规模日益增大,软件复杂度不断提高,飞机、轮船等大型系统的设计与开发往往是由多个不同专业领域、具有不同职能的团队相互协同完成的.针对协同建模中局部模型之间缺失信息所导致的模型不完整问题和更新操作之间发生冲突所导致的模型不一致问题,文中首先提出了一种基于元模型的协同建模模型组装与更新方法(Model Combination and Update,MCAU),该方法在元模型上定义了协同关系与更新操作,可在协同建模过程中保证模型的完整性与一致性,并通过一个实例对所提方法进行了应用与分析.其次,文中还提出了
随着软件回归测试规模的不断增大和成本的不断增加,测试用例集约简对于提高软件的回归测试效率显得愈发重要.在选取测试用例子集时,需考虑该子集的代表性和多样性,并采用一个有效的算法来求解.针对该测试用例集约简问题,文中提出了一种基于次模函数最大化的算法SubTSR.尽管引入的离散优化问题是NP-hard问题,但文中利用其目标函数的次模性,采用启发式贪心搜索,求得有近似度保证的次优解.在15个数据集上对SubTSR算法与其他测试用例集约简算法展开实验,针对平均错误检出率、错误检测损失率、首次错误检出位等指标,尝试
SCADE同步语言是一种常用的嵌入式系统程序设计语言.在航空、航天、交通等安全关键领域的装备研发中,SCADE同步语言通常被用于实现实时嵌入式自动控制系统.SCADE语言是工业级的开发工具,它源于Lustre语言,并在其基础上增加了更多的语言结构来精简代码.目前,相比Lustre语言,SCADE程序模型检测的学术研究相对落后.为此,文中提出了一种对SCADE程序进行模型检测的方法并实现了一款SCADE模型检测工具,该方法的核心思想是基于程序转化,即把SCADE程序经过词法分析、语法分析、抽象语法树生成与化
对代码可读性进行定量、准确的评估是有效保障软件质量、降低沟通成本以及维护成本、提高软件开发和演化效率的重要途径.然而,现有的针对代码可读性评估的研究方案大多是基于特征工程的,受到源代码表征方式、技术手段等多方面因素影响,其评估准确率并不高.为此,文中采用深度学习作为主要技术手段,提出了一种基于多维度特征和混合神经网络的代码可读性评估方法,通过整合并运用各种单一神经网络的优势,从字符级、词条级等不同维度挖掘源代码中蕴含的结构信息和语义信息,最终实现对代码可读性的量化评估.实验表明,该方法能够获得高达84.6
模糊测试是挖掘网络协议漏洞的重要方法之一.现有的模糊测试方法存在覆盖路径不完全、效率低下等问题.为了解决这些问题,文中提出了基于深度优先搜索的模糊测试用例生成方法,该方法将状态机转换成有向无回路图,以获得状态迁移路径,并通过提高测试用例在发送报文中的占比来提升模糊测试效率.该方法主要包括合并状态迁移、消除循环路径、搜索状态迁移路径、标记重复状态迁移和基于测试用例引导的模糊测试5个阶段.在合并状态迁移阶段,将首尾状态相同的状态迁移进行合并.在消除循环路径阶段,根据深度优先搜索判断图中的循环,并通过删除边将状
自动化代码注释生成技术通过分析源代码的语义信息生成对应的自然语言描述文本,可以帮助开发人员更好地理解程序,降低软件维护的时间成本.大部分已有技术是基于递归神经网络(Recurrent Neural Network,RNN)的编码器和解码器神经网络实现的,但这种方法存在长期依赖问题,即在分析距离较远的代码块时,生成的注释信息的准确性不高.为此,文中提出了一种基于卷积神经网络(Convolutional Neural Network,CNN)的自动化代码注释生成方法来缓解长期依赖问题,以生成更准确的注释信息.
合并流程变体模型能够快速地构建满足新需求的单一流程模型,对流程变体进行合并具有较大的实际应用价值,因此,文中提出了一种利用分组公平控制流结构的流程变体合并方法.首先,利用Petri网中的分组公平将流程变体分割为单个的变体片段;其次,提取出变体片段的控制流路径,并在此基础上构建其矩阵表现形式,进而将流程变体合并为单一的流程模型;最后,通过形式化证明验证合并后的流程模型可以捕获输入流程模型的所有行为,并且可以检测在合并模型中是否产生了不期望的行为.
程序的最坏执行路径是计算程序复杂度的一项重要指标,有助于发现系统可能存在的复杂性漏洞.近年来将符号执行应用于程序复杂度分析的研究取得了不小的进展,但现有方法存在通用性较差、分析时间较长的问题.文中提出一种面向最坏路径探测的进化算法——EvoWca,其核心思想是利用程序在较小输入规模下的已知最坏路径特征指导较大输入规模下初始路径集合的构建,然后模拟进化算法,对路径进行组合、突变和选择迭代,使得在搜索范围内探测到的最坏路径逼近于最坏时间复杂度对应的路径.基于该算法实现了一个用于程序复杂度分析的原型工具EvoW