面向对象软件的测试课件_第1页
面向对象软件的测试课件_第2页
面向对象软件的测试课件_第3页
面向对象软件的测试课件_第4页
面向对象软件的测试课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

软件测试方法和技术

面向对象软件的测试

回顾验收测试的过程和主要内容产品规格说明书的验证用户界面和可用性测试兼容性测试可安装性和可恢复性测试文档测试验收测试报告和用户验收测试面向对象软件的测试

1面向对象软件的特点2面向对象测试的层次与数据流3面向对象的单元测试4面向对象的集成测试面向对象(object-oriented)

面向对象(object-oriented)=对象+分类+继承+通信面向对象(object-oriented)可重用性。从一开始对象的产生就是为了重复利用,完成的对象将在今后的程序开发中被部分或全部地重复利用。可靠性。由于面向对象的应用程序包含了通过测试的标准部分,因此更加可靠。由于大量代码来源于成熟可靠的类库,因而新开发程序的新增代码明显减少,这是程序可靠性提高的一个重要原因。连续性。具有面向对象特点的C++与C语言有很大的兼容性,C程序员可以比较容易地过渡到C++语言开发工作。面向对象(object-oriented)对象的封装和抽象

继承性与多态性

继承与多态类与子类的测试假设类D是类C的子类,类C已进行了充分的测试分层与增量

类C和其派生类D间的增量变化能够用来帮助确定需要在D中测试什么。由于D是C的子类,那么所有的用于C的基于规范的测试用例也都适用于D。引入术语“继承的测试用例”来代表从父类测试用例中选取出来的、用于子类的测试用例。可以通过简单的分析来确定继承的测试用例中哪些适用于测试子类、哪些在测试子类时不必执行。

合理的分析,有利于找出更有价值的测试用例。分层与增量

D的接口中添加一个或多个新的操作,并且有可能是D中的一个新方法实现一个新操作。新操作引入了新的功能和新的代码,这些都需要测试。在D中改变那些在C中声明的操作规范,需要为操作添加新的基于规范的测试用例。附加的测试用例提供了新的输入,这些输入符合任何削弱了的前置条件,并且对由任何加强了的后置条件导致的新的期望结果进行检查。在D中覆盖那些在C中实现了某个操作并且被D继承了的方法,可以复用于该方法的所有继承来的基于规范的测试用例。在D中添加一个或多个新的实例变量来实现更多的状态和/或属性。添加新的变量最有可能与新的操作和/或重载方法中代码有关,而且对测试的处理也与它们有关。在D中改变类常量。类常量累计成每个测试用例的附加的后置条件。分层与增量:测试用例选择时,需要注意的事项:面向对象层次结构测试重点对认定的结构的测试

认定的结构指的是多种对象的组织方式,用来反映问题空间中的复杂实例和复杂关系。认定的分类结构测试要点:对于结构中的一种对象,尤其是处于高层的对象,是否在问题空间中含有不同于下一层对象的特殊可能性,即是否能派生出下一层对象。对于结构中的一种对象,尤其是处于同一低层的对象,是否能抽象出在现实中有意义的更一般的上层对象。对所有认定的对象,是否能在问题空间内向上层抽象出在现实中有意义的对象。高层的对象的特性是否完全体现下层的共性,低层的对象是否有高层特性基础上的特殊性。面向对象层次结构测试重点对构造的类层次结构的测试

为了能充分发挥面向对象继承共享特性,OOD(面向对象设计)的类层次结构通常基于OOA中产生的分类结构的原则来组织,着重体现父类和子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如下几个方面:类层次结构是否涵盖了所有定义的类;是否能体现OOA中所定义的实例关联、消息关联;子类是否具有父类没有的新特性;子类间的共同特性是否完全在父类中得以体现。3面向对象的单元测试类测试

类测试的方法通过代码检查或执行测试用例能有效地测试一个类的代码。面向对象的单元测试构建测试用例

首先要看怎样从类说明中确定测试用例,然后根据类实现引进的边界值来扩充附加的测试用例。根据前置条件和后置条件来构建测试用例的总体思想是:为所有可能出现的组合情况确定测试用例需求。在这些可能出现组合情况下,可以满足前置条件,也能够达到后置条件。接下来创建测试用例来表达这些需求,根据这些需求还可以创建拥有特定输入值(包括常见值和边界值)的测试用例,并确定它们的正确输出。最后,还可以增加测试用例来阐述违反前置条件所发生的情况。面向对象的单元测试类测试系列的充分性

充分性的三个常用标准是:基于状态的覆盖率、基于限制的覆盖率、基于代码的覆盖率。基于状态的覆盖率,以测试覆盖了多少个状态转换为依据。基于约束的覆盖率,与基于状态转换的充分性类似,还可以根据有多少对前置条件和后置条件被覆盖来表示充分性。基于代码的覆盖率。当所有的测试用例都执行结束时,确定实现一个类的每一行代码或代码通过的每一条路径至少执行了一次,这是一种很好的思想。面向对象的单元测试构建测试的驱动程序

测试驱动程序是一个运行测试用例并收集运行结果的程序。测试驱动程序的设计应该相对简单,因为我们很少有时间和资源来对驱动程序软件进行基于执行的测试(否则会进入一个程序测试递归的、无穷的之路),而是依赖代码检查来检测测试驱动程序。所以,测试驱动程序必须是严谨的、结构清晰、简单,易于维护,并且对所测试的类说明变化具有很强的适应能力。理想情况下,在创建新的测试驱动程序时,应该能够复用已存在的驱动程序的代码。4面向对象的集成测试对象交互汇集类测试有些类在它们的说明中使用对象,但是实际上从不和这些对象中的任何一个进行协作,也就是说,它们从来不请求这些对象的任何服务。相反,它们会表现出以下的一个或多个行为:存放这些对象的引用(或指针),程序中常表现为对象之间一对多的关系创建这些对象的实例删除这些对象的实例协作类测试该类的一个或多个操作中使用其它的对象并将其作为它们的实现中不可缺少的一部分。当类接口中的一个操作的某个后置条件引用了一具对象的实例状态,并且(或者)说明那个对象的某个属性被使用或修改了,那么这个类就是一个协作类。4面向对象的集成测试面向对象集成测试的常用方法

抽样测试正交阵列测试例如,假设有3个因素----即A、B、C,每个因素有3个级别----即1、2、和3,那么这些值就有27种可能的组合情况----A的3种组合情况×C的3种组合情况。4面向对象的集成测试分布式对象测试

如今很少有设计单个进程在单个处理机上执行的系统,为了获得灵活性和伸展性,许多系统都被设计成多个充分独立的部件,每个部件可以存在于一个独立的进程中,而整个系统的运行会根据需要启动多个进程。如果这些进程不是分布在一台机器上,而是分布在多台机器上,借助于计算机通讯或网络实现它们相互之间的协作,从而构成一个分布式的系统,客户机/服务器模型是一种简单的分布式系统,在这种模型中,客户机和服务器部件被设计成存在于独立的进程中,服务器提供数据计算、处理、存储等管理工作,客户端接受用户的输入、请求、显示结果等工作,两者

温馨提示

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

评论

0/150

提交评论