软件测试和质量保障教学资料面向对象测试.pptVIP

  • 0
  • 0
  • 约4.1千字
  • 约 29页
  • 2019-12-01 发布于广东
  • 举报

软件测试和质量保障教学资料面向对象测试.ppt

* 传统的单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。 当考虑面向对象软件时,单元的概念发生了变化。封装驱动了类和对象的定义,这意味着每个类和类的实例(对象)包装了属性(数据)和操纵这些数据的操作。而不是个体的模块。最小的可测试单位是封装的类或对象,类包含一组不同的操作,并且某特殊操作可能作为一组不同类的一部分存在,因此,单元测试的意义发生了较大变化。我们不再孤立地测试单个操作,而是将操作作为类的一部分。 * 传统的集成测试,有两种方式通过集成完成的: 自顶向下集成:自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块集成在一起。 自底向上集成:自底向上测试是从“原子”模块(即软件结构最低层的模块)开始组装测试。 因为面向对象软件没有层次的控制结构,传统的自顶向下和自底向上集成策略就没有意义,此外,一次集成一个操作到类中(传统的增量集成方法)经常是不可能的,这是由于“构成类的成分的直接和间接的交互”。对OO软件的集成测试有两种不同策略,第一种称为基于线程的测试,集成对回应系统的一个输入或事件所需的一组类,每个线程被集成并分别测试,应用回归测试以保证没有产生副作用。第二种称为基于使用的测试,通过测试那些几乎不使用服务器类的类(称为独立类)而开始构造系统,在独立类测试完成后,下一层的使用独立类的类,称为依赖类,被测试。这个依赖类层次的测试序列一直持续到构造完整个系统。 面向对象测试 华中农业大学信息学院计算机科学系 面向对象的新特性 继承 封装(信息隐蔽) 多态(动态绑定) 新特性对测试的影响 信息隐蔽(封装)对测试的影响 信息隐蔽避免类中有关实现细节的信息被错误地使用; 隐蔽机制给测试带来了困难。 新特性对测试的影响 继承对测试的影响 若一个类得到了充分的测试,当其被子类继承后,继承的方法在子类的环境中的行为特征需要重新测试。 新特性对测试的影响 多态性对测试的影响 面向对象软件中,由于动态绑定和多态性的存在所带来的不确定性,给测试覆盖率的满足增大了难度。 2 面向对象测试的层次 面向对象测试的层次,取决于单元的构成,一般采用三层或四层方式。 如果把单个操作或方法看作单元,则有四层测试,即方法、类、集成和系统测试。 如果把类看作单元,则有三层测试:类测试,集成测试,系统测试。 面向对象测试的主要问题是集成测试,即在通过测试的类之间进行交互测试。 类测试(面向对象单元测试) 类测试概念:验证类的实现是否和该类的说明完全一致。 类测试的方法:通过代码检查或执行测试用例的方法来有效地进行类测试。 类测试过程 为类创建实例 构造适当的环境 运行测试用例(向一个实例发送一个或多个消息) 通过参数来检查测试运行的结果 清除执行测试用例所需的测试环境。 面向对象软件的单元测试观点 ⑴ 以方法为单元 ⑵ 以类为单元 以方法为单元 将面向对象单元测试归结为传统的(过程)单元测试。 使用所有传统功能性测试和结构性测试手段。 若把方法看作是面向对象的单元,必须提供能够实例化的桩类,以及起驱动器作用的“主程序”类以提供和分析测试用例。 以类为单元 类包含一组不同的操作,并且某特殊操作可能作为一组不同类的一部分存在。不再孤立地测试单个操作,而是将操作作为类的一部分。 把类作为单元,可以解决类内集成问题,但是会产生其它问题。 3 面向对象的集成测试 基于类间协作关系的横向测试。 由系统的一个输入事件作为激励,对其触发的一组类进行测试,执行相应的操作/消息处理路径,最后终止于某一输出事件。 面向对象的集成测试 基于类间继承关系的纵向测试。 首先通过测试独立类(是系统中已经测试正确的某类)来开始构造系统,在独立类测试完成后,下一层继承独立类的类(称为依赖类) 被测试,这个依赖类层次的测试序列一直循环执行到构造完整个系统。 集成测试的UML支持 协作图(交互图) 序列图(顺序图) 面向对象软件的MM-路径 在传统软件的MM-路径中,用“消息”表示个体单元(模块)之间的调用,采用模块执行路径取代完整的模块 MM-路径从某个方法开始,当到达某个自己不发送任何消息的方法时结束,这就是消息静止点 MM-路径表示由消息分开的各种方法执行序列,即方法/消息路径。 4 面向对象的系统测试 功能测试 强度测试 测试系统的能力最高实际限度,即软件在一些超负荷时功能实现的情况。 如要求软件某一行为的大量重复、输入大量的数据或大数值数据、对数据库大量复杂的查询等。  性能测试 安全测试 容错测试 采用人工的干扰使软件出错,

文档评论(0)

1亿VIP精品文档

相关文档