o-o语言编译器测试用例的自动生成算法

o-o语言编译器测试用例的自动生成算法

ID:34147881

大小:294.42 KB

页数:7页

时间:2019-03-03

o-o语言编译器测试用例的自动生成算法_第1页
o-o语言编译器测试用例的自动生成算法_第2页
o-o语言编译器测试用例的自动生成算法_第3页
o-o语言编译器测试用例的自动生成算法_第4页
o-o语言编译器测试用例的自动生成算法_第5页
资源描述:

《o-o语言编译器测试用例的自动生成算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据2002年第16卷专刊测试技术学报voI.16Monp2002JOURNALOFTESTANDMEASUREMENTTECHNoLOGYo.o语言编译器测试用例的自动生成算法严伟,陈英,黄湘武,熊希达(北京理工大学计算机科学与工程系,北京l00081)摘要面向对象语言编译器自动测试工具的一个主要功能就是根据测试的需求目标和既定的测试方法,’自动生成面向对象程序语言的测试用例。本文从编译器测试的上述需求定位出发,基于兼顾深度测试和宽度测试的黑盒测试方法,分析研究了测试用例自动生成所面临的几

2、个主要问题。诸如,全涵盖符合面向对象语言标准(如Is0c++、ANsIc++)的语法和语义,测试用例的正确性保证和复杂性要求等:探讨j,从随机性、任意性方面实现一个满足测试需求的c++测试用例框架的相应算法。这些算法解决了测试用例中表达式、语句以及其它C++语言要素的生成,以及表达式、语句嵌套和数据结构的任意复杂性的问题。对于面向对象的编译器自动测试中的主要部分一用例生成器的设计与实现,具有一定的借鉴意义。关键字编译器测试:自动测试工具:测试用例生成:面向对象(0一O):1.引言编译器是使用最频

3、繁的系统软件之一,其与别的系统软件较大的区别就在于:编译程序本身就是一个软件的生成器,编译程序生成的软件是目标代码。因此,通过测试以保障编译器的正确性的任务尤为重要。对编译程序测试通常是采用一段称为测试用例的且假设没有错误的源程序,通过对其编译、运行,比较运行结果和预期结果。运行结果与预期结果的不同之处通常揭示了编译程序潜在的问题,一般是编译程序自身的缺陷。随着面向对象的理论和技术的日渐成熟,程序设计语言也从以前结构化程序设计语言转向面向对象的程序设计语言,编译器测试方法也应适应面向对象特性的研

4、究。由于面向对象的语言比结构化的语言具有更严格的约束,在语法上涉及更多的细节。面向对象语言的编译程序比结构化语言的编译程序更加复杂。面向对象编译器测试工具ooCTT的设计和实现是作为对面向对象语言编译器自动测试平台的研究与开发的一种尝试,其重点是研究编译器测试用例的自动生成方法与实现算法。用例生成算法目标及设计思想2.1用例生成算法的目标对编译器除了考虑常规编译程序的测试点以外,面向对象语言的特点及其对面向对象机制的支持将成为该类编译程序的重要测试内容。按照侧重点的不同,该类编译器的测试方法主要

5、有两种:度测试用例和深度测试用例。其中,宽度测试用例主要考虑全涵盖符合面向对象语言标准(如IsOC++)的语法和语义;深度测试用例主要涉及任意复杂性的问题。用例生成算法的一个目标是系统测试操作数和操作符的所有可能集合和任意深度。这是一个组合爆炸的过程。因此,要求系统必须在随机的基础上采用某种可控的手段进行各种组合,以达到深度测试所要求的任意复杂性。“可控”的具体含义是:+收稿日期:2002-03.23万方数据1236测试技术学报2002年6月(1)生成的测试用例必须是有效用例,不考虑无效用例,即

6、:不能生成存在语法、语义错误的用例(例如:用例中存在死循环、内存漏洞、永远执行不到的分支等);(2)可以根据测试需要生成满足一定条件的测试用例(例如:增加某种数据或语句类型的出现几率等)。因此,用例生成算法的目标是:在可控的前提下,自动随机生成面向对象语言的源程序,其生成的语言结构应该是符合面向对象语言的语法的,同时应该尽量体现各种语言要素间的关联性,使生成的源文件具有一定的语义。2.2用例生成算法的设计思想设计用例生成算法可以从其目标一测试用例的结构着手。任何程序都是由语言要素构成的,面向对象

7、的语言源程序由相互关联的多个函数组成,函数由各种语句组成,各类表达式、变量又是语句的组成成分。各个类的成员,方法和访问控制构成了程序的静态架构,各个对象和公有函数、变量以及函数调用构成了程序的动态架构。因此,构造面向对象的语言的源程序的过程如同搭建积木。首先确定测试用例程序的静态架构,如:用例的规模(有多少个类、每个类的规模等)、类之间的关系等:然后fff确定其动态架构,如:对象怎样和类进行映射,怎样构建主控函数,怎样调用函数等。在确定动态架构的时候,首先从最基本的简单变量入手,其次生成复杂变量

8、如结构、联合、枚举等组合类型及其变量,再由变量生成各种表达式,最后利用表达式构造各种语句,使之组成函数,相互关联的多个函数组织在一起,加上类间的关系、类和对象的映射,成员方法和公有方法之间的关联,就构成了面向对象语言源程序的主体框架。面向对象语言的测试用例/f/\\l类的继承关系函数调用关系函数、变量、类类与对象映射图1测试用例构造部件3.用例生成算法生成一个有效的用例的算法至少应该包括两个方面的内容:(1)生成合乎面向对象程序设计语言语法的源程序:(2)保证源程序合乎一定的语义。其中涵盖了:标

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

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

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