基于抽象语法树的代码静态自动测试方法研究-论文.pdf

基于抽象语法树的代码静态自动测试方法研究-论文.pdf

ID:53028895

大小:84.43 KB

页数:5页

时间:2020-04-14

基于抽象语法树的代码静态自动测试方法研究-论文.pdf_第1页
基于抽象语法树的代码静态自动测试方法研究-论文.pdf_第2页
基于抽象语法树的代码静态自动测试方法研究-论文.pdf_第3页
基于抽象语法树的代码静态自动测试方法研究-论文.pdf_第4页
基于抽象语法树的代码静态自动测试方法研究-论文.pdf_第5页
资源描述:

《基于抽象语法树的代码静态自动测试方法研究-论文.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第34卷增刊⒛北京化工大学学报Vol.34,Sup.⒛2007年JOURNALOFBEIJINGUNIVERSITYOFCHEMICALTECHNOLOGY2007基于抽象语法树的代码静态自动测试方法研究112高传平谈利群宫云战(11北京图形研究所,北京100029;21北京邮电大学网络与交换技术国家重点实验室,北京100876)摘要:软件测试是排除软件故障,提高软件质量和可靠性的重要手段。从是否需要执行被测程序角度考虑,软件测试分为静态测试和动态测试。动态测试通过输入测试数据,动态执行程序来发现软件中存在的错误。尽管动态测试能发现部分软件错误,但对于一些特

2、殊类型错误的检测无效。鉴于此,本文采取了一种特殊的静态分析技术来实现对代码的测试。本文首先讨论了传统软件测试方法的缺点和局限性,给出了软件的故障模型,进而提出了基于抽象语法树的静态分析技术,并给出了故障自动检测算法。依据该算法开发了自动化测试工具,给出了实验结果和对比分析,并指出了下一步的研究方向。关键词:软件测试;静态分析;故障;故障模型;语法树中图分类号:TP30218(2)动态测试在很大程度上受测试人员自身素引言质和经验的影响。测试人员的经验和素质将会直接软件测试是排除软件故障,提高软件质量和可影响测试数据的设计,从而间接对测试结果产生影靠性的重要手段

3、。按是否需要动态执行被测程序考响。[1]虑,软件测试分为两类,即静态测试和动态测试。(3)动态测试的结果有时难以复现。某些故障静态测试是指不运行实际被测的源程序,而是通过的发生具有偶然性,这不仅与测试数据的选择有关采用其他手段对程序结构进行静态分析,获得程序系,而且与程序的操作逻辑及执行次数有关。结构的相关信息,并完成对软件故障的检测;动态测(4)动态测试对于一些特殊类型故障的检测无试通过输入测试数据,动态执行程序来发现软件中效。动态测试对于软件本身存在的一些深层次逻辑存在的错误。动态测试只存在于软件生存期的编码结构方面的错误或者一些比较特殊错误的检测是无阶

4、段之后。动态测试包括两个基本要素:一是被测能为力的。如动态测试对于不可达代码的测试无程序,二是测试数据,程序一次运行所需要的测试数效。据称为测试用例,所以测试数据是测试用例的集合。为了能有效地解决上述问题,本文采取了一种尽管动态测试能发现程序中存在的某些方面的错特殊的静态分析方法来实现对程序代码的静态检误,但是对于软件本身存在的一些深层次逻辑结构测,尤其是对于那些用动态方法无法检测的软件问方面的错误或者一些比较特殊的错误的检测是无能题。为力的。与静态测试相比,动态测试虽然能在软件1故障模型运行时发现一些软件故障,但又明显具有一定的局限性。在传统的软件测试方法

5、中,一个故障能否被检(1)动态测试的结果依赖于测试数据的选择。测到,是取决于该故障检测概率的大小,对软件中存好的测试数据往往能发现软件中存在的更多的故在的所有故障的检测而言,只能以故障检测的百分障,而不好的测试数据很难发现软件中存在的故障,比来衡量。如果一种故障的故障检测率比较高,则因此测试数据的选择至关重要。此种故障比较容易检测,否则故障就不容易被检测。目前所存在的软件测试方法,其测试理论的基收稿日期:2007-04-05础并不是基于故障模型,而是基于软件中所有可能第一作者:男,1977年生,博士生的故障。这种测试方法的优点是:E-mail:cpgzgy@

6、yahoo.com.cn(1)能够检测软件中的大部分故障;#26#北京化工大学学报2007年(2)测试的自动化程度一般比较高。这种分类方法对软件测试的实际意义是有限的。故但存在的问题也是很明显的。障变异的企图是建立软件测试的故障模型,但这种(1)传统的测试方法对/小概率故障0的检测是方法不太符合故障模型的第一个标准,而且由于对无效的。/小概率故障0是指那些检测概率很小的故变异的对象也不是很明确,它也难以计算实际要被-9-12障,例如10、10数量级等,如果不是专门针对检测的故障个数。因此,软件故障模型的研究势在这种故障进行测试,而采用传统的笼统的测试方法,必

7、行。这种故障一般是不大可能检测到的。2抽象语法树(2)有些故障是采用传统的测试方法一次性检测不出来的,如内存泄露故障等。采用一个测试用211基本概念例是很难检测到此类故障的。定义1语法树是描述程序语法结构的一种树(3)难以计算故障的检测效果。只能依概率统的图形表示,语法树描绘了如何从文法的开始符号计技术来评估故障的检测效果,难以精确计算。开始推导出它的语言中的一个语句。形象地说,语[3]由以上几点可以看出,使用传统的测试方法有法树是具有如下特性的树其局限性。这些测试方法只能用于一般的软件测试11树根标记为开始符号;当中。而对于可靠性要求比较高、各种标准比较严

8、21每个叶节点由记号标记;格的软件必须开辟新的途径进

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

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

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