软件工程和开发技术第14章 面向对象测试基础-文档.pptVIP

  • 0
  • 0
  • 约5.87千字
  • 约 30页
  • 2019-12-13 发布于湖北
  • 举报

软件工程和开发技术第14章 面向对象测试基础-文档.ppt

第14章 面向对象测试基础 ; 14.1 面向对象的单元测试   在面向对象的软件开发中,“封装”导致了类和对象的定义特点,这意味着类和类的实例(对象)包装了属性(数据)和处理这些数据的操作(也称为方法或服务)。软件的核心是“对象”,不像传统软件开发中的“单元”(或者说单元的概念改变了)。也就是说,封装起来的类和对象是最小的可测试单元。一个类可以包含一组不同的操作,而一个特定的操作也可能定义在一组不同的类中。因此,面向对象的软件单元测试与传统测试方法不一样,它的含义发生了很大变化。 ;  面向对象软件的单元测试不是独立地测试单个操作,而是把所有操作都看成类的一部分,全面地测试类和对象所封装的属性和操纵这些属性的操作整体。具体地说,在面向对象的单元测试中不仅要发现类的所有操作中存在的问题,还要考查一个类与其他的类协同工作时可能出现的错误。现以实例说明:在一个类层次中,操作A在超类中定义并被一组子类继承,每个子类都可使用操作A,但是A要调用子类中定义的操作并处理子类的私有属性。由于在不同的子类中使用操作A的环境有所不同,因此有必要在每个子类的语境中测试操作A。这就是说,当测试面向对象软件时,传统的单元测试方法是不完备的,我们不能再独立地对操作A进行测试。 ; 14.2 面向对象的集成测试   1.基于线程的测试(Thread_based Testing)   基于线程的测试把响应系统的一个输入或一个事件所需要的一组类集成起来进行测试。应当分别集成并测试每个线程,同时为了避免产生副作用再进行回归测试。该测试需要基于系统的动态模型。 ;  2.基于使用的测试(Use_based Testing)   基于使用的测试首先测试几乎不使用服务器类的那些类(称为独立类);接着测试使用独立类的最下层的类(称为依赖类);然后,对根据依赖类的使用关系,从下到上一个层次一个层次地持续进行测试,直至把整个软件系统测试完为止。   除了上述两种测试方法,还有一种集群测试法,是面向对象软件集成测试的一个步骤。为了检查一群相互协作的类,用精心设计的测试用例,力图发现协作错误,即集群测试。通过研究对象模型可以确定协作类。   为减少测试工作的工作量,在进行集成测试时,可参考类关系图或实体关系图,确定不需要被重复测试的部分,从而优化测试用例,使测试能够达到一定的标准。 ; 14.3 面向对象的确认测试与系统测试   通过对软件的单元测试和集成测试,仅能确认软件开发的功能是正确的,不能确认在实际运行时,它是否满足用户要求,是否大量存在与实际使用条件下的各种应用相矛盾的错误。为此在完成上述测试活动后,还必须经过规范的确认测试和系统测试。   面向对象软件的确认测试或系统测试与传统的确认测试一样,通过设计测试用例,主要检查用户界面和用户可识别的输出,不再考虑类之间相互连接的细节。测试人员应该认真研究动态模型和描述系统行为的脚本,为系统的输入信息设计出错处理的通路,模拟错误的数据和软件界面可能发生的错误,设计出合理的测试用例。 ; 14.4 设计测试用例   14.4.1 测试用例概述   类似于用例(Use Case)的定义,测试用例(Test Case)是为实现某个特殊目标(验证或者找错)而执行系统的过程。它包括精心设计的一组测试输入、执行条件以及预期结果,以便测试某个程序功能或者路径是否满足特定需求。   测试用例包括对特定的软件产品进行测试的任务描述,体现测试方案、方法、技术和策略,其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 ;  测试用例是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。不同类别的软件,测试用例的策略、方法和侧重点都是不同的。例如,企业信息管理类软件,其需求不确定或者变化较为频繁,通常的策略是把测试数据和测试脚本从测试用例中划分出来,以供重用。   目前,面向对象软件的测试用例的设计方法还处于研究、发展阶段。1993年,Berard提出了指导面向对象的软件测试用例设计的方法,要点如下: ;  (1) 每一个测试用例都要有一个唯一的标识,并与被测试的一个或几个类相关联起来。   (2) 每个测试用例都要陈述测试目的。   (3) 对每个测试用例要有相应的测试步骤,包括被测对象的特定状态、所使用的消息和操作、可能产生的错误及测试需要的外部环境。   (4) 与传统软件测试(测试用例的设计由软件的输入—处理—输出或单个模块的算法细节驱动)不同,面向对象测试关注于设计适当的操作序列以检查类的状态。 ;  测试用例分为基于黑盒的测试用例和基于白盒的测试用例。前者也叫做基于系统外部需求的测试用例,主要根据

文档评论(0)

1亿VIP精品文档

相关文档