关闭

面向对象的软件测试策略研究

发表于:2010-12-17 13:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:赵蔷 欧阳宏基    来源:51Testing软件测试网采编

  3.1 扩大测试视角

  在面向对象的程序设计中,由于相同的语义结构(如类、属性、操作和消息)出现在分析、设计和代码阶段。面向对象的分析和面向对象的设计模式提供了关于系统的结构和行为的实质性信息,所以应该重视面向对象分析和设计模式的复审如果问题在分析阶段及设计阶段未被检测到.则将传送到编码中.要花费大量的精力和时间去实现一个不必要(有问题)的属性、不必要的操作、驱动对象问通信的消息及其他相关的代码.然后再花费更多的精力去发现它,还必须对系统进行相关的修改.而修改有可能导致更多的潜在问题因此,面向对象的软件测试应扩大测试的视角.包括分析与设计模型测试、类测试、对象交互测试、类层次结构测试、面向对象系统测试五大部分

  3.2 划分测试层次

  软件测试层次是基于测试复杂性分解的思想.是软件测试的一种基本模式。传统层次测试基于功能模块的层次结构.而在面向对象软件测试中.继承和组装关系刻画了类之间的内在层次.它们既是构造系统结构的基础.也是构造测试结构的基础。对于传统程序设计语言书写的软件.测试分为3个级别的测试:

  单元测试、集成测试和系统测试。面向对象软件测试的动态测试工作过程与传统的测试一样.分为制定测试计划、产生测试用例、执行测试和评价几个阶段。在测试的具体内容上。从面向对象软件的结构出发。可以将面向对象软件测试分为三个层次:类测试、集成测试和系统测试面向对象的测试层次与传统软件测试层次的对应关系。

  3.3 面向对象测试技术策略

  3.3.1 面向对象的类测试策略

  类测试就是验证类的实现是否和该类的规格说明完全一致一类测试和传统的单元测试大体相似.但和单元测试不同,类测试除了要测试类中包含的方法.还要测试类的状态。在面向对象系统中.系统的基本构造模块是封装了的数据和方法的类和对象.每个对象有自己的生存周期、自己的状态。消息是对象之问相互请求或协作的途径.是外界使用对象方法及获取对象状态的唯一方式对象的功能是在消息的触发下,由对象所属类中定义的方法与相关对象的合作共同完成。在工作过程中对象的状态可能被改变.产生新的状态。测试过程中不能仅仅检查输入数据产生的输出结果是否与预期的吻合.还要考虑对象的状态。类测试是整个测试过程的一个重要步骤,它与传统测试方法的区别可用测试按顺序可分为三个部分:1)基于服务的测试:测试类中的每一个方法:2)基于状态的测试:测试类的实例在其生命周期各个状态下的情况:3)基于响应状态的测试:从类和对象的责任出发.以外界向对象发送的消息序列来测试对象的各个响应状态。目前有很多类的测试方法,如:基于状态图的测试、基于宁列图的测试、基于活动图的测试、基于协作图的测试、基于状态模式的测试等都是针对上述测试的某一个部分。

  3.3.2 集成测试策略

  如前所述。面向对象软件测试分为类测试、集成测试和系统测试三个层次。其中,集成测试作为重要环节,贯穿于面向对象软件构造过程的始终。面向对象软件的集成测试有两种不同的策略,一种是基于线程的测试,另一种是基于使用的测试。基于线程的测试:集成一组相互协作以对于某输入或事件作出回应的类。每个线程被集成并被分别测试.应用回归测试以保证没有产生副作用。基于使用的测试:通过测试那些不适用的服务器的类(称为独立类)而开始构造系统。在独立测试完成后,下一层的使用独立的类(称为依赖类)被测试.依赖类层次的测试序列一直持续到构造完整个系统

  3.3.3 类间多态性测试策略

  在面向对象软件集成测试中.最需要克服的问题是类问交互带来的多态性和动态绑定的问题多态分为多态操作和多态变量.操作的多态是指在类继承等级的不同层次中可以是同一个方法.而不同层次中的类可按照各自的需要调用该方法。多态变量是指改变量可以引用不同类的对象。针对类的多态性。人们提出一种正交矩阵测试策略.将正交拉丁矩阵应用到软件测试中,生成测试用例,这种方法能有效减少用例个数,但给出的测试用例个数不能实现充分测试

  3.3.4 回归测试策略

  由于面向对象软件的特殊性使得其测试过程以层次增量方式进行.即首先对类进行测试:然后将多个类集成为类簇或子系统.并进行集成测试:最后将多个类簇或子系统集成为最终系统.并进行系统测试。在单个对象方法或方法的集成测试中,都需要确定对哪些测试用例进行回归测试。面向对象的回归测试不再作为测试的一个独立阶段.而是以增量的方法进行.采用层次增量的测试模型

  4、结束语

  面向对象软件测试近年来一直是软件工程领域的一个重要研究课题本文在分析面向对象软件的特点及其对测试的影响的基础上.研究了面向对象软件测试的策略,并分别研究了集成测试、回归测试以及类问多态性测试的策略。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • msw_cn
    2010-12-18 08:29:27

    晃瞎我的狗眼了。

  • dreamever
    2010-12-17 17:19:00

    这个文章里说的宁列图是什么?是一种新的设计方法,还是作者打错字了?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号