软件测试 第5章 面向对象软件的测试.ppt_第1页
软件测试 第5章 面向对象软件的测试.ppt_第2页
软件测试 第5章 面向对象软件的测试.ppt_第3页
软件测试 第5章 面向对象软件的测试.ppt_第4页
软件测试 第5章 面向对象软件的测试.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件测试教程,第5章面向对象的软件测试,教授内容,5.1面向对象测试概述,1对象对象是封装在特定数据(属性)和任务中的整个对象,对象通过消息机制进行交互。对象是测试的最直接目标,测试的重点是目标是否符合要求,对象与对象是否可以协作。程序运行时,每个对象都会创建、访问、修改和删除称为对象生命周期的四个茄子进程。测试物件需要使用多种茄子方法来测试物件的状态是否符合生命周期。5.1.1面向对象的基本概念,2类是具有相同或相似特性的对象的抽象集合。因此,对象的抽象是类,类的实体化是对象,类的实例可以说是对象。测试类时,应考虑对象初始化过程是否正确,因为类通过函数配置创建新对象并初始化新对象。3封装包将

2、对象的属性和方法结合在一起,尽可能隐藏内部细节。封装的对象只能知道输入和输出,内部操作过程也不能知道,内部数据的实际状态也不能知道。牙齿功能简化了对象的使用,并给测试带来了困难。4继承继承是类之间的连接,类可以通过派生创建新类,派生的新类称为子类。继承机制允许子类继承父类的特性和功能,同时具有自己的特性和功能。牙齿功能提供了缺陷扩散的途径,如果父类有缺陷,派生子类也有缺陷,可能会给后续开发带来隐患。5多态提供了将对象称为一种或多种类型的功能。多态性由多种茄子形式组成,包括参数多态性、多态、过载多态性等。参数多态是一种功能,允许您根据一个或多个参数类型定义类型。包含多态是同一类徐璐具有不同表示的

3、现象,可以通过参数功能替换对象。多态性提高了软件灵活性和可重用性,同时将测试工作量增加了一倍。学生名称的年龄、研究生导师研究的方向、本科生班级主修、消息包含在节目运行时消息发送者可以向接收者发送参数值或通过接收者返回给发送者的文件,因此,测试时应考虑在消息处理之前和处理后传递的参数是否可修改,以及对象状态是否正确。7介面接口是由定义类的已完成公共行为集的规范组成的动作声明的集合。接口不是孤立的,而是与类和其他接口相关的。因此,测试时,请考虑接口中包含的行为是否与类的行为匹配。5.1.2面向对象的开发方法,传统的面向流程的开发方法是面向流程、以算法为中心,因此面向流程的编程语言节目=算法数据。面

4、向对象的开发方法以对象为中心,以消息为中心,因此面向对象程序设计语言节目=对象消息。下面讨论用现有开发方法开发的软件问题。1软件可重复使用性可重复使用性是指无需修改或稍做修改即可多次重复使用的性质。用传统的面向过程的方法开发的软件,可重用性很低,模块和模块之间的结合很强,很难分割和扩展。2在软件可维护性软件开发过程中,软件可读性、可修改性和可测试性是软件的重要指标。由于使用传统的面向流程开发方法开发的软件,每个功能模块都是强耦合。修改一个模块的算法或参数可能会导致另一个模块的功能瘫痪。也就是说,使用现有方法开发的软件修改的可能性很低,直接导致软件维护成本和成本。3软件可靠性软件可靠性主要取决于

5、能否满足客户的需要。如果能满足客户的需要,就不需要改变软件结构,软件稳定性比较稳定。相反,如果不能满足客户的需要,软件结构需要大的变化,软件不稳定。传统的开发方法是基于流程设计的,客户的要求是针对功能的,如果功能要求发生变化,对现有方法的设计是灾难性的。(David asself,Northern Exposure(美国电视电视剧),成功),面向对象的软件开发面向对象分析(OOA),面向对象设计(ood)和面向对象程序设计(object oriented design)也就是说,选择基于需求分析的对象和类的过程。分析步骤如下:(1)获取功能要求;(2)根据功能要求确定系统的类和对象;(3)确定

