欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件测试面向对象测试技术精.ppt

    • 资源ID:78787241       资源大小:3.03MB        全文页数:59页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件测试面向对象测试技术精.ppt

    软件测试面向对象测试技术软件测试面向对象测试技术第1页,本讲稿共59页一、面向对象测试概述一、面向对象测试概述1.传统的软件开发存在的问题传统的软件开发存在的问题(1)软件重用性差)软件重用性差(2)软件可维护性差)软件可维护性差(3)开发出的软件不易满足用户需求)开发出的软件不易满足用户需求第2页,本讲稿共59页一、面向对象测试概述一、面向对象测试概述2、面向对象技术、面向对象技术基本概念基本概念(1)对象)对象(2)对象的状态和行为)对象的状态和行为(3)类)类(4)类的结构(类间关系)类的结构(类间关系)(5)消息和方法)消息和方法第3页,本讲稿共59页一、面向对象测试概述一、面向对象测试概述 我们生活在一个对象的世界里我们生活在一个对象的世界里,每个对象有一定的,每个对象有一定的属性属性,把属性,把属性相同的对象进行归纳就形成相同的对象进行归纳就形成类类例如:家具就可以看作类,例如:家具就可以看作类,其主要的属性有价格、尺寸、重量、其主要的属性有价格、尺寸、重量、位置和颜色等位置和颜色等无论我们谈论桌子、椅子还是沙发、衣橱,这些属性总是可用无论我们谈论桌子、椅子还是沙发、衣橱,这些属性总是可用的,因为它们都是家具而继承了为类定义的所有属性。的,因为它们都是家具而继承了为类定义的所有属性。除了属性之外,每个对象可以被一系列不同的方式操纵,它可以除了属性之外,每个对象可以被一系列不同的方式操纵,它可以被买卖、移动、修改被买卖、移动、修改(如漆上不同的颜色如漆上不同的颜色)。这些操作或方法将改变对象的一个或多个属性。这些操作或方法将改变对象的一个或多个属性。类的合法操作可以和对象的定义联系在一起,并且被类的所有实例继承。类的合法操作可以和对象的定义联系在一起,并且被类的所有实例继承。第4页,本讲稿共59页一、面向对象测试概述一、面向对象测试概述面向对象特征面向对象特征(1)对象唯一性)对象唯一性(2)分类性)分类性(3)继承性)继承性(4)多态性)多态性第5页,本讲稿共59页一、面向对象测试概述一、面向对象测试概述面向对象要素面向对象要素(1)抽象)抽象(2)封装)封装(3)共享)共享第6页,本讲稿共59页 面向对象软件开发方法与传统的软件开面向对象软件开发方法与传统的软件开发方法的区别:发方法的区别:(1)调查、分析系统需求,建立一个全面、)调查、分析系统需求,建立一个全面、合理、统一的模型。合理、统一的模型。(2)对象设计。)对象设计。(3)程序实现。)程序实现。第7页,本讲稿共59页面向对象软件开发过程面向对象软件开发过程 面向对象的开发模型突破了传统的瀑布模型,将开面向对象的开发模型突破了传统的瀑布模型,将开面向对象的开发模型突破了传统的瀑布模型,将开面向对象的开发模型突破了传统的瀑布模型,将开发分为面向对象分析(发分为面向对象分析(发分为面向对象分析(发分为面向对象分析(OOAOOA),面向对象设计(),面向对象设计(),面向对象设计(),面向对象设计(OODOOD),),),),和面向对象编程(和面向对象编程(和面向对象编程(和面向对象编程(OOPOOP)三个阶段。)三个阶段。)三个阶段。)三个阶段。针对这种开发模型,结合传统的测试步骤的划分,针对这种开发模型,结合传统的测试步骤的划分,针对这种开发模型,结合传统的测试步骤的划分,针对这种开发模型,结合传统的测试步骤的划分,我们把面向对象的软件测试分为:我们把面向对象的软件测试分为:我们把面向对象的软件测试分为:我们把面向对象的软件测试分为:面向对象分析的测试面向对象分析的测试面向对象分析的测试面向对象分析的测试,面向对象设计的测试面向对象设计的测试面向对象设计的测试面向对象设计的测试,面向对象面向对象面向对象面向对象编程的测试编程的测试编程的测试编程的测试;面向对象单元测试面向对象单元测试面向对象单元测试面向对象单元测试,面向对象集成测试面向对象集成测试面向对象集成测试面向对象集成测试,面向对象系面向对象系面向对象系面向对象系统测试统测试统测试统测试。第8页,本讲稿共59页面向对象测试面向对象测试 在传统的面向过程程序中,对于函数在传统的面向过程程序中,对于函数在传统的面向过程程序中,对于函数在传统的面向过程程序中,对于函数 y=Function(x);y=Function(x);只需要考虑一个函数(只需要考虑一个函数(只需要考虑一个函数(只需要考虑一个函数(Function()Function())的行为特点,在面)的行为特点,在面)的行为特点,在面)的行为特点,在面向对象程序中,你不得不同时考虑基类函数(向对象程序中,你不得不同时考虑基类函数(向对象程序中,你不得不同时考虑基类函数(向对象程序中,你不得不同时考虑基类函数(Base:FunctionBase:Function()())的行为和继承类函数()的行为和继承类函数()的行为和继承类函数()的行为和继承类函数(Derived:Function()Derived:Function())的行为。)的行为。)的行为。)的行为。面向对象程序的结构不再是传统的功能模块结构,作为一面向对象程序的结构不再是传统的功能模块结构,作为一面向对象程序的结构不再是传统的功能模块结构,作为一面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一个整体,原有集成测试所要求的逐步将开发的模块搭建在一个整体,原有集成测试所要求的逐步将开发的模块搭建在一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已不可能。起进行测试的方法已不可能。起进行测试的方法已不可能。起进行测试的方法已不可能。第9页,本讲稿共59页面向对象测试面向对象测试 面向对象软件对每个开发阶段都有不同面向对象软件对每个开发阶段都有不同以往的要求和结果,已经不可能用功能细化以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。的观点来检测面向对象分析和设计的结果。针对面向对象软件的开发特点,应该有一种针对面向对象软件的开发特点,应该有一种新的测试模型。新的测试模型。第10页,本讲稿共59页二、面向对象模型二、面向对象模型OOAOOAOODOODOOPOOPOOA OOA TestTestOOD OOD TestTestOOP TestOOP TestOO UnitOO UnitTestTestOO Integrate TestOO Integrate TestOO System TestOO System TestOOA TestOOA Test:面向对象分析的面向对象分析的面向对象分析的面向对象分析的测试测试测试测试,OOD TestOOD Test:面向对象设计的面向对象设计的面向对象设计的面向对象设计的测试测试测试测试,OOP TestOOP Test:面向对象编程的面向对象编程的面向对象编程的面向对象编程的测试测试测试测试;OO Unit TestOO Unit Test:面向对象单元面向对象单元面向对象单元面向对象单元测试测试测试测试,OO Integrate TestOO Integrate Test:面向对象面向对象面向对象面向对象集成测试集成测试集成测试集成测试,OO System TestOO System Test:面向对象系面向对象系面向对象系面向对象系统测试统测试统测试统测试。第11页,本讲稿共59页二、面向对象模型二、面向对象模型OOA TestOOA Test和和和和OOD Test:OOD Test:是对分析和设计结果的测试,主要是是对分析和设计结果的测试,主要是是对分析和设计结果的测试,主要是是对分析和设计结果的测试,主要是对分析设计生成的文档进行,是软件开发前期的关键性测对分析设计生成的文档进行,是软件开发前期的关键性测对分析设计生成的文档进行,是软件开发前期的关键性测对分析设计生成的文档进行,是软件开发前期的关键性测试;试;试;试;OOP Test:OOP Test:主要针对编程风格和程序代码实现进行测试看,其主要针对编程风格和程序代码实现进行测试看,其主要针对编程风格和程序代码实现进行测试看,其主要针对编程风格和程序代码实现进行测试看,其测试内容主要在面向对象单元和面向对象集成测试中体现;测试内容主要在面向对象单元和面向对象集成测试中体现;测试内容主要在面向对象单元和面向对象集成测试中体现;测试内容主要在面向对象单元和面向对象集成测试中体现;OO Unit Test:OO Unit Test:对程序内部具体单一的功能模块的测试。主要是对程序内部具体单一的功能模块的测试。主要是对程序内部具体单一的功能模块的测试。主要是对程序内部具体单一的功能模块的测试。主要是对类的测试。对类的测试。对类的测试。对类的测试。OO Integrate Test:OO Integrate Test:主要对系统内部相互服务进行测试,主要对系统内部相互服务进行测试,主要对系统内部相互服务进行测试,主要对系统内部相互服务进行测试,如方法间的相互作用,类间的消息传递等。如方法间的相互作用,类间的消息传递等。如方法间的相互作用,类间的消息传递等。如方法间的相互作用,类间的消息传递等。OO System Test:OO System Test:是面向对象测试的最后阶段的测试,主是面向对象测试的最后阶段的测试,主是面向对象测试的最后阶段的测试,主是面向对象测试的最后阶段的测试,主要以用户需求为测试标准,借鉴要以用户需求为测试标准,借鉴要以用户需求为测试标准,借鉴要以用户需求为测试标准,借鉴OOAOOA及其测试结果。及其测试结果。及其测试结果。及其测试结果。第12页,本讲稿共59页二、面向对象模型二、面向对象模型OOA:将问题空间中实现的功能进行抽象,问:将问题空间中实现的功能进行抽象,问题空间中的实例抽象为对象,用对象的结构反题空间中的实例抽象为对象,用对象的结构反映问题空间的复杂关系,用属性和服务表示实映问题空间的复杂关系,用属性和服务表示实例的特殊性和行为例的特殊性和行为OOD:建立类结构或进一步构造类库,实现分:建立类结构或进一步构造类库,实现分析结果对问题空间的抽象。析结果对问题空间的抽象。OOP:软件的计算机实现。:软件的计算机实现。第13页,本讲稿共59页 三、面向对象分析和设计的测试三、面向对象分析和设计的测试n nOOA TestOOA Test和和和和OOD Test:OOD Test:是对分析和设计结果的测试,主是对分析和设计结果的测试,主是对分析和设计结果的测试,主是对分析和设计结果的测试,主要是对分析设计生成的文档进行,是软件开发前期的关键要是对分析设计生成的文档进行,是软件开发前期的关键要是对分析设计生成的文档进行,是软件开发前期的关键要是对分析设计生成的文档进行,是软件开发前期的关键性测试;性测试;性测试;性测试;n n OOAOOA直接映射问题空间,全面地在问题空间中实现功能直接映射问题空间,全面地在问题空间中实现功能直接映射问题空间,全面地在问题空间中实现功能直接映射问题空间,全面地在问题空间中实现功能的现实抽象化。的现实抽象化。的现实抽象化。的现实抽象化。OOAOOA必须回答:必须回答:必须回答:必须回答:n n(1 1)为完成用户要求,系统应提供哪些功能)为完成用户要求,系统应提供哪些功能)为完成用户要求,系统应提供哪些功能)为完成用户要求,系统应提供哪些功能n n(2 2)系统应由哪些对象构成)系统应由哪些对象构成)系统应由哪些对象构成)系统应由哪些对象构成n n(3 3)每个对象应有哪些属性和服务)每个对象应有哪些属性和服务)每个对象应有哪些属性和服务)每个对象应有哪些属性和服务n n(4 4)对象间应有怎样的联系)对象间应有怎样的联系)对象间应有怎样的联系)对象间应有怎样的联系第14页,本讲稿共59页三、面向对象分析和设计的测试三、面向对象分析和设计的测试 面向对象设计(面向对象设计(面向对象设计(面向对象设计(OODOOD)采用)采用)采用)采用“造型的观点造型的观点造型的观点造型的观点”,以,以,以,以OOAOOA为基础为基础为基础为基础归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象。空间的抽象。空间的抽象。空间的抽象。OOD OOD 归纳的类,可以是对象简单的延续,可以是归纳的类,可以是对象简单的延续,可以是归纳的类,可以是对象简单的延续,可以是归纳的类,可以是对象简单的延续,可以是不同对象的相同或相似的服务。由此可见,不同对象的相同或相似的服务。由此可见,不同对象的相同或相似的服务。由此可见,不同对象的相同或相似的服务。由此可见,OODOOD不是在不是在不是在不是在OOAOOA上上上上的另一思维方式的大动干戈,而是的另一思维方式的大动干戈,而是的另一思维方式的大动干戈,而是的另一思维方式的大动干戈,而是OOAOOA的进一步细化和更高层的的进一步细化和更高层的的进一步细化和更高层的的进一步细化和更高层的抽象。抽象。抽象。抽象。面向对象设计(面向对象设计(面向对象设计(面向对象设计(OODOOD)是以)是以)是以)是以OOAOOA归纳出的类为基础,建归纳出的类为基础,建归纳出的类为基础,建归纳出的类为基础,建立类结构甚至进一步构造成类库,实现分析结果对问题空间立类结构甚至进一步构造成类库,实现分析结果对问题空间立类结构甚至进一步构造成类库,实现分析结果对问题空间立类结构甚至进一步构造成类库,实现分析结果对问题空间的抽象。的抽象。的抽象。的抽象。第15页,本讲稿共59页三、面向对象分析和设计的测试三、面向对象分析和设计的测试对认定的对象的测试对认定的对象的测试 OOA OOA(面向对象分析)中认定的对象是对问题空间中的结构、(面向对象分析)中认定的对象是对问题空间中的结构、(面向对象分析)中认定的对象是对问题空间中的结构、(面向对象分析)中认定的对象是对问题空间中的结构、其他系统、设备、被记忆的事件、系统涉及的人员等实际实其他系统、设备、被记忆的事件、系统涉及的人员等实际实其他系统、设备、被记忆的事件、系统涉及的人员等实际实其他系统、设备、被记忆的事件、系统涉及的人员等实际实例的抽象。对它的测试可以从如下方面考虑:例的抽象。对它的测试可以从如下方面考虑:例的抽象。对它的测试可以从如下方面考虑:例的抽象。对它的测试可以从如下方面考虑:n n认定的对象是否全面认定的对象是否全面认定的对象是否全面认定的对象是否全面,其名称应该尽量准确、适用,是否问,其名称应该尽量准确、适用,是否问,其名称应该尽量准确、适用,是否问,其名称应该尽量准确、适用,是否问题空间中所涉及到的实例都反映在认定的抽象对象中。题空间中所涉及到的实例都反映在认定的抽象对象中。题空间中所涉及到的实例都反映在认定的抽象对象中。题空间中所涉及到的实例都反映在认定的抽象对象中。n n认定的对象是否具有多个属性认定的对象是否具有多个属性认定的对象是否具有多个属性认定的对象是否具有多个属性。只有一个属性的对象通常应看。只有一个属性的对象通常应看。只有一个属性的对象通常应看。只有一个属性的对象通常应看作其他对象的属性而不是抽象为独立的对象作其他对象的属性而不是抽象为独立的对象作其他对象的属性而不是抽象为独立的对象作其他对象的属性而不是抽象为独立的对象n n对认定为同一对象的实例是否有共同的、区别于其他实例的共同对认定为同一对象的实例是否有共同的、区别于其他实例的共同对认定为同一对象的实例是否有共同的、区别于其他实例的共同对认定为同一对象的实例是否有共同的、区别于其他实例的共同属性,是否提供或需要相同的服务属性,是否提供或需要相同的服务属性,是否提供或需要相同的服务属性,是否提供或需要相同的服务n n如果系统没有必要始终保持对象代表的如果系统没有必要始终保持对象代表的如果系统没有必要始终保持对象代表的如果系统没有必要始终保持对象代表的实例信息实例信息实例信息实例信息,提供或者,提供或者,提供或者,提供或者得到关于它的服务,认定的对象也无必要。得到关于它的服务,认定的对象也无必要。得到关于它的服务,认定的对象也无必要。得到关于它的服务,认定的对象也无必要。第16页,本讲稿共59页三、面向对象分析和设计的测试三、面向对象分析和设计的测试对认定的结构的测试对认定的结构的测试 认定的结构指的是多种对象的组织方式,用来反映问题空间中的认定的结构指的是多种对象的组织方式,用来反映问题空间中的认定的结构指的是多种对象的组织方式,用来反映问题空间中的认定的结构指的是多种对象的组织方式,用来反映问题空间中的复杂实例和复杂关系。复杂实例和复杂关系。复杂实例和复杂关系。复杂实例和复杂关系。认定的分类结构测试要点:认定的分类结构测试要点:认定的分类结构测试要点:认定的分类结构测试要点:n n处于高层的对象,是否在问题空间中含有不同于下一层对象处于高层的对象,是否在问题空间中含有不同于下一层对象处于高层的对象,是否在问题空间中含有不同于下一层对象处于高层的对象,是否在问题空间中含有不同于下一层对象的特殊可能性,即是否能派生出下一层对象。的特殊可能性,即是否能派生出下一层对象。的特殊可能性,即是否能派生出下一层对象。的特殊可能性,即是否能派生出下一层对象。n n处于同一低层的对象,是否能抽象出在现实中有意义的更一般的处于同一低层的对象,是否能抽象出在现实中有意义的更一般的处于同一低层的对象,是否能抽象出在现实中有意义的更一般的处于同一低层的对象,是否能抽象出在现实中有意义的更一般的上层对象。上层对象。上层对象。上层对象。n n对所有认定的对象,是否能在问题空间内向上层抽象出在现实中对所有认定的对象,是否能在问题空间内向上层抽象出在现实中对所有认定的对象,是否能在问题空间内向上层抽象出在现实中对所有认定的对象,是否能在问题空间内向上层抽象出在现实中有意义的对象。有意义的对象。有意义的对象。有意义的对象。n n高层的对象的特性是否完全体现下层的共性,低层的对象高层的对象的特性是否完全体现下层的共性,低层的对象高层的对象的特性是否完全体现下层的共性,低层的对象高层的对象的特性是否完全体现下层的共性,低层的对象是否有高层特性基础上的特殊性。是否有高层特性基础上的特殊性。是否有高层特性基础上的特殊性。是否有高层特性基础上的特殊性。第17页,本讲稿共59页三、面向对象分析和设计的测试三、面向对象分析和设计的测试对构造的类层次结构的测试对构造的类层次结构的测试 为了能充分发挥面向对象继承共享特性,为了能充分发挥面向对象继承共享特性,为了能充分发挥面向对象继承共享特性,为了能充分发挥面向对象继承共享特性,OODOOD(面向对象设计)的类层次(面向对象设计)的类层次(面向对象设计)的类层次(面向对象设计)的类层次结构通常基于结构通常基于结构通常基于结构通常基于OOAOOA中产生的分类结构的原则来组织,着重体现父类和中产生的分类结构的原则来组织,着重体现父类和中产生的分类结构的原则来组织,着重体现父类和中产生的分类结构的原则来组织,着重体现父类和子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如下几个方面:下几个方面:下几个方面:下几个方面:n n类层次结构是否涵盖了所有定义的类;类层次结构是否涵盖了所有定义的类;类层次结构是否涵盖了所有定义的类;类层次结构是否涵盖了所有定义的类;n n是否能体现是否能体现是否能体现是否能体现OOAOOA中所定义的实例关联、消息关联;中所定义的实例关联、消息关联;中所定义的实例关联、消息关联;中所定义的实例关联、消息关联;n n子类是否具有父类没有的新特性;子类是否具有父类没有的新特性;子类是否具有父类没有的新特性;子类是否具有父类没有的新特性;n n子类间的共同特性是否完全在父类中得以体现。子类间的共同特性是否完全在父类中得以体现。子类间的共同特性是否完全在父类中得以体现。子类间的共同特性是否完全在父类中得以体现。第18页,本讲稿共59页五、面向对象编程的测试五、面向对象编程的测试 典型的面向对象程序具有继承、封装和多态的新特性,典型的面向对象程序具有继承、封装和多态的新特性,典型的面向对象程序具有继承、封装和多态的新特性,典型的面向对象程序具有继承、封装和多态的新特性,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,外界只能通过被提供的操作来访问或修改数据,这样降低了外界只能通过被提供的操作来访问或修改数据,这样降低了外界只能通过被提供的操作来访问或修改数据,这样降低了外界只能通过被提供的操作来访问或修改数据,这样降低了数据被任意修改和读写的可能性,降低了传统程序中对数据数据被任意修改和读写的可能性,降低了传统程序中对数据数据被任意修改和读写的可能性,降低了传统程序中对数据数据被任意修改和读写的可能性,降低了传统程序中对数据非法操作的测试。继承是面向对象程序的重要特点,继承使非法操作的测试。继承是面向对象程序的重要特点,继承使非法操作的测试。继承是面向对象程序的重要特点,继承使非法操作的测试。继承是面向对象程序的重要特点,继承使得代码的重用率提高,同时也使错误传播的概率提高。得代码的重用率提高,同时也使错误传播的概率提高。得代码的重用率提高,同时也使错误传播的概率提高。得代码的重用率提高,同时也使错误传播的概率提高。第19页,本讲稿共59页五、面向对象编程的测试五、面向对象编程的测试 继承使得传统测试遇见了这样一个难题:对继承的代码继承使得传统测试遇见了这样一个难题:对继承的代码继承使得传统测试遇见了这样一个难题:对继承的代码继承使得传统测试遇见了这样一个难题:对继承的代码究竟应该怎样测试?多态使得面向对象程序对外呈现出强大究竟应该怎样测试?多态使得面向对象程序对外呈现出强大究竟应该怎样测试?多态使得面向对象程序对外呈现出强大究竟应该怎样测试?多态使得面向对象程序对外呈现出强大的处理能力,但同时却使得程序内的处理能力,但同时却使得程序内的处理能力,但同时却使得程序内的处理能力,但同时却使得程序内“同一同一同一同一”函数的行为复杂函数的行为复杂函数的行为复杂函数的行为复杂化,测试时不得不考虑不同类型具体执行的代码和产生的行化,测试时不得不考虑不同类型具体执行的代码和产生的行化,测试时不得不考虑不同类型具体执行的代码和产生的行化,测试时不得不考虑不同类型具体执行的代码和产生的行为。为。为。为。第20页,本讲稿共59页 面向对象程序是把功能的实现分布在类中。能正面向对象程序是把功能的实现分布在类中。能正面向对象程序是把功能的实现分布在类中。能正面向对象程序是把功能的实现分布在类中。能正确实现功能的类,通过消息传递来协同实现设计要求确实现功能的类,通过消息传递来协同实现设计要求确实现功能的类,通过消息传递来协同实现设计要求确实现功能的类,通过消息传递来协同实现设计要求的功能。正是这种面向对象程序风格,将出现的错误的功能。正是这种面向对象程序风格,将出现的错误的功能。正是这种面向对象程序风格,将出现的错误的功能。正是这种面向对象程序风格,将出现的错误能精确的确定在某一具体的类。因此,在面向对象编能精确的确定在某一具体的类。因此,在面向对象编能精确的确定在某一具体的类。因此,在面向对象编能精确的确定在某一具体的类。因此,在面向对象编程(程(程(程(OOPOOP)阶段,忽略类功能实现的细则,将测试的)阶段,忽略类功能实现的细则,将测试的)阶段,忽略类功能实现的细则,将测试的)阶段,忽略类功能实现的细则,将测试的目光集中在类功能的实现和相应的面向对象程序风格,目光集中在类功能的实现和相应的面向对象程序风格,目光集中在类功能的实现和相应的面向对象程序风格,目光集中在类功能的实现和相应的面向对象程序风格,主要体现为以下两个方面(假设编程使用主要体现为以下两个方面(假设编程使用主要体现为以下两个方面(假设编程使用主要体现为以下两个方面(假设编程使用C+C+语言):语言):语言):语言):数据成员是否满足数据封装的要求数据成员是否满足数据封装的要求数据成员是否满足数据封装的要求数据成员是否满足数据封装的要求 类是否实现了要求的功能类是否实现了要求的功能类是否实现了要求的功能类是否实现了要求的功能 第21页,本讲稿共59页六六、面向对象的单元测试、面向对象的单元测试 传统的单元测试是针对程序的函数、过程或完成某一定传统的单元测试是针对程序的函数、过程或完成某一定传统的单元测试是针对程序的函数、过程或完成某一定传统的单元测试是针对程序的函数、过程或完成某一定功能的程序块。沿用单元测试的概念,实际测试类成员函数。功能的程序块。沿用单元测试的概念,实际测试类成员函数。功能的程序块。沿用单元测试的概念,实际测试类成员函数。功能的程序块。沿用单元测试的概念,实际测试类成员函数。一些传统的测试方法在面向对象的单元测试中都可以使用。一些传统的测试方法在面向对象的单元测试中都可以使用。一些传统的测试方法在面向对象的单元测试中都可以使用。一些传统的测试方法在面向对象的单元测试中都可以使用。如等价类划分法,因果图法,边值分析法,逻辑覆盖法,路如等价类划分法,因果图法,边值分析法,逻辑覆盖法,路如等价类划分法,因果图法,边值分析法,逻辑覆盖法,路如等价类划分法,因果图法,边值分析法,逻辑覆盖法,路径分析法,等等,单元测试一般建议由程序员完成。径分析法,等等,单元测试一般建议由程序员完成。径分析法,等等,单元测试一般建议由程序员完成。径分析法,等等,单元测试一般建议由程序员完成。第22页,本讲稿共59页六六、面向对象的单元测试、面向对象的单元测试n n面向对象的单元测试的对象是软件设计的最小单位面向对象的单元测试的对象是软件设计的最小单位面向对象的单元测试的对象是软件设计的最小单位面向对象的单元测试的对象是软件设计的最小单位类。类。类。类。n n单元测试的依据是详细设计,单元测试应对类中所有重要单元测试的依据是详细设计,单元测试应对类中所有重要单元测试的依据是详细设计,单元测试应对类中所有重要单元测试的依据是详细设计,单元测试应对类中所有重要的属性和方法设计测试用例,以发现类内部的错误。的属性和方法设计测试用例,以发现类内部的错误。的属性和方法设计测试用例,以发现类内部的错误。的属性和方法设计测试用例,以发现类内部的错误。n n单元测试多采用白盒测试技术,系统内多个类都可以并行进单元测试多采用白盒测试技术,系统内多个类都可以并行进单元测试多采用白盒测试技术,系统内多个类都可以并行进单元测试多采用白盒测试技术,系统内多个类都可以并行进行测试。沿用单元测试概念,实际测试类成员函数。一些传行测试。沿用单元测试概念,实际测试类成员函数。一些传行测试。沿用单元测试概念,实际测试类成员函数。一些传行测试。沿用单元测试概念,实际测试类成员函数。一些传统的测试方法在面向对象的单元测试中都可以使用,如等价统的测试方法在面向对象的单元测试中都可以使用,如等价统的测试方法在面向对象的单元测试中都可以使用,如等价统的测试方法在面向对象的单元测试中都可以使用,如等价类划分、边界值分析、因果图、逻辑覆盖、路径分析法等。类划分、边界值分析、因果图、逻辑覆盖、路径分析法等。类划分、边界值分析、因果图、逻辑覆盖、路径分析法等。类划分、边界值分析、因果图、逻辑覆盖、路径分析法等。第23页,本讲稿共59页1 1、单元测试的内容、单元测试的内容 面向对象的单元就是类,单元测试实际测面向对象的单元就是类,单元测试实际测试的就是对类的测试。类测试的目的主要确保试的就是对类的测试。类测试的目的主要确保一个类的代码能够完全满足类的说明所描述的一个类的代码能够完全满足类的说明所描述的要求。要求。第24页,本讲稿共59页2 2、单元测试开始的时间、单元测试开始的时间 单元测试开始的时间一般在完全说明了这单元测试开始的时间一般在完全说明了这个类,并且准备对其编码后不久。单元测试开个类,并且准备对其编码后不久。单元测试开始时要制定一个测试计划。始时要制定一个测试计划。在反复迭代的过程中,类的实现和说明在在反复迭代的过程中,类的实现和说明在进程中可能会发生变化,所以应该在软件的其进程中可能会发生变化,所以应该在软件的其他部件使用该类之前对类进行测试,同时还有他部件使用该类之前对类进行测试,同时还有必要执行回归测试。必要执行回归测试。第25页,本讲稿共59页3 3、单元测试的人员、单元测试的人员 由另一个类的开发人员编写测试计划,由由另一个类的开发人员编写测试计划,由该类的开发人员完成测试,避免对类说明的错该类的开发人员完成测试,避免对类说明的错误理解误理解第26页,本讲稿共59页4 4、单元测试方法、单元测试方法 单元测试的方法有单元测试的方法有代码检查代码检查和和执行测试用执行测试用例例。在某些情况下,用代码检查代替基于执行。在某些情况下,用代码检查代替基于执行的测试方法是可行的,但是,代码检查也存在的测试方法是可行的,但是,代码检查也存在以下两个不利之处:以下两个不利之处:n n代码检查容易受人为因素影响代码检查容易受人为因素影响n n代码检查在回归测试方面明显需要更多的工作代码检查在回归测试方面明显需要更多的工作量量第27页,本讲稿共59页 类测试按顺序分为以下三部分:类测试按顺序分为以下三部分:类测试按顺序分为以下三部分:类测试按顺序分为以下三部分:n n基于属性的测试基于属性的测试基于属性的测试基于属性的测试:类中所有属性的设置和访问的测试。:类中所有属性的设置和访问的测试。:类中所有属性的设置和访问的测试。:类中所有属性的设置和访问的测试。n n基于服务的测试基于服务的测试基于服务的测试基于服务的测试:测试类中的每个方法。:测试类中的每个方法。:测试类中的每个方法。:测试类中的每个方法。n n基于状态的测试基于状态的测试基于状态的测试基于状态的测试:除了类的每个操作要进行测试,类的行为也:除了类的每个操作要进行测试,类的行为也:除了类的每个操作要进行测试,类的行为也:除了类的每个操作要进行测试,类的行为也要进行测试,所有能引起状态变化的事件都要模拟到。类的行要进行测试,所有能引起状态变化的事件都要模拟到。类的行要进行测试,所有能引起状态变化的事件都要模拟到。类的行要进行测试,所有能引起状态变化的事件都要模拟到。类的行为通常可用状态图来描述,在利用状态图进行类测试时,可考为通常可用状态图来描述,在利用状态图进行类测试时,可考为通常可用状态图来描述,在利用状态图进行类测试时,可考为通常可用状态图来描述,在利用状态图进行类测试时,可考虑覆盖所有状态、状态迁移等覆盖标准,也可考虑从初始状态虑覆盖所有状态、状态迁移等覆盖标准,也可考虑从初始状态虑覆盖所有状态、状态迁移等覆盖标准,也可考虑从初始状态虑覆盖所有状态、状态迁移等覆盖标准,也可考虑从初始状态到终止状态的所有迁移路径的覆盖。到终止状态的所有迁移路径的覆盖。到终止状态的所有迁移路径的覆盖。到终止状态的所有迁移路径的覆盖。第28页,本讲稿共59页5 5、方法的测试、方法的测试 在测试类的功能实现时,应该首先保证类成员函数的在测试类的功能实现时,应该首先保证类成员函数的在测试类的功能实现时,应该首先保证类成员函数的在测试类的功能实现时,应该首先保证类成员函数的正确性。正确性。正确性。正确性。测试时主要考虑封装在类中的一个方法对数据进行的操测试时主要考虑封装在类中的一个方法对数据进行的操测试时主要考虑封装在类中的一个方法对数据进行的操测试时主要考虑封装在类中的一个方法对数据进行的操作,可以采用传统的模块测试方法,通过向所在对象发消息作,可以采用传统的模块测试方法,通过向所在对象发消息作,可以采用传统的模块测试方法,通过向所在对象发消息作,可以采用传统的模块测试方法,通过向所在对象发消息来执行,它的执行与状态有关。来执行,它的执行与状态有关。来执行,它的执行与状态有关。来执行,它的执行与状态有关。传统的针对模块的设计测试用例的技术,如等价传统的针对模块的设计测试用例的技术,如等价传统的针对模块的设计测试用例的技术,如等价传统的针对模块的设计测试用例的技术,如等价划分、边界值分析、因果图、逻辑覆盖、路径覆盖等划分、边界值分析、因果图、逻辑覆盖、路径覆盖等划分、边界值分析、因果图、逻辑覆盖、路径覆盖等划分、边界值分析、因果图、逻辑覆盖、路径覆盖等方法,仍然可以作为测试类中每个方法的主要技术。方法,仍然可以作为测试类中每个方法的主要技术。方法,仍然可以作为测试类中每个方法的主要技术。方法,仍然可以作为测试类中每个方法的主要技术。第29页,本讲稿共59页 在面向对象的系统中的方法,是通过消息在面向对象的系统中的方法,是通过消息来驱动执行的,要测试类中的方法,必须用一来驱动执行的,要测试类中的方法,必须用一个个驱动程序驱动程序对被测方法发送一条消息以驱动其对被测方法发送一条消息以驱动其执行,如果被测模块或方法中调用了其他模块执行,如果被测模块或方法中调用了其他模块或方法,则需要设计一个模拟被调子程序功能或方法,则需要设计一个模拟被调子程序功能的的存根程序存根程序,驱动程序、存根程序及被测模块,驱动程序、存根程序及被测模块或方法组成一个独立的可执行单元。或方法组成一个独立的可执行单元。第30页,本讲稿共59页 在面向对象软件中,在保证单个方法功能正确的基在面向对象软件中,在保证单个方法功能正确的基在面向对象软件中,在保证单个方法功能正确的基在面向对象软件中,在保证单个方法功能正确的基础上,还应该处理好测试方法之间的协助关系。础上,还应该处理好测试方法之间的协助关系。础上,还应该处理好测试方法之间的协助关系。础上,还应该处理好测试方法之间的协助关系。为了提高方法的重用性,设计方法的一个准则是提高方为了提高方法的重用性,设计方法的一个准则是提高方为了提高方法的重用性,设计方法的一个准则是提高方为了提高方法的重用性,设计方法的一个准则是提高方法的内聚,即在一个方法中只完成单个功能。法的内聚,即在一个方法中只完成单个功能。法的内聚,即在一个方法中只完成单个功能。法的内聚,即在一个方法中只完成单个功能。对于继承过来的方法,也要加以测试。对于继承过来的方法,也要加以测试。对于继承过来的方法,也要加以测试。对于继承过来的方法,也要加以测试。运行测试用例的时候,必须提供能够实例化的桩运行测试用例的时候,必须提供能够实例化的桩运行测试用例的时候,必须提供能够实例化的桩运行测试用例的时候,必须提供能够实例化的桩类,以及起驱动器作用的类,以及起驱动器作用的类,以及起驱动器作用的类,以及起驱动器作用的“主程序主程序主程序主程序”类,来提供和分类,来提供和分类,来提供和分类,来提供和分析测试用例。析测试用例。析测试用例。析测试用例。第31页,本讲稿共59页6 6、测试程度、测试程度 可以根据已经测试了多少类的实现和多可以根据已经测试了多少类的实现和多少类的说明来衡量测试的充分性。通常需要少类的说明来衡量测试的充分性。通常需要将这两者都考虑到,希望测试到操作和状态将这两者都考虑到,希望测试到操作和状态转换的各种组合情况。一个对象能维持自己转换的各种组合情况。一个对象能维持自己的状态,而状态一般来说也会

    注意事项

    本文(软件测试面向对象测试技术精.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开