




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 7面向对象的类测试技术研究摘要:类是面向对象软件的基本构成单元,类测试是面向对象软件测试的关键。从基于服务的、基于对象动态测试模型的、基于流图的以及基于规约的四个方面论述了类测试的思想和方法。? 关键词:面向对象; 软件测试;类测试? 1 面向对象软件的类测试? 面向对象软件从宏观上来看是各个类之间的相互作用。在面向对象系统中,系统的基本构造模块是封装了的数据和方法的类和对象,而不再是一个个能完成特定功能的功能模块。每个对象有自己的生存周期,有自己的状态。消息是对象之间相互请求或协作的途径,是外界使用对象方法及获取对象状态的唯一方式。对象的功能是在消息的触发下,由对象所属类中定义的方法与相关对象的合作共同完成,且在不同状态下对消息的响应可能完全不同。对象中的数据和方法是一个有机的整体,测试过程中不能仅仅检查输入数2 / 7据产生的输出结果是否与预期的吻合,还要考虑对象的状态。模块测试的概念已不适用于对象的测试“类测试将是整个测试过程的一个重要步骤,它与传统测试方法的区别可用图1 来表示。? 面向对象软件的类测试与传统软件的单元测试相对应,但类包含一组不同的操作,并且某特殊操作可能作为一组不同类的一部分存在。同时,一个对象有它自己的状态和依赖于状态的行为,对象操作既与对象的状态有关,但也可能改变对象的状态。因此,类测试时不能孤立地测试单个操作,要将操作作为类的一部分;同时要把对象与其状态结合起来,进行对象状态行为的测试“类的测试内容分为:(1)基于服务的测试(测试类中的每一个服务);(2)基于状态的测试(考察类的实例在其生命周期各个状态下的情况);(3)基于响应状态的测试(从类和对象的责任出发,以外界向对象发送特定的消息序列的方法来测试对象的各个响应状态)。如图 2 所示。? 3 / 72 类测试技术? 基于服务的类测试技术? 基于服务的类测试主要考察封装在类中的一个方法对数据进行的操作,它可以采用传统的白盒测试方法。为克服软件测试的盲目性和局限性,保证测试的质量,提高软件的可靠性,下面我们介绍一种类的服务的测试模型及相应的测试策略。? BBD 通常有两种获取途径。一是采用逆向工程的方法根据源程序画出流程图,然后构造出 BBD。但这毕竟是在缺少软件开发前期的分析、设计文档或文档不齐全的情况下退而求其次的办法。当源程序不正确时构造出来的 BBD 就是错误的。另一种途径就是追根溯源,在软件的分析、设计阶段就根据测试的需要构造出相应的 BBD。这样就能从根本上解决问题,正确地指导类的服务的测试。?基于层次增量的类测试? 层次增量测试的基本思想是:首先分别测试父类的各个成员函数,再测试成员函数间的相互作用,把测试用例和执行信息保存在/测试历史中,在测试子类时,根据父类的测4 / 7试历史修改部分的定义以及实现语言的继承映射来决定子类中的哪些特征应当重测试以及父类的哪些测试用例可以复用。? 这种根据类间继承关系的层次特性对类进行增量测试的技术是由 M. Harrold 等人提出的,其特点是复用父类的测试信息来指导子类的测试。每一个子类看作由两部分组成:从父类继承的部分和修改部分,如图 3 所示,其中符号“|”为并置运算符。? 类中的特征被分为 6 种类型:新特征:子类中新定义的特征;递归特征:在父类中定义、未被子类重定义的继承特征;重定义特征:在父类中定义、又在子类中重定义的特征,重定义特征在子类中屏蔽了同名(同参数表)的父类特征;虚新特征虚特征是指其实现尚不完整、留待子类重定义的特征,虚新特征是指子类中新定义的虚特征;虚递归特征:在父类中定义的虚特征,被子类继承后未重定义的特征;虚重定义特征:在父类中定义的虚特征,在子类中被重定义的特征,重定义特征在子类中屏蔽了同名(同参数表)的父类特征。? 5 / 7父类中各个成员函数的测试采用传统的单元测试技术,可以把传统的基于规约和基于程序的测试技术相结合选择测试集。类中每一个成员函数的测试历史是一个三元组?m?i(TS?i,test),(TP?i,test),其中 m?i 为成员函数;TS?i 为基于规约的测试集;TP?i 为基于程序的测试集;test标识该测试集是否要(重)运行。? 同一类中成员函数的相互作用的测试实际上是一种集成测试,如何进行这一测试是根据类图来确定的。在类图中,节点表示类中的一个成员函数或数据成员,有向边表示发送消息。测试数据集的选择也可应用基于规约和基于程序的测试方法。测试历史的形式也是一个三元组?m?i(TIS?i,test),TIP?itest,其中 m?i 是类图中某一子图的根节点;TIS?i 是基于规约的集成测试集;TIP?i?是基于程序的集成测试集; 取表示该测试集要全部(重)运行,取表示部分(重)运行,取表示无需(重)运行。一个类的测试历史是各成员函数测试历史的集合和集成测试历史集合的并集。? 基于流图的类测试技术? 6 / 7把传统的基于流图的测试技术应用于类测试提出了一种构造类流图的框架。在类流图中,节点表示操作,操作A 和操作 B 之间的有向边表示允许某引用类(client)在调用操作 A 之后调用操作 B,确定节点间是否可以联边的依据是该类的规约。? 传统程序流图的测试充分性准则可以在类流图中找到对应,如类流图的节点覆盖要求测试时的操作序列应使每个操作至少执行一次,分支覆盖要求测试时的操作序列应覆盖类流图中的每条边至少一次。还可以在类流图上给出类似于数据流的定义性出现!引用性出现、定义-引用对等概念。在类流图中,所有对象的定义性出现和引用性出现根据操作(节点)中是否定义或引用该对象来确定,然后在谓词性引用和控制操作。计算性引用和非控制操作之间建立对应关系,从而可以类似地给出数据流准则中的定义覆盖准则、引用覆盖准则和定义-引用路径覆盖准则等。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解读中华人民共和国家庭教育促进法
- 2025款新能源汽车按揭交易服务合同范本
- 2025年度全国联动玉米精深加工原料物流配送合同范本
- 2025年跨境电商仓储物流一体化服务采购合同
- 2025年度网红电商直播合作销售及内容制作执行合同
- 2025年租赁住房房屋质量监管与修缮服务合同
- 2025-2026赛季足球俱乐部球员全面身体素质提升合同
- 2025年新型太阳能热水器系统升级改造服务合同
- 2025年智慧社区绿色环保物业综合管理服务协议
- 2025年企业年度车辆无偿赠与接收管理合同
- 教师课堂管理方法和技巧课件
- 小学科学教师专题培训课件
- 伍德灯在寻找炎症性皮肤病变中的应用价值研究
- 新版药品管理法培训试题
- 合同的订立与有效性
- 钢结构长廊施工方案
- 临床检验专业医疗质量控制指标(2015版)
- 信保业务自查问题统计表
- 2023年大学试题(大学选修课)-创业:道与术考试历年真摘选题含答案
- 心理健康评定量表
- 河道修防工高级工试题
评论
0/150
提交评论