6、类的层次结构、属性和方法;(4)对象建模:建立与对象的连接时,面向对象的分析的核心是识别系统功能中的对象并分析它们之间的关系。5.1.3面向对象的分析和设计,面向对象的分析的主要原则如下:(1)抽象:数据抽象(2)封装(3)继承:公共属性和服务(4)分类:使用类作为对象的抽象说明。(5)聚合(6)连接:连接单个对象(7)消息通信:对象之间仅通过消息进行通信(8)粒度控制(9)行为分析:每个行为的依赖性,交叉情况。2物件定向设计(ood)是物件定向设计(ood),可根据OOA中识别的类别和物件,将软件系统设计为OOP的基础。整个设计过程分为系统设计和对象设计。系统设计过程如下:(1)系统分解:补

7、充或修改需求模型(2)确定并发:并发(3)确定设计人机交互子系统:指令(4)设计任务管理子系统:确定和执行各种任务的相应硬件或软件分配(5)设计数据管理子系统,面向对象设计,核心是类设计设计类的方法应遵循相应的设计原则。(1)单一责任原则,(2)开闭原则,(3)替代原则,(4)倒置原则,(5)介面分离原则,模式是对实体特性和变化规律的表述或抽象。有三个茄子公用模型,对象模型。1对象模型对象模型表示静态、结构化的系统数据特征,描述系统的静态结构,表示对象的相互关系。牙齿模型包含(1)对象和类(2)关联和链(关联是链的抽象,链是关联实例)的元素方面。(3)类的层次结构:聚合是“全部部分”关系。通常

8、是“一般而言”的关系。5.1.4面向对象的模型,教材结构的集合树,一家公司的对象模型,上图对应的ER图,2动态模型动态模型是与时间和变化相关的系统属性。牙齿模型描述了系统的控制结构,表示瞬时和行为的系统控制。牙齿模型中描述的系统属性是触发事件、事件序列、状态、事件和状态的组织。牙齿模型包含以下元素(1)事件:在指定时刻发生的任何事件。(2)状态:对象属性值的抽象,表示对象对输入事件的响应。(3)状态图表:反映状态和事件的关系。3功能模型功能模型说明了从输入到输出值的多个数据流图组成的方法。数据流图形表示从源对象到目标对象的数据值流。(1)处理:更改数据值(2)处理、处理和连接到对象输入、处理和

9、处理的数据流:对象的输出。(3)动作物件:建立或使用资料值驱动资料流程图。(4)资料仓库物件:用于储存资料。牙齿三个茄子模型分别说明了要从三个茄子方面开发的系统,功能模型表明了系统应该“做什么”。动态模型明确规定了什么时候(即在什么状态下)触发什么事件。物件模型定义工作的实体。因此,对象模型是面向对象方法中最基本和最重要的,它为其他两种模型奠定了基础。我们依靠对象模型完成三个茄子模型的集成。面向对象程序的基本组件是类,因此面向对象的测试是类测试。在面向对象的层次结构中,面向对象的测试可以分为类测试、集成测试和系统测试三个阶段。(1)类测试策略类测试主要进行结构测试和功能测试。由三部分组成。基于

10、服务的测试基于状态的测试响应基于状态的测试,5.1.5面向对象的软件测试策略,(2)集成测试策略将在类测试中通过的单个类,装配为特定规则以执行整体功能测试。集成测试阶段应包含根据设计阶段的说明绘制对象图的内容。开发由通信端口输入事件驱动的类。开发与关键类直接相关的类。与基类直接相关的类。测试新合并的模块在未合并的模块中,选择新类作为下一步的合并类。(3)系统集成战略:根据软件实际功能要求全面测试整个软件系统。5.1.6面向对象的测试模型,面向对象的软件测试:面向对象的分析测试(OOAT),面向对象的设计测试(OODT),面向对象程序设计测试(OOPT)。(1)面向对象分析的测试面向对象分析阶段

