当前位置:论文网 > 论文宝库 > 工程技术类 > 工程硕士论文 > 正文

分析一种新的基于N-gram模型的重复软件缺陷报告检测方法

来源:UC论文网2015-12-06 20:29

摘要:

软件缺陷讲演是软件开发维护工作中产生的重要软件质量数据之一,跟着软件规模的增长软件缺陷数据库日益庞大。目前很多大型软件都采用多人并行测试的方法,该方法有效进步了软件

软件缺陷讲演是软件开发维护工作中产生的重要软件质量数据之一,跟着软件规模的增长软件缺陷数据库日益庞大。目前很多大型软件都采用多人并行测试的方法,该方法有效进步了软件测试效率, 但同时也使得软件缺陷数据库中的重复缺陷讲演迅速增加,在开源软件中该题目尤为凸起。针对开源软件Firefox的软件缺陷数据的统计分析[1]表明重复(Duplicate)缺陷的比例高达30%。假如能够正确地自动检测重复缺陷讲演,将会大幅度节省宝贵的软件开发维护本钱。目前,研究者已经提出了一些方法进行重复软件缺陷讲演的自动检测[2~5],主要通过基于向量空间模型(VectorSpaceMode,l简称VSM)的文本相似度计算实现。Runeson P等人[2]提出了用天然语言处理技术(NaturalLanguage Processing,简称NLP)检测重复缺陷。他们针对Sony EricssonMobile Com- munications进行了案例验证,结果表明约有2/3的重复缺陷讲演可以被准确地检测到。Wang XY等人[3]在其研究基础之上,提出了一种将天然语言信息与执行信息结合起来检测重复缺陷的新方法。通过对Firefox缺陷库的验证对比实验表明,该新方法可以检测到67% ~93%的重复缺陷,而若仅使用天然语言信息只能检测到43% ~72%的重复缺陷。


现有的重复讲演缺陷检测技术假如仅利用缺陷文本信息,查全率比较低,而利用文本信息与执行信息结合固然可以进步重复缺陷的查全率,但因为执行信息需要单独获取,本钱增加、操纵复杂而且有的缺陷讲演可能获取不到执行信息。本文针对以上不足,提出了一种低本钱、操纵简朴、查全率高的新方法:基于N-gram模型的重复软件缺陷讲演检测方法。通过对Firefox缺陷库的验证表明,该方法与传统的VSM方法比拟,重复缺陷讲演的查全率进步了25% ~55%。文中首先对该方法的相关背景知识进行先容,其次具体说明了该方法的详细内容,最后通过实验结果进行比较,验证了本文的结论。 1 相关背景知识 1.1 软件缺陷讲演软件缺陷讲演的形式固然千变万化,但其处理流程和讲演核心内容都基本相同。软件缺陷讲演基第2期李 宁等:一种新的基于N-gram模型的重复软件缺陷讲演检测方法本都是用天然语言描述的文本信息,其内容主要包括:发现人、发现时间、重要程度、优先级、缺陷概述、缺陷具体现象、重现步骤以及其它相关附件等。以具有代表性的软件缺陷治理软件Bugzilla为例说明,Bugzilla记实的缺陷中的天然语言信息主要包括概述(summary)和具体描述(description)。一个缺陷被提交确认(open)之后,其终极的处理意见 (resolution)可能有如下几种:已修改的(Fixed),不是题目(Invalid),无法修改(Wontfix),以后版本解决(Later),留存(Remind),重复(Duplicate),无法重现(Worksforme)。本文重点关注“重复”类型的缺陷。


1. 2 N-gram模型 N-gram模型是基于词汇的语言识别中常用的一种语言模型。一个N-gram是指某个给定句子中由n个项目组成的子序列。此处的项目根据不同的应用可以是字母,单词或者词组。以一个缺陷讲演的概述为例说明如下: Bug-451416:”Unable to print in PDF” 假设本例中的项目是单词,则其3-gram序列为: {Unable, Unable to, Unable to prin,t to print in, print in PDF, in PDF, PDF} N-gram模型属于一种统计模型。设wi是文本中的任意一个项目,假如已知它在该文本中的前2 个项目wi-2wi-1,便可以用前提概率P(wi|wi-2wi-1) 来猜测wi泛起的概率。假如用变量W代表文本中一个任意的项目序列,它由顺序排列的n个项目组成, 即W =w1,w2,…,wn,则该项目序列W在文本中泛起的概率P(W)可展开为 P(W) =P(w1)P(w2|w1)P(w3|w1w2)…   P(wn|w1,w2,…,wn-1) (1)   由公式(1)可知为了猜测项目wn的泛起概率, 必需已知其前面所有项目的泛起概率,从计算上来看,该方法过于复杂。因此N-gram模型通常进行一种假设:第n个项目的泛起只与前面第N-1个项目相关,而与其它任何项目都不相关。

核心期刊推荐