论文部分内容阅读
随着软件规模的日益增大,软件的复杂度也越来越高,这就使得原本已经很费力的调试任务更加艰巨,特别是占调试任务大部分精力的错误定位,于是,依靠人力来进行软件排错越来越不切实际,为了减轻程序员在软件开发和维护过程中的沉重负担,各种错误定位的自动化工具也应运而生。
在现有的各种错误定位方法中,TBFL (基于测试信息的错误定位) 方法相对于同类型的错误定位方法取得的实验效果一般较好,但是基于此类方法的错误定位工具大多数没有集成测试环境,更多地依赖于已有的测试信息,而且也缺乏成熟的IDE的支持,即使有些工具集成了测试或者IDE方面的功能,也存在着效率低下,限制较多的缺点。
为了能够有效地解决错误定位的自动化,本文的工具基于SAFL (基于测试用例相似性的错误定位)算法,以Eclipse插件的形式设计并实现了错误定位工具。
基于SAFL算法的错误定位工具以帮助程序员进行软件排错为主要目标,本文从测试和排错之间的联系开始入手,详细说明了测试信息对错误定位的不可忽视的作用,并介绍了相关工作和技术。接着,本文提出了基于SAFL 算法的错误定位工具的设计框架,并将该工具分为三个部分分别实现:
第一部分,用户交互部分。这一部分的主要功能是系统获取用户输入信息和系统向用户展示结果。工具利用Eclipse的扩展点支持实现了工具的输入数据定制,并且将工具执行结果跟IDE结合起来;
第二部分,业务逻辑部分。这一部分的主要功能是收集测试执行信息并对这些测试数据进行分析。收集测试执行信息和数据分析是相互独立的两个部分,收集测试执行信息利用了EclEmma的语句覆盖,数据分析是根据SAFL 算法来处理测试执行信息;
第三部分,数据存储部分。这一部分的主要功能是存储测试执行信息,由业务逻辑部分的收集测试执行信息模块将数据存储到xml文档中,以便于数据分析。