面象对象(=Object Oriented)技术

 相关知识点-面象对象(=Object Oriented)技术

    1.   对象和类

    l        面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息

    l        类是一种新的数据类型,是设计的核心,是通过抽象数据类型的方法来实现的一种数据类型

    l        类是对某一对象的抽象,对象是某一类的实例,两者密切相关

    2.   封装、继承和多态性

    (1)         封装:把数据和操作结合一体,使程序结构更加紧凑,避免了数据紊乱带来的调试与维护的困难

    (2)         继承:可以从一个类派生到另一个类,派生类继承了父类和祖先类的数据成员和函数,增加了软件的可扩充性,并为代码重用提供了强有力的手段

    (3)         多态性:多种表现形式,可以用‘一个对外接口,多个内在实现方法’表示。

    一.面向对象测试模型

    1.                 面向对象测试的分类

    依据面向对象开发模型(面向对象分析、面向对象设计、面向对向编程),分为:

    (1)         面向对象分析的测试(OOA Test)、面向对象设计的测试(OOD Test):是对分析结果和设计结果的测试,主要对分析设计产生的文本进行的,是软件开发前期的关键性测试

    (2)         面向对象编程的测试(OOP Test):对编程风格和程序代码实现进行测试,主要的测试内容在OO Unit Test和OO Integrate Test中体现

    (3)         面向对象单元测试(OO Unit Test):对程序内部具体单一的功能模块的测试,主要对类成员函数的测试,是OO Integrate Test的基础

    (4)         面向对象集成测试(OO Intergrate Test):对系统内部的相互服务进行测试,如成员函数间的相互作用,类间的消息传递。不仅要基于OO Unit Test,还要参考OOD、OOD Test的结果

    (5)         面向对象确认测试(OO System Test)、面向对象系统测试(OO System Test):最后阶段的测试,以用户需求为测试标准,借鉴OOA 、OOA Test的结果

    二. 面向对象软件的测试策略

    1.   面向对象分析的测试

    (1) 面向对象分析

    是把E-R图和语义网络模型,即信息造型中的概念,与面向对象程序设计语方中的重要概念结合在一起而形成的分析方法。通常以问题空间的图表的形式进行描述

    (2) 分析方法

    直接映射问题空间,全面地将问题空间中实现功能的现实抽象化。将问题空间中的实例抽象为对象,用对象的结构反映问题空间的复杂实例和复杂关系,用属性和服务表示实例的特性和行为。

    (3) 面向对象分析缺点

    对问题空间分析抽象的不完整,会影响软件的功能实现,导致软件开发后期产生大量原本可避免的修补工作;一些冗余的对象或结构类的选定,程序的整体结构和增加程序员不必要的工作量,因此 OOA测试的重点在其完整性和冗余性

    (4) OOA测试划分的五个方面

    对认定的对象的测试、对认定的结构的测试、对认定的主题的测试、对定义的属性和实例关联的测试、对定义的服务和消息关联的测试

    2.   面向对象设计(OOD)的测试

    (1) 面向对象设计(OOD)

    采用‘造型的观点’,以OOA为基础归纳出类,并建立类结构或进一步构造类库,以实现分析结果对问题空间的抽象。OOD归纳的类即可以是对象的简单延续,也可以是不同对象的相同或相似的服务

    (2) OOD与OOA

    OOD是OOA的进一步细化和更高层的抽象,所以OOD、OOA的界限很难区分,OOD确定类和类结构不仅是满足当前需求分析要求,更重要是通过重新组合或加以适当的补充,方便实现功能重用和扩增。因此,对OOD的测试,建议针对功能的实现和重用以及OOA结果的分析

    (3) OOD测试划分的三个方面

      1、认定的类的测试

      2、构造的类的层次结构测试

      3、类库支持的测试

    3.   面向对象编程(OOP)的测试

    (1) 面向对象程序
   
    把功能的实现分布在类中,能正确实现功能的类,通过消息传递来协同实现设计要求的功能。将出现的错误精确的确定在某一具体的类上。

    (2) 测试重点

    忽略类功能实现的细则,将测试的目光集中在类功能的实现和相应的面向对象程序风格上

    (3) 测试方面

      1、类的封装

      2、类的功能

 

    4.   面向对象软件的单元测试

    (1) 可以将一些传统的单元测试方法在面向对象软件的单元测试中使用,如等价类划分、因果图、边界值分析法、逻辑覆盖法、路径分析法、程序插桩法,单元测试一般建议由程序员完成

    (2) 单元级测试的测试分析和测试用例,规模和难度均远小于对整个系统的测试分析和测试用例,并且对语句应该有100%的代码执行覆盖率。

    (3) 设计测试用例选择输入数据的两个假设:

    如果函数(程序)对某一类输入中的一个数据正确执行,对同类中的基他输入也能正确执行(等价类)

    如果函数(程序)对某一复杂度的输入正确执行,对更高复杂度的输入也能正确执行

    (4) 针对继承性,Brian Marick两方面的考虑

    继承的成员函数是否都不需要测试:当继承的成员函数在子类中做了改动;成员函数调用了改动过的成员函数的部分这两种情况需要对子类重新测试

    对父类的测试是否能照搬到子类:可以重新测试或在父类原有的测试要求和测试用例上增加新的测试要求和测试用例,主要针对子类中变动的部分进行测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值