第六章 面向对象软件的测试
第六章 面向对象软件的测试
本章要点 面向对象软件的测试与传统软件的区别 类测试价值的评估方法; 类测试用例设计方法; 特殊类的测试方法; 划分面向对象软件测试的方法; ·开源工具 Junit的使用方法
[本章要点] • 面向对象软件的测试与传统软件的区别; • 类测试价值的评估方法; • 类测试用例设计方法; • 特殊类的测试方法; • 划分面向对象软件测试的方法; • 开源工具Junit的使用方法
本章目标] 了解面向对象的测试与传统软件测试的异同; 掌握类测试的基础知识; 重点理解针对抽象类以及接口类等特殊类的测试 技巧,设计类测试用例和测试驱动程序的几种方 法 初步了解 Junit,并掌握安装和卸载此工具的方 法,以及如何使用它进行简单的测试
[本章目标] • 了解面向对象的测试与传统软件测试的异同; • 掌握类测试的基础知识; • 重点理解针对抽象类以及接口类等特殊类的测试 技巧,设计类测试用例和测试驱动程序的几种方 法; • 初步了解Junit,并掌握安装和卸载此工具的方 法,以及如何使用它进行简单的测试
6.1面向对象的测试与传统测试的比较 传统的测试计算机软件的策略是从“小型测 试”开始,逐步走向“大型测试”,且单元测试集 中在最小的可编译程序单位—子程序。 面向对象程序的结构不再是传统的功能模块 结构,而是作为一个整体,并且对每个开发阶段 都有不同以往的要求和结果,已经不可能用功能细 化的观点来检测面向对象分析和设计的结果。 面向对象的软件测试分为:面向对象分析的 测试,面向对象设计的测试,面向对象编程的测 试
6.1面向对象的测试与传统测试的比较 传统的测试计算机软件的策略是从“小型测 试”开始,逐步走向“大型测试”,且单元测试集 中在最小的可编译程序单位——子程序。 面向对象程序的结构不再是传统的功能模块 结构,而是作为一个整体,并且对每个开发阶段 都有不同以往的要求和结果,已经不可能用功能细 化的观点来检测面向对象分析和设计的结果。 面向对象的软件测试分为:面向对象分析的 测试,面向对象设计的测试,面向对象编程的测 试
面向对象单元测试,面向对象集成测试,面向对象 系统测试。 1、传统的面向过程分析与面向对象分析(OOA) 2、结构化的设计方法与面向对象设计(OOD) 3、典型的面向对象程序具有继承、封装和多态的 新特性。 4、传统的单元测试的对象是软件设计的最小单 位——模块。 5、传统的集成测试,主要有两种通过集成完成的 功能模块进行测试的方式:①自顶向下集成②自 底向上集成
面向对象单元测试,面向对象集成测试,面向对象 系统测试。 1、传统的面向过程分析与面向对象分析(OOA) 2、结构化的设计方法与面向对象设计(OOD) 3、典型的面向对象程序具有继承、封装和多态的 新特性。 4、传统的单元测试的对象是软件设计的最小单 位——模块。 5、传统的集成测试,主要有两种通过集成完成的 功能模块进行测试的方式:①自顶向下集成 ②自 底向上集成
6、为了保证软件的功能完整性,除了单元测试 和集成测试,还必须经过规范的系统测试 6.1.1信息隐蔽对测试的影响 类的重要作用之一是信息隐蔽。它对类中所 封装的信息的存取进行控制,从而避免类中有关 实现细节的信息被错误地使用。该隐蔽机制给测 试带来了困难。 6.1.2封装和继承对测试的影响 若一个类得到了充分的测试,当其被子类继 承后,继承的方法在子类的环境中的行为特征需 要重新测试
6、为了保证软件的功能完整性,除了单元测试 和集成测试,还必须经过规范的系统测试。 6.1.1信息隐蔽对测试的影响 类的重要作用之一是信息隐蔽。它对类中所 封装的信息的存取进行控制,从而避免类中有关 实现细节的信息被错误地使用。该隐蔽机制给测 试带来了困难。 6.1.2封装和继承对测试的影响 若一个类得到了充分的测试,当其被子类继 承后,继承的方法在子类的环境中的行为特征需 要重新测试
6.1.3多态性对测试的影响 传统软件测试中经常使用静态分析技术对代 码进行分析;面向对象软件中,由于动态绑定和 多态性的存在所带来的不确定性,给测试覆盖率 的满足增大了难度。 62类测试基础 1、类测试概念:验证类的实现是否和该类的说明 全一致 2、类测试的方法:通过代码检查或执行测试用例 的方法来有效地进行类测试。(后者优于前者)
6.1.3多态性对测试的影响 传统软件测试中经常使用静态分析技术对代 码进行分析;面向对象软件中,由于动态绑定和 多态性的存在所带来的不确定性,给测试覆盖率 的满足增大了难度。 6.2 类测试基础 1、类测试概念:验证类的实现是否和该类的说明 完全一致。 2、类测试的方法:通过代码检查或执行测试用例 的方法来有效地进行类测试。(后者优于前者)
3、类测试人员 类测试通常由开发人员来进行;(会带来好处 和不足之处)。 4、类测试时间 类的测试伴随着开发过程中的各个阶段,当 类的说明或实现发生变化时应该执行回归测试。 5、类测试过程 为类创建实例->创造适当的环境->运行测 试用例(向一个实例发送一个或多个消息)-->通过 参数来检查测试运行的结果->清除执行测试用例 所需的测试环境
3、类测试人员 类测试通常由开发人员来进行;(会带来好处 和不足之处)。 4、类测试时间 类的测试伴随着开发过程中的各个阶段,当 类的说明或实现发生变化时应该执行回归测试。 5、类测试过程 为类创建实例-->创造适当的环境-->运行测 试用例(向一个实例发送一个或多个消息)-->通过 参数来检查测试运行的结果-->清除执行测试用例 所需的测试环境
62.1类在UML中的描述 UML(Unified Modeling language) if 言是一种支持对象技术的建模语言,是在计算机 系统中表示真实世界的语言,描述真实世界中的 对象和它们之间的关系,支持应用的开发。 在UML中,用来表示类的符号是矩形,并划 分为三个区域,分别是: (1)名称区域:显示类的名称 (2)属性区域:显示在类中定义的变量。 (3)操作区域:显示在类中定义的方法 如图6-1所示:
6.2.1类在UML中的描述 UML(Unified Modeling Language)语 言是一种支持对象技术的建模语言,是在计算机 系统中表示真实世界的语言,描述真实世界中的 对象和它们之间的关系,支持应用的开发。 在UML中,用来表示类的符号是矩形,并划 分为三个区域,分别是: ⑴名称区域:显示类的名称 ⑵属性区域:显示在类中定义的变量。 ⑶操作区域:显示在类中定义的方法。 如图6-1所示:
ClassName ClassName Attributes Attributes Interface Operationg Operationg Operation 具体类 抽象类 接口类 图6-1类的UML表示法 类之间的关系分为六类,分别是关联、泛化、实 现、依赖、聚合和组合。每种关系分别使用不同的 符号来表示(如:表6-1所示),并分别用私有的、 保护的和公有的三个关键字来修饰类(如:表6-2所 小
ClassName Attributes Operation() ClassName Attributes Operation() Interface Operation() 具体类 抽象类 接口类 图6-1 类的UML表示法 类之间的关系分为六类,分别是关联、泛化、实 现、依赖、聚合和组合。每种关系分别使用不同的 符号来表示(如:表6-1所示),并分别用私有的、 保护的和公有的三个关键字来修饰类(如:表6-2所 示)