11、的主要任务是设计需求分析和类、对象和结构。需求分析决定后形成面向对象的分析文档,因此牙齿阶段的测试主要是为了测试文档,考虑对确定的对象进行测试。已验证结构的测试已验证主题的测试与定义的属性和实例相关联的测试与定义的服务和消息相关联的测试。(2)面向对象设计测试面向对象设计阶段的主要任务是详细设计在面向对象分析阶段概述的类和结构,将其组织到类库中,将分析结果抽象到问题空间。因此,面向对象的设计是面向对象分析的额外精细曹征和高级抽象。设计完成后,还形成了面向对象的设计文档。因此,牙齿阶段的测试也是对文档的测试,考虑对已标识类的测试。配置的类层测试类库的支持测试,(3)面向对象程序设计测试面向对象程

12、序通过类操作实现软件功能。更确切地说,是能够正确实现功能的类,通过消息传递共同实现设计要求。因此,面向对象程序设计测试需要忽略类功能实现的细节,重点关注类功能实现和相应的面向对象的节目样式。这包括数据成员是否满足数据封装的要求。类是否实现了所需的功能,5.2面向对象的单元测试,5.2.1基于服务的类测试技术,基于服务的类测试主要通过封装在类中的茄子方法调查数据的活动。可以使用现有的黑色白盒测试方法,包括基本路径方法、插入档案方法、边值方法、问题解决方法、等效类方法等。但是为了克服软件测试实名和限制,保证测试质量,提高软件可靠性,提出了Kung牙齿提议的块分支图。1基于服务的类测试策略,类类名结

13、果类型服务(参数1、参数2、参数3、参数4、参数n) if(条件1) return结果1;If(条件2)返回结果2;else if(条件n) return结果n;Else return结果n 1;2实例1测试,类Rectangle设计,要求:(1)类的专用变量存储Rectangle的长度和宽度,并将默认值设置为1。(2)通过会员函数设定长度和宽度,确保长度和宽度都在(0,50)范围内。(3)求周长Perimeter。class rectangle public 3360 rectangle(float w=1,float h=1) set (w,h);配置Void Set(float w,fl

14、oat h) if(w0,BBD图,以在基于基本路径测试的结构测试中测试类CRectangle的设置服务,以查找语句复盖范围和分支复盖错误。基本路径测试主要是根据软件过程说明中的控制流程决定来确定复杂性,定义基本路径集来设计测试用例。设计的测试用例要求在测试期间程序中的每个可执行语句至少运行一次,具体步骤如下:(1)绘制服务的控制流程图表,(2)确定程序中每个可执行语句至少执行一次的默认路径集。独立的路径集包括:路径1:-;path 2:-;路径3: -。(3)生成测试用例,并选择相应的数据,以便根据判断测试每个基本路径。只要设计的测试用例确保这些路径的执行,程序就可以执行每个可执行语句一次或

15、多次,并测试每个条件的分支。基于5.2.2状态的类测试技术,基于1状态的类测试策略状态测试的主要思想是调查生命周期中每个状态下类实例的状态。测试对象的响应状态,方法是向对象外部发送特定的消息序列。由于执行前对象状态的更改,同一成员方法可以执行完全不同的功能,用户对对象方法的调用不确定,因此牙齿部分的测试变得非常复杂,超出了现有测试的范围。因此,配置了OSD模型,进行了类状态测试。0bject State Diagram(0SD)模型是用于测试对象状态行为的测试模型,它描述了生命周期中所有状态和状态之间的相互转变。OSD型号由一个名为AOSD=(S、D、S、So)的四组AOSD型号组成。其中S表示对象的状态集合。d表示字符集,s表示对象状态可能引发的一组切换。So表示启动状态。对象的一种状态是对象数据属性的决定值范围,根据牙齿范围数据成员采取真或假。转变表示变更状态,执行与每个转变相对应的对象成员函数。有条件切换、无条件转移和交叉转移。对象中的每个数据成员都对应于AOSD,每个AOSD可以有多个启动状态。配置OSD模型的方法包括以下步骤:(1)扫描源程序并获取运行分析表。执行分析表中的行表示执行路径所需的条件,以及执行后包含结果表达式的对象的成员方法的执行路径。因为一个方法的执行路径可以有多个结果表达式,所以全部列出的含义并不大,只列出导致对象状态变化的表达式。如果没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论