面向对象软件测试基础.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 面向对象的软件测试基础 罗 东 俊 ZSUJONE@126.COM 主要内容 10.1从测试视角看待面向对象 10.2面向对象测试的层次 10.3面向对象测试模型 10.4面向对象测试部分的例子 10.1从测试视角看待面向对象 10.1.1测试面向对象软件的不同 10.1.2测试视角 10.1.3从测试视角的角度看待面向对象的概念 10.1.1测试面向对象软件的不同 从编程语言看,面向对象编程特点对测试产生了影响 封装把数据及对数据的操作封装在一起,限制了对象属性对外的透明性和外界对它的操作权限,在某种程度上避免了对数据的非法操作,有效防止了故障的扩散;但同时,封装机制也给测试数据的生成、测试路径的选取以及测试结构的分析带来了困难。 继承实现了共享父类中定义的数据和操作,同时也可以定义新的特征,子类是在新的环境中存在,所以父类的正确性不能保证子类的正确性,继承使代码的重用率得到了提高,但同时也使故障的传播几率增加 多态和动态绑定增加了系统运行中可能的执行路径,而且给面向对象软件带来了严重的不确定性,给测试覆盖率的活动带来新的困难。 测试面向对象软件的不同 另一方面,面向对象的开发过程以及分析和设计方法也对测试产生了影响 分析、设计和编码实现密切相关,分析模型可以映射为设计模型,设计模型又可以映射为代码。 因此,分析阶段开始测试,提炼以后可用于设计阶段,设计阶段的测试提炼后又可用于实现阶段的测试。 例如 在传统的面向过程程序中,对于函数 y=Function(x),只需考虑函数Function()本身的行为特点 在面向对象程序中,不得不同时考虑基类函数Base::Function()的行为和继承类函数Derived::Function()的行为。 通常,传统软件中存在的依赖关系有:变量间的数据依赖;模块间的调用依赖;变量与其类型间的定义依赖;模块与其变量间的功能依赖。 而在面向对象软件中,除了存在上述依赖关系外,还存在以下的依赖关系:类与类间的依赖;类与操作间的依赖;类与消息间的依赖;类与变量间的依赖;操作与变量间的依赖;操作与消息间的依赖;操作与操作间的依赖。 面向对象软件的测试内容 模型测试 类测试 交互测试 系统/子系统测试 发布/自我测试 10.1.2 测试视角 测试人员必须以一种对软件的方方面面都提出疑问的态度来思考软件,这种方法被称之为测试视角。 测试视角包含以下几个方面: 质疑:想验证软件的质量。 客观:确保不能凭空想像。 彻底:确保不要遗漏重要的部分。 系统:检查是可再现的。 10.1.3从测试视角的角度看待面向对象的概念 对象 消息 接口 类 继承 多态 对象 对象是指包含了一组属性以及对这些属性的操作的封装体。 对象是软件开发期间测试的直接目标 在程序运行时,对象被创建、修改、访问或删除,而在运行期间,对象的行为是否符合它的规格说明,该对象与和它相关的对象能否协同工作,这两方面都是面向对象软件测试所关注的焦点。 从测试视角的角度关于对象的观点 对象的封装:封装使得已定义的对象容易识别,在系统中容易传递,也容易操纵。 对象隐藏了信息:这使得对象信息的改变有时很难观察到,也加大了检查测试结果的难度。 对象的状态:对象在生命期中总是处于某个状态的,对象状态的多变可能会导致不正常的行为。 对象的生命周期:在对象生命周期的不同阶段,要从各个方面检测对象的状态是否符合其生命周期。例如过早地创建一个对象或过早地删除一个对象,都是造成软件故障的原因。 消息 执行对象某个操作的一种请求。包含操作的名称、实参,当然接收者也可返回值给发送者。例:ss.add(5,6) 从测试视角的角度,关于消息的观点; 消息有发送者:发送者决定何时发送消息,并且可能做出错误的决定; 消息有接收者:接收者可能接收到非预期的特定消息,可能会做出不正确反应。 消息可能包含实参:参数能被接收者使用或修改,若传递的参数是对象,则对象在消息处理前和处理后,对象必须处于正确的状态,而且必须实现接收者所期望的接口。 接口 接口是行为声明的集合。 从测试视角的角度,关于接口的观点: 接口封装了操作的说明,如果接口包含的行为和类的行为不相符,那么对这一接口的说明就不是令人满意的。 接口不是孤立的,与其它的接口和类有一定的关系,一个接口可以指定一个行为的参数类型,使得实现该接口的类可被当作一个参数传递。 类 类是具有相同属性和相同行为的对象的集合。 类从规范和实现两个方面来描述对象。 在类规范中,定义了类的每个对象能做什么; 在类实现中,定义了类的每个对象如何做它们能做的事情。 类规范 类规范包括对每个操作的语义说明,包括前置条件、后置条件和不变量 前置条件是当操作执行之前应该满足的条件 后置条件是当操作执行结束之后必须

文档评论(0)

wpxuang12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档