论文部分内容阅读
自上世纪六七十年代,软件危机爆发以来,软件工程得到了空前发展,人们对软件的认识也越来越深刻,测试的地位也得到了前所未有的提高。而软件缺陷一直伴随着软件开发和测试的整个生命周期,所以对软件缺陷的研究一直都是软件工程的一个重要部分。目前,对软件缺陷的研究,一般有三有种:一种是从单一缺陷的角度,进行纵向研究;一种是从缺陷宏观指标的角度进行研究;一种是从缺陷关联的角度研究缺陷之间的相互影响。从单一缺陷的角度,主要是研究缺陷的来源和具体表现,以及如何预防,并研究如何对缺陷进行分类和如何构建缺陷模型。从缺陷宏观指标的角度,也是从软件质量保证的角度,主要是研究缺陷的宏观指标在软件开发生命周期的不同阶段的统计学变化,如缺陷数量的变化。从缺陷关联的角度,主要是研究同类项目中的缺陷关系,然后基于当前项目现有的缺陷数据,对项目中可能潜在存在的缺陷进行研究和预测。本文从缺陷关联的角度,基于Github上面三个成熟项目的缺陷数据,对缺陷之间的关联关系进行挖掘,从而发现缺陷各属性和缺陷之间的关联关系。首先,利用爬虫和Github提供的API,下载echarts、hexo和webpy这三个项目的缺陷数据。下载完缺陷数据后,选择缺陷分类的标准,并按照该标准对软件缺陷进行分类,从而每个缺陷都是一个具有多个属性的缺陷对象。并开发缺陷分类协作系统来帮助进行缺陷分类。其次,利用关联规则挖掘算法可以直接从大量这些多属性缺陷对象中挖掘出各个属性之间的关联关系。再对这些多属性对象进行聚类,将多属性对象分成若干类。将每个多属性对象对应到相应的分类,并且按时间进行排序,从而得到一个时间顺序的多属性缺陷对象序列。再利用“缺陷窗口”在这个多属性缺陷对象序列上生成关联规则挖掘的事务,从而就可以利用关联规则挖掘算法找到缺陷对象之间的关联关系。再次,挖掘出关于软件缺陷的两类关联关系后,对这些关系进行分析、过滤和筛选,得出最终的软件缺陷关联关系,并对这些关系作出解释。最后,分析了软件缺陷关联关系与软件测试设计的关系,并将软件缺陷关联关系应用到软件测试设计中。