资源描述:
《面向对象检测测验论文:面向对象的类检测测验技术分析研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象测试论文:面向对象的类测试技术研究摘要:类是面向对象软件的基本构成单元,类测试是面向对象软件测试的关键。从基于服务的、基于对象动态测试模型的、基于流图的以及基于规约的四个方面论述了类测试的思想和方法。 关键词:面向对象;软件测试;类测试 1面向对象软件的类测试 面向对象软件从宏观上来看是各个类之间的相互作用。在面向对象系统中,系统的基本构造模块是封装了的数据和方法的类和对象,而不再是一个个能完成特定功能的功能模块。每个对象有自己的生存周期,有自己的状态。消息是对象之间相互请求或协作的途径,是外界使用对象方法及获取对象状态的唯
2、一方式。对象的功能是在消息的触发下,由对象所属类中定义的方法与相关对象的合作共同完成,且在不同状态下对消息的响应可能完全不同。对象中的数据和方法是一个有机的整体,测试过程中不能仅仅检查输入数据产生的输出结果是否与预期的吻合,还要考虑对象的状态。模块测试的概念已不适用于对象的测试“类测试将是整个测试过程的一个重要步骤,它与传统测试方法的区别可用图1来表示。 矚慫润厲钐瘗睞枥庑赖。 面向对象软件的类测试与传统软件的单元测试相对应,但类包含一组不同的操作,并且某特殊操作可能作为一组不同类的一部分存在。同时,一个对象有它自己的状态和依赖于状态的行为,对象
3、操作既与对象的状态有关,但也可能改变对象的状态。因此,类测试时不能孤立地测试单个操作,要将操作作为类的一部分;同时要把对象与其状态结合起来,进行对象状态行为的测试“类的测试内容分为:(1)基于服务的测试(测试类中的每一个服务);(2)基于状态的测试(考察类的实例在其生命周期各个状态下的情况);(3)基于响应状态的测试(从类和对象的责任出发,以外界向对象发送特定的消息序列的方法来测试对象的各个响应状态)。如图2所示。 聞創沟燴鐺險爱氇谴净。 2类测试技术 2.1基于服务的类测试技术 基于服务的类测试主要考察封装在类中的一个方法对数据进行
4、的操作,它可以采用传统的白盒测试方法。为克服软件测试的盲目性和局限性,保证测试的质量,提高软件的可靠性,下面我们介绍一种类的服务的测试模型及相应的测试策略。 残骛楼諍锩瀨濟溆塹籟。 BBD通常有两种获取途径。一是采用逆向工程的方法根据源程序画出流程图,然后构造出BBD。但这毕竟是在缺少软件开发前期的分析、设计文档或文档不齐全的情况下退而求其次的办法。当源程序不正确时构造出来的BBD就是错误的。另一种途径就是追根溯源,在软件的分析、设计阶段就根据测试的需要构造出相应的BBD。这样就能从根本上解决问题,正确地指导类的服务的测试。酽锕极額閉镇桧猪訣锥。2
5、.2基于层次增量的类测试 层次增量测试的基本思想是:首先分别测试父类的各个成员函数,再测试成员函数间的相互作用,把测试用例和执行信息保存在/测试历史中,在测试子类时,根据父类的测试历史修改部分的定义以及实现语言的继承映射来决定子类中的哪些特征应当重测试以及父类的哪些测试用例可以复用。 彈贸摄尔霁毙攬砖卤庑。 这种根据类间继承关系的层次特性对类进行增量测试的技术是由M.Harrold等人提出的,其特点是复用父类的测试信息来指导子类的测试。每一个子类看作由两部分组成:从父类继承的部分和修改部分,如图3所示,其中符号“
6、”为并置运算符。 謀荞抟箧
7、飆鐸怼类蒋薔。 类中的特征被分为6种类型:新特征:子类中新定义的特征;递归特征:在父类中定义、未被子类重定义的继承特征;重定义特征:在父类中定义、又在子类中重定义的特征,重定义特征在子类中屏蔽了同名(同参数表)的父类特征;虚新特征虚特征是指其实现尚不完整、留待子类重定义的特征,虚新特征是指子类中新定义的虚特征;虚递归特征:在父类中定义的虚特征,被子类继承后未重定义的特征;虚重定义特征:在父类中定义的虚特征,在子类中被重定义的特征,重定义特征在子类中屏蔽了同名(同参数表)的父类特征。 厦礴恳蹒骈時盡继價骚。 父类中各个成员函数的测试采用传统的单元
8、测试技术,可以把传统的基于规约和基于程序的测试技术相结合选择测试集。类中每一个成员函数的测试历史是一个三元组{mi(TSi,test),(TPi,test)},其中mi为成员函数;TSi为基于规约的测试集;TPi为基于程序的测试集;test标识该测试集是否要(重)运行。 茕桢广鳓鯡选块网羈泪。 同一类中成员函数的相互作用的测试实际上是一种集成测试,如何进行这一测试是根据类图来确定的。在类图中,节点表示类中的一个成员函数或数据成员,有向边表示发送消息。测试数据集的选择也可应用基于规约和基于程序的测试方法。测试历史的形式也是一个三元组
9、{mi(TISi,test),TIPitest},其中mi是类图中某一子图的根节点;T