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