软件测试面向对象测试技术优秀PPT.ppt
《软件测试面向对象测试技术优秀PPT.ppt》由会员分享,可在线阅读,更多相关《软件测试面向对象测试技术优秀PPT.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章第八章 面向对象软件测试面向对象软件测试1一、面向对象测试概述一、面向对象测试概述1.传统的软件开发存在的问题传统的软件开发存在的问题(1)软件重用性差)软件重用性差(2)软件可维护性差)软件可维护性差(3)开发出的软件不易满足用户需求)开发出的软件不易满足用户需求2一、面向对象测试概述一、面向对象测试概述2、面向对象技术、面向对象技术基本概念基本概念(1)对象)对象(2)对象的状态和行为)对象的状态和行为(3)类)类(4)类的结构(类间关系)类的结构(类间关系)(5)消息和方法)消息和方法3一、面向对象测试概述一、面向对象测试概述 我们生活在一个对象的世界里我们生活在一个对象的世界里,
2、每个对象有一定的,每个对象有一定的属性属性,把属性相同的对象进行归纳就形成把属性相同的对象进行归纳就形成类类例如:家具就可以看作类,例如:家具就可以看作类,其主要的属性有价格、尺寸、其主要的属性有价格、尺寸、重量、位置和颜色等重量、位置和颜色等无论我们谈论桌子、椅子还是沙发、衣橱,这些属性总是无论我们谈论桌子、椅子还是沙发、衣橱,这些属性总是可用的,因为它们都是家具而继承了为类定义的所有属性。可用的,因为它们都是家具而继承了为类定义的所有属性。除了属性之外,每个对象可以被一系列不同的方式操纵,它可除了属性之外,每个对象可以被一系列不同的方式操纵,它可以被买卖、移动、修改以被买卖、移动、修改(如
3、漆上不同的颜色如漆上不同的颜色)。这些操作或方法将改变对象的一个或多个属性。这些操作或方法将改变对象的一个或多个属性。类的合法操作可以和对象的定义联系在一起,并且被类的所有类的合法操作可以和对象的定义联系在一起,并且被类的所有实例继承。实例继承。4一、面向对象测试概述一、面向对象测试概述面向对象特征面向对象特征(1)对象唯一性)对象唯一性(2)分类性)分类性(3)继承性)继承性(4)多态性)多态性5一、面向对象测试概述一、面向对象测试概述面向对象要素面向对象要素(1)抽象)抽象(2)封装)封装(3)共享)共享6 面向对象软件开发方法与传统的软件面向对象软件开发方法与传统的软件开发方法的区别:开
4、发方法的区别:(1)调查、分析系统需求,建立一个全面、)调查、分析系统需求,建立一个全面、合理、统一的模型。合理、统一的模型。(2)对象设计。)对象设计。(3)程序实现。)程序实现。7面向对象软件开发过程面向对象软件开发过程 面向对象的开发模型突破了传统的瀑布模型,面向对象的开发模型突破了传统的瀑布模型,面向对象的开发模型突破了传统的瀑布模型,面向对象的开发模型突破了传统的瀑布模型,将开发分为面向对象分析(将开发分为面向对象分析(将开发分为面向对象分析(将开发分为面向对象分析(OOAOOA),面向对象设计),面向对象设计),面向对象设计),面向对象设计(OODOOD),和面向对象编程(),和面
5、向对象编程(),和面向对象编程(),和面向对象编程(OOPOOP)三个阶段。)三个阶段。)三个阶段。)三个阶段。针对这种开发模型,结合传统的测试步骤的划针对这种开发模型,结合传统的测试步骤的划针对这种开发模型,结合传统的测试步骤的划针对这种开发模型,结合传统的测试步骤的划分,我们把面向对象的软件测试分为:分,我们把面向对象的软件测试分为:分,我们把面向对象的软件测试分为:分,我们把面向对象的软件测试分为:面向对象分析的测试面向对象分析的测试面向对象分析的测试面向对象分析的测试,面向对象设计的测试面向对象设计的测试面向对象设计的测试面向对象设计的测试,面向面向面向面向对象编程的测试对象编程的测试
6、对象编程的测试对象编程的测试;面向对象单元测试面向对象单元测试面向对象单元测试面向对象单元测试,面向对象集成测试面向对象集成测试面向对象集成测试面向对象集成测试,面向对象面向对象面向对象面向对象系统测试系统测试系统测试系统测试。8面向对象测试面向对象测试 在传统的面向过程程序中,对于函数在传统的面向过程程序中,对于函数在传统的面向过程程序中,对于函数在传统的面向过程程序中,对于函数 y=Function(x);y=Function(x);只需要考虑一个函数(只需要考虑一个函数(只需要考虑一个函数(只需要考虑一个函数(Function()Function())的行为特点,)的行为特点,)的行为特
7、点,)的行为特点,在面向对象程序中,你不得不同时考虑基类函数在面向对象程序中,你不得不同时考虑基类函数在面向对象程序中,你不得不同时考虑基类函数在面向对象程序中,你不得不同时考虑基类函数(Base:Function()Base:Function())的行为和继承类函数)的行为和继承类函数)的行为和继承类函数)的行为和继承类函数(Derived:Function()Derived:Function())的行为。)的行为。)的行为。)的行为。面向对象程序的结构不再是传统的功能模块结面向对象程序的结构不再是传统的功能模块结面向对象程序的结构不再是传统的功能模块结面向对象程序的结构不再是传统的功能模块
8、结构,作为一个整体,原有集成测试所要求的逐步将构,作为一个整体,原有集成测试所要求的逐步将构,作为一个整体,原有集成测试所要求的逐步将构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已不可能。开发的模块搭建在一起进行测试的方法已不可能。开发的模块搭建在一起进行测试的方法已不可能。开发的模块搭建在一起进行测试的方法已不可能。9面向对象测试面向对象测试 面向对象软件对每个开发阶段都有不同面向对象软件对每个开发阶段都有不同以往的要求和结果,已经不可能用功能细化以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。的观点来检测面向对象分析和设计的结果
9、。针对面向对象软件的开发特点,应该有一种针对面向对象软件的开发特点,应该有一种新的测试模型。新的测试模型。10二、面向对象模型二、面向对象模型OOAOOAOODOODOOPOOPOOA OOA TestTestOOD OOD TestTestOOP TestOOP TestOO UnitOO UnitTestTestOO Integrate TestOO Integrate TestOO System TestOO System TestOOA TestOOA Test:面向对象分析面向对象分析面向对象分析面向对象分析的测试的测试的测试的测试,OOD TestOOD Test:面向对象设计面向
10、对象设计面向对象设计面向对象设计的测试的测试的测试的测试,OOP TestOOP Test:面向对象编程面向对象编程面向对象编程面向对象编程的测试的测试的测试的测试;OO Unit TestOO Unit Test:面向对象面向对象面向对象面向对象单元测试单元测试单元测试单元测试,OO Integrate TestOO Integrate Test:面向面向面向面向对象集成测试对象集成测试对象集成测试对象集成测试,OO System TestOO System Test:面向对面向对面向对面向对象系统测试象系统测试象系统测试象系统测试。11二、面向对象模型二、面向对象模型OOA TestOOA
11、 Test和和和和OOD Test:OOD Test:是对分析和设计结果的测试,是对分析和设计结果的测试,是对分析和设计结果的测试,是对分析和设计结果的测试,主要是对分析设计生成的文档进行,是软件开发前期主要是对分析设计生成的文档进行,是软件开发前期主要是对分析设计生成的文档进行,是软件开发前期主要是对分析设计生成的文档进行,是软件开发前期的关键性测试;的关键性测试;的关键性测试;的关键性测试;OOP Test:OOP Test:主要针对编程风格和程序代码实现进行测试主要针对编程风格和程序代码实现进行测试主要针对编程风格和程序代码实现进行测试主要针对编程风格和程序代码实现进行测试看,其测试内容
12、主要在面向对象单元和面向对象集成看,其测试内容主要在面向对象单元和面向对象集成看,其测试内容主要在面向对象单元和面向对象集成看,其测试内容主要在面向对象单元和面向对象集成测试中体现;测试中体现;测试中体现;测试中体现;OO Unit Test:OO Unit Test:对程序内部具体单一的功能模块的测试。对程序内部具体单一的功能模块的测试。对程序内部具体单一的功能模块的测试。对程序内部具体单一的功能模块的测试。主要是对类的测试。主要是对类的测试。主要是对类的测试。主要是对类的测试。OO Integrate Test:OO Integrate Test:主要对系统内部相互服务进行测主要对系统内部
13、相互服务进行测主要对系统内部相互服务进行测主要对系统内部相互服务进行测试,如方法间的相互作用,类间的消息传递等。试,如方法间的相互作用,类间的消息传递等。试,如方法间的相互作用,类间的消息传递等。试,如方法间的相互作用,类间的消息传递等。OO System Test:OO System Test:是面向对象测试的最后阶段的测试,是面向对象测试的最后阶段的测试,是面向对象测试的最后阶段的测试,是面向对象测试的最后阶段的测试,主要以用户需求为测试标准,借鉴主要以用户需求为测试标准,借鉴主要以用户需求为测试标准,借鉴主要以用户需求为测试标准,借鉴OOAOOA及其测试结果。及其测试结果。及其测试结果。
14、及其测试结果。12二、面向对象模型二、面向对象模型OOA:将问题空间中实现的功能进行抽象,问:将问题空间中实现的功能进行抽象,问题空间中的实例抽象为对象,用对象的结构反题空间中的实例抽象为对象,用对象的结构反映问题空间的复杂关系,用属性和服务表示实映问题空间的复杂关系,用属性和服务表示实例的特殊性和行为例的特殊性和行为OOD:建立类结构或进一步构造类库,实现分:建立类结构或进一步构造类库,实现分析结果对问题空间的抽象。析结果对问题空间的抽象。OOP:软件的计算机实现。:软件的计算机实现。13 三、面向对象分析和设计的测试三、面向对象分析和设计的测试n nOOA TestOOA Test和和和和
15、OOD Test:OOD Test:是对分析和设计结果的测试,是对分析和设计结果的测试,是对分析和设计结果的测试,是对分析和设计结果的测试,主要是对分析设计生成的文档进行,是软件开发前期主要是对分析设计生成的文档进行,是软件开发前期主要是对分析设计生成的文档进行,是软件开发前期主要是对分析设计生成的文档进行,是软件开发前期的关键性测试;的关键性测试;的关键性测试;的关键性测试;n n OOAOOA直接映射问题空间,全面地在问题空间中实现直接映射问题空间,全面地在问题空间中实现直接映射问题空间,全面地在问题空间中实现直接映射问题空间,全面地在问题空间中实现功能的现实抽象化。功能的现实抽象化。功能
16、的现实抽象化。功能的现实抽象化。OOAOOA必须回答:必须回答:必须回答:必须回答:n n(1 1)为完成用户要求,系统应提供哪些功能)为完成用户要求,系统应提供哪些功能)为完成用户要求,系统应提供哪些功能)为完成用户要求,系统应提供哪些功能n n(2 2)系统应由哪些对象构成)系统应由哪些对象构成)系统应由哪些对象构成)系统应由哪些对象构成n n(3 3)每个对象应有哪些属性和服务)每个对象应有哪些属性和服务)每个对象应有哪些属性和服务)每个对象应有哪些属性和服务n n(4 4)对象间应有怎样的联系)对象间应有怎样的联系)对象间应有怎样的联系)对象间应有怎样的联系14三、面向对象分析和设计的
17、测试三、面向对象分析和设计的测试 面向对象设计(面向对象设计(面向对象设计(面向对象设计(OODOOD)采用)采用)采用)采用“造型的观点造型的观点造型的观点造型的观点”,以,以,以,以OOAOOA为基础归纳出类,并建立类结构或进一步构造成类库,实为基础归纳出类,并建立类结构或进一步构造成类库,实为基础归纳出类,并建立类结构或进一步构造成类库,实为基础归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象。现分析结果对问题空间的抽象。现分析结果对问题空间的抽象。现分析结果对问题空间的抽象。OOD OOD 归纳的类,可以是归纳的类,可以是归纳的类,可以是归纳的类,可以是对象简单的
18、延续,可以是不同对象的相同或相似的服务。对象简单的延续,可以是不同对象的相同或相似的服务。对象简单的延续,可以是不同对象的相同或相似的服务。对象简单的延续,可以是不同对象的相同或相似的服务。由此可见,由此可见,由此可见,由此可见,OODOOD不是在不是在不是在不是在OOAOOA上的另一思维方式的大动干上的另一思维方式的大动干上的另一思维方式的大动干上的另一思维方式的大动干戈,而是戈,而是戈,而是戈,而是OOAOOA的进一步细化和更高层的抽象。的进一步细化和更高层的抽象。的进一步细化和更高层的抽象。的进一步细化和更高层的抽象。面向对象设计(面向对象设计(面向对象设计(面向对象设计(OODOOD)
19、是以)是以)是以)是以OOAOOA归纳出的类为基础,归纳出的类为基础,归纳出的类为基础,归纳出的类为基础,建立类结构甚至进一步构造成类库,实现分析结果对问题建立类结构甚至进一步构造成类库,实现分析结果对问题建立类结构甚至进一步构造成类库,实现分析结果对问题建立类结构甚至进一步构造成类库,实现分析结果对问题空间的抽象。空间的抽象。空间的抽象。空间的抽象。15三、面向对象分析和设计的测试三、面向对象分析和设计的测试对认定的对象的测试对认定的对象的测试 OOA(面向对象分析)中认定的对象是对问题空间中的(面向对象分析)中认定的对象是对问题空间中的结构、其他系统、设备、被记忆的事件、系统涉及的人结构、
20、其他系统、设备、被记忆的事件、系统涉及的人员等实际实例的抽象。对它的测试可以从如下方面考虑:员等实际实例的抽象。对它的测试可以从如下方面考虑:p认定的对象是否全面认定的对象是否全面,其名称应该尽量准确、适用,是,其名称应该尽量准确、适用,是否问题空间中所涉及到的实例都反映在认定的抽象对象否问题空间中所涉及到的实例都反映在认定的抽象对象中。中。p认定的对象是否具有多个属性认定的对象是否具有多个属性。只有一个属性的对象通。只有一个属性的对象通常应看作其他对象的属性而不是抽象为独立的对象常应看作其他对象的属性而不是抽象为独立的对象p对认定为同一对象的实例是否有共同的、区别于其他实对认定为同一对象的实
21、例是否有共同的、区别于其他实例的共同属性,是否提供或需要相同的服务例的共同属性,是否提供或需要相同的服务p如果系统没有必要始终保持对象代表的如果系统没有必要始终保持对象代表的实例信息实例信息,提供,提供或者得到关于它的服务,认定的对象也无必要。或者得到关于它的服务,认定的对象也无必要。16三、面向对象分析和设计的测试三、面向对象分析和设计的测试对认定的结构的测试对认定的结构的测试 认定的结构指的是多种对象的组织方式,用来反映问题空认定的结构指的是多种对象的组织方式,用来反映问题空间中的复杂实例和复杂关系。间中的复杂实例和复杂关系。认定的分类结构测试要认定的分类结构测试要点:点:p处于高层的对象
22、,是否在问题空间中含有不同于下一处于高层的对象,是否在问题空间中含有不同于下一层对象的特殊可能性,即是否能派生出下一层对象。层对象的特殊可能性,即是否能派生出下一层对象。p处于同一低层的对象,是否能抽象出在现实中有意义处于同一低层的对象,是否能抽象出在现实中有意义的更一般的上层对象。的更一般的上层对象。p对所有认定的对象,是否能在问题空间内向上层抽象对所有认定的对象,是否能在问题空间内向上层抽象出在现实中有意义的对象。出在现实中有意义的对象。p高层的对象的特性是否完全体现下层的共性,低层的高层的对象的特性是否完全体现下层的共性,低层的对象是否有高层特性基础上的特殊性。对象是否有高层特性基础上的
23、特殊性。17三、面向对象分析和设计的测试三、面向对象分析和设计的测试对构造的类层次结构的测试对构造的类层次结构的测试 为了能充分发挥面向对象继承共享特性,为了能充分发挥面向对象继承共享特性,OOD(面向对象设计)(面向对象设计)的类层次结构通常基于的类层次结构通常基于OOA中产生的分类结构的原则来组织,中产生的分类结构的原则来组织,着重体现父类和子类间的一般性和特殊性。在当前的问题空间,着重体现父类和子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如下几个方面:构框架。为
24、此测试要注意如下几个方面:p类层次结构是否涵盖了所有定义的类;类层次结构是否涵盖了所有定义的类;p是否能体现是否能体现OOA中所定义的实例关联、消息关联;中所定义的实例关联、消息关联;p子类是否具有父类没有的新特性;子类是否具有父类没有的新特性;p子类间的共同特性是否完全在父类中得以体现。子类间的共同特性是否完全在父类中得以体现。18五、面向对象编程的测试五、面向对象编程的测试 典型的面向对象程序具有继承、封装和多态的新典型的面向对象程序具有继承、封装和多态的新典型的面向对象程序具有继承、封装和多态的新典型的面向对象程序具有继承、封装和多态的新特性,这使得传统的测试策略必须有所改变。封装是特性
25、,这使得传统的测试策略必须有所改变。封装是特性,这使得传统的测试策略必须有所改变。封装是特性,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,外界只能通过被提供的操作来访问或对数据的隐藏,外界只能通过被提供的操作来访问或对数据的隐藏,外界只能通过被提供的操作来访问或对数据的隐藏,外界只能通过被提供的操作来访问或修改数据,这样降低了数据被任意修改和读写的可能修改数据,这样降低了数据被任意修改和读写的可能修改数据,这样降低了数据被任意修改和读写的可能修改数据,这样降低了数据被任意修改和读写的可能性,降低了传统程序中对数据非法操作的测试。继承性,降低了传统程序中对数据非法操作的测试。继承性,降
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 面向 对象 技术 优秀 PPT
限制150内