论文总字数:25306字
摘 要
软件开发周期中软件调试,测试占有重大比重,因此一种高效的软件故障定位技术对于软件的高效开发有着重大作用,基于程序切片的软件故障定位技术由于其高效性成为了当前软件测试领域的研究热点。本文提出了一种结合感染变量分析与程序切片的软件故障定位技术,该技术通过收集对应测试用例的执行轨迹获得感染变量集合并结合程序切片谱计算语句可疑度,通过可疑度大小排序进行故障定位,以提高定位的效率,改善故障修复成本。文章还进行了相关实验,结果表明该技术具有较好的可行性和高效性。
关键词:程序切片,感染变量,程序切片谱,可疑度,故障定位
Design and implementation of software fault location tool based on JAVA program slicing
Abstract
In the software development life cycle, software debugging and testing occupies a significant proportion, so an efficient software fault localization techniques for efficient software development has a significant role, software fault localization based on program slicing because of its high efficiency become research hotspot in the field of software testing. This paper presents a kind of infection with variable analysis and program slicing software fault localization technique, the technology through the collection corresponding test case execution trace of the acquired infection variables set incorporates program slicing spectrum calculation statement suspicious degree, fault location through the sort of the suspicious degree and to improve the positioning efficiency, improve the repair cost of failure. The related experiments are carried out and the results show that the technology is feasible and effective.
KEY WORDS: program slice, Infection variable, Program slice spectrum, anomaly degree, fault location
目录
基于JAVA程序切片的软件故障定位工具设计与实现 2
第一章 绪论 5
1.1 引言 5
1.2 研究现状 5
1.2.1 故障定位技术 5
1.2.2程序切片技术 6
1.2.3 可疑度计算方法 6
1.3 研究内容 7
1.4 论文组织结构 7
第二章 结合变量感染分析与程序切片故障定位技术 8
2.1 程序切片 8
2.1.1 程序切片准则 9
2.1.2 程序切片算法 9
2.2.1 运行轨迹获取步骤 10
2.2.2 运行轨迹的表示 10
2.2.3 程序插装 11
2.3获取感染变量集合过程 12
2.4 程序切片谱 15
2.5 感染变量分析与故障定位 16
2.5.1 程序切片集合操作技术与轨迹集合操作技术 17
2.5.2 获取感染变量集合过程 18
第三章 实验结果与分析 21
3.1 实验测试对象 21
3.2 实验工具 21
3.3 实验过程 21
3.4 实验结果分析 25
第四章 相关工作 27
第五章 总结与展望 28
第六章 致谢 29
参考文献 30
绪 论
1.1 引言
在软件开发过程中程序员需要不停的调试测试程序,发现程序中的故障并加以改正,然而程序错误的发现即故障的定位并不是一件容易的事情,原因是当前科技的进步,软件的规模越来越大,逻辑结构复杂不一。软件的故障定位是软件调试过程中最困难耗时的过程,因此自动化的软件故障定位技术是当前的研究热点之一。
在程序调试过程中,调试人员的目标应该有两个:一是准确地定位出错代码或是找出出错代码存在的范围;二是加深对程序内容的理解,包括对其结构、功能等等方面的理解。因此在研究新的调试工具或方法时应尽可能使调试人员更加高效地达到这两个目标。调试的基本过程为:1.输入值并运行程序;2.发现存在错误;3.定位错误;4.纠正错误;5.再次检查程序;6.获得正确程序。其中,第1、2步是在某输入值的情况下发现程序运行出现异常,表明在该程序中存在错误,这样便需要通过调试找出错误,并改正它。第3步“定位错误”在整个调试过程中通常是既耗时又费力的工作,尤其当调试由其他程序员所写的程序时,在调试的同时还要花费大量的时间和精力理解整个程序的结构、各个部分之间的关系等等,这样才能准确、快速地找出程序中存在的各种错误。目前正在研究的各种调试方法和工具主要是提高第3步的效率,这些方法和工具帮助我们更快地找出程序中的错误。第4步是在找出程序错误后做出修改,第5步主要对修改后的程序进行再次检查,因为有些部分修改后可能会引入新的错误,这一步可以检验对程序的修改是否正确,第5步完成后便可以得到正确的程序,完成调试工作[1]。错误定位是软件调试活动中最困难、最耗时的任务之一[2],特别是当前软件越来越复杂多样,迫切需要自动化或半自动化技术以提高错误定位的效率。自动化或半自动化的错误定位技术也正成为当前的研究热点之一。
由于在软件开发语言中,在软件开发语言中,Java语言是一门简单的、面向对象的、健壮安全的、分布式的、结构中立、可移植性强、高效能、支持多线程的、动态的程序设计语言。Java的卓越特性使得它在各个领域获得了广泛的应用。同时,随着计算机软件技术的发展,Java软件系统的规模也逐渐扩大,如何高效地对大规模的软件系统进行软件测试、程序理解、调试、维护等问题受到研究者们的广泛关注。
本文提出了一种在基于程序谱故障定位技术[1]的基础上改进的结合变量感染分析[2]与程序切片[3]的故障定位技术
1.2 研究现状
剩余内容已隐藏,请支付后下载全文,论文总字数:25306字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;