依赖观察矩阵视野之软件故障定位科技概述

依赖观察矩阵视野之软件故障定位科技概述

ID:24706352

大小:50.50 KB

页数:5页

时间:2018-11-14

依赖观察矩阵视野之软件故障定位科技概述_第1页
依赖观察矩阵视野之软件故障定位科技概述_第2页
依赖观察矩阵视野之软件故障定位科技概述_第3页
依赖观察矩阵视野之软件故障定位科技概述_第4页
依赖观察矩阵视野之软件故障定位科技概述_第5页
资源描述:

《依赖观察矩阵视野之软件故障定位科技概述》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、依赖观察矩阵视野之软件故障定位科技概述第1章绪论1.1研究背景随着软件系统的日益发展,人们对其可用性、可靠性等给予了更高的期望和要求。如今的软件无处不在,软件中的程序错误无论多么微小,有时也会造成很大的危害,例如美国亚特兰大Hartsfield-Jackson国际机场,该机场是世界上最繁忙的机场之一,安检通道门的警告装置会经常通过一些模拟的炸弹或者一些在X-光检验机上显示的难以被查出的可疑物品来进行检查,当检查出这些物品时,安检系统会稍作延迟之后报告这仅仅是个测试;然而在2006年4月16日,一位美国国土安全局运输安全委员会的

2、雇员通过安检装置查到了可疑物品的影像报告,但是他并不清楚这是安全通道的自检时间而且最重要的是安全通道在自检之后没有发送测试报告,这就导致了这位雇员上报情况之后,亚特兰大机场疏散大批旅客,使得120架次航班延误,造成大批量旅客滞留机场,造成了巨大损失,然而最终的调查结果显示,安检通道的程序代码中,对于自检报告的数据类型设置是存在漏洞的,这是导致此次事故的根本原因⑴。作为保障软件质量的主要手段,软件测试是计算机软件开发过程中的一项耗时费力工作[2]。软件测试通过比对程序的运行结果与预期结果发现可能的程序错误,并进行测试文档的填写。

3、比对不一致时还要进行程序调试,程序调试是软件测试中的最重要环节,它能够找出引起软件失效的故障原因所在,然而它也是软件开发过程中最耗时的过程,数据表明50%到80%左右的工作量花费在减少程序中的错误。程序调试主要包括检测、定位、修正程序中的故障,而故障定位又是这些过程中最难的一个环节。程序员通常使用某些调试工具对程序进行手工故障定位,他们通过设置断点,单步执行程序并查看中间结果来进行故障的查找,虽然手动方法的好处是找到故障之后即可将其进行改正,但是在这个过程中,消耗了大量的人力资源,而效率却是与软件规模成反比。因此研宄软件故障定

4、位技术具有十分重要的现实意义。1.2研究内容本论文研宄内容是利用Siemens测试套件作为实验目标程序(面向过程的C语言程序),静态获取测试套件中的7个测试程序的依赖关系,并利用依赖关系对待测程序进行插装,使用对应的测试用例执行程序获取依赖关系的覆盖信息构造基于依赖对的观察矩阵,利用观察矩阵进行逻辑推理并结合贝叶斯概率更新模型对依赖对进行故障定位,具体内容如下:静态分析并获取程序依赖关系,分析抽象语法树转储(AST-dump)文件,并遍历AST从而分析程序依赖关系,包括了控制依赖以及数据依赖。利用分析得到的依赖关系对原待测程序

5、进行插装,即在源程序代码中插装相应依赖关系的输出语句代码;还可以引入配置文件,在配置文件中指定相应的插装信息,从而根据需要获取不同的插装执行结果。构造基于依赖对的观察矩阵,利用静态分析得到的依赖关系构造出观察矩阵的列数,并且根据测试用例的个数构造出观察矩阵的行数,再利用每个测试用例执行插装代码所得到的依赖对覆盖信息得到了观察矩阵中对应行列的值。第2章软件故障定位技术概述2.1基于静态分析的故障定位技术具有代表性的故障定位方法有静态切片技术,odelChecking)后,利用反例(Counterexample)信息和路径约束在S

6、AT求解器下搜索反例的最近证据()处理器,主频为3.80GHz,内存为:3G。本实验的实验对象时Siemens测试套件,期目录结构己经在第四章中详细的介绍过。由于现有故障定位技术大都采用该套件作为进行故障定位效果分析的依据,Siemens测试套件已经作为现有各个故障定位技术实验结果的对比基准。因此本文在实验部分也使用了该套件作为实验对象并与其他故障定位技术进行对比分析。Siemens测试套件中含有7个待测程序,每个程序中含有正确代码(存储于source目录下),一系列的故障版本的源程序代码(存放于versions目录下)以及数

7、以千计的测试用例,该套件每个待测程序的目录结构在第四章中已经详细的进行说明了,这里就不再进行复述。结论本文介绍了现有故障定位技术以及其所使用到的模型及方法,总结了现有故障定位技术的优缺点。在此基础上,本文围绕基于模型诊断的故障定位技术以及基于程序谱的故障定位技术展开论文工作,提出依赖观察矩阵的概念,改进了Abreu的软件故障定位方法。为构造依赖观察矩阵,本文采用了静态分析与动态分析相结合的方法。静态分析过程主要包括了得到AST-dump文件,读取并分析AST-dump文件,统计依赖关系(控制依赖以及数据依赖),根据依赖关系对源

8、程序进行插装;动态分析过程主要包括执行正确程序与故障版本程序,比较差异得到失效的测试用例,执行插装后的程序得到依赖对的覆盖信息。本文采用的方法较之原有基于观察矩阵的模型主要有以下改进,第一点是将原有观察矩阵模型中的元素由面向程序单一语句改进为面向程序依赖对,并将观察矩阵具体划

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。