论文部分内容阅读
图形用户界面缺陷产生的一个可能原因是:代码中存在code smells,导致重构问题,引起图形用户界面缺陷。在软件缺陷报告的辅助下,可以较快定位缺陷代码,以此加快图形用户界面缺陷的修复。但是,软件缺陷报告日益庞大,难以查阅和提取。为研究存在code smells的代码与图形用户界面缺陷之间的关系,以及通过软件缺陷报告定位图形用户界面缺陷,本文主要开展以下三方面研究:code smells检测方法、软件缺陷提取方法以及图形用户界面测试。针对code smells检测方法,本文在论述检测策略的分化性、病原体处理、信号处理等特点基础上,将人工免疫的基本概念、信号迁移到软件工程,提出一种基于危险理论中的树突状细胞算法的检测策略。该检测策略将code smells的代码作为抗原,软件度量值转化为危险信号和安全信号等输入信号进行处理,通过权值公式获得成熟信号以及半成熟信号,比较其相对值高低确定代码是否为code smells,最终根据成熟环境抗原值决定各种code smells严重程度的优先次序。该检测策略具有较低假阳性率,实验证明该研究在F-score(0.784)和Kappa分析(0.756)上均有效,高于其它检测方法。针对软件缺陷提取方法,本文提出一种基于文本挖掘和贝叶斯分类器的软件缺陷提取方法,该方法首先合并缺陷报告中的同义词,然后建立空间向量模型,使用词频反文档频率以及信息增益等文本挖掘的方法来收集软件缺陷报告中单词的特征,同时设计一种基于单词数量的算法确定句子复杂度以选择长句。最后将贝叶斯分类器引入该领域。该方法可以提高缺陷报告提取的命中率,降低虚警率,实验证明本文方法在接受者工作特征曲线面积(0.71)、F-score(0.80)和Kappa值(0.75)方面有良好效果。针对图形用户界面测试,本文通过引入离散并行系统的Petri网理论,定义了图形用户界面的事件、事件序列和事件分解等概念,将可达性、有界性、活性以及强连通性等Petri网的重要性质延伸至此领域,以提高图形用户界面测试的覆盖面和效率。并且,试图解决不可达、不强连通、死锁、无界、不符合初始模型和跳转错误等六类图形用户界面缺陷问题。实验证明基于Petri网的图形用户界面测试在事件覆盖数、代码行覆盖数以及缺陷发现数等方面比传统简单的随机测试更有效。在以上三个基础研究之后,通过实验,本文得出两点结论:(a)通过引入互信息相关分析,本文发现存在code smells问题的代码容易导致图形用户界面问题。特别的,若软件版本持续快速升级,code smells会长期严重威胁图形用户界面的可靠性。(b)通过对软件缺陷报告的提取,可加速图形用户界面缺陷的定位。