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

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

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

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

  软件测试是保证软件质量的一个重要手段随着面向对象技术在软件工程中日益推广和使用.传统的结构化测试技术和法受到了极大的冲击面向软件测试技术是新兴的软件测试技术.是专门针对使用面向对象技术开发的软件而提出的一种测试技术.是面向对象软件开发中的不可缺少的一环.已成为保证面向对象软件质量、提高其可靠性的关键。本文主要研究了面向对象技术的特点对测试的影响.提出面向对象软件测试的策略。

  1、测试面向对象软件的特殊性

  和传统的开发技术相比.面向对象开发技术新增了多态、继承、封装等特点,极大地优化了数据使用的安全性.捉高了代码的重用率.是面向对象开发技术产生巨大吸引力的重要因素而另~方面也影响了软件测试的方法和内容.增加了软件测试的难度.带来了传统软件设计技术所不存在的错误从程序的组织结构方面来讲.传统软件测试技术与过程式程序中数据和操作相分离的特点相适应.是从输入/处理/输出的角度检验一1、函数或过程能否正确工作面向对象程序设计把程序看作是相互协作而又彼此独立的对象的集合在面向对象程序中,对象是属性(数据)和方法(操作)的封装体。每个对

  象就像一个传统意义上的小程序.有自己的数据、操作、功能和目的。因此,传统的测试技术必须经过改造才能用于面向对象软件的测试.同时.还需要研究专门针对面向对象软件、适应面向对象软件特定的测试理论和技术

  2、面向对象技术的特点及其对测试的影响

  与传统的程序相比.面向对象程序设计是一种全新的软件开发技术,面向对象程序的封装性、继承性、动态绑定等特性使程序具有较大的灵活性.给软件测试提出了新的要求.使得面向对象软件的测试更加复杂

  2.1 信息隐蔽对测试的影响

  类的重要作用之一就是信息隐蔽.它对类中所封装的信息的存取进行控制.从而避免类中有关实现细节的信息被错误使用。而这样的细节性信息正是软件测试所不可忽略的。由于面向对象的软件系统在运行时刻由一组协调工作的对象组成.对象具有一定的状态,在工作过程中对象的状态可能被修改.产生新的状态。所以对于面向对象的程序测试.对象的状态是必须考虑的因素。面向对象软件测试的基本工作就是创建对象.向对象发送一系列信息后检查结果对象的状态.看其是否处于正确的状态。而对象的状态往往是隐蔽的.若类中未提供足够的存取函数来表明对象的实现方式和内部状态.则测试者必须增添这样的函数。因此,类的信息隐蔽机制给测试带来困难2.2封装性对测试的影响

  封装性(Encapsulate)~类的重要特征之一.它把数据和操作数据的方法封装在一起.限制对象属性对外的可见性和外界对它的操作权限。封装性提高了信息隐蔽的能力。使模块间的耦合变弱,从而使程序更容易修改。有效地避免了类中有关实现细节的信息被错误地使用.而这样的细节性信息正是软件测试所不可忽略的。如前所述,对象的状态是对面向对象的程序测试必须考虑的因素.测试应涉及对象的初态、输人参数、输出参数、对象的终态。但是.对象的状态往往是隐蔽的.若类中未提供足够的存取函数来表明对象的实现方式和内部状态.则测试者必须增添这样的函数。这样增加了测试的工作量.在一定程度上破坏了类的信息隐蔽性和封装性因此.类的封装性给测试带来了很大困难。

  2.3 继承性对测试的影响

  继承是指父类的属性和操作可以通过实例化产生的子类和对象来实现继承性是面向对象程序的基本特性之一.是一种有效的程序复用方法然而.类的继承机制增加了软件测试的复杂性,同时也向测试用例设计者提出了新的挑战。即使是彻底复用的,对每个新的使用语境也需要重新测试此外.多重继承增加了需要测试语境的数量,从而使测试进一步复杂化。在面向对象的程序中,一个函数可能被封装在多个类中.子类不但继承了父类中的特征(数据和方法).还可以对继承的特征进行重定义Weyuker的非外延性公理认为若有两个功能相同而实现不同的程序,对其中一个是充分的测试数据集未必对另一个是充分的所以,继承并未简化测试问题.反而使测试更加复杂

  2.4 多态性对测试的影响

  多态性(Polymorphism)~-向对象方法的关键特性之一.同一消息可以根据发生消息的对象不同采取不同的处理方法.它使得系统在运行时能自动为给定的消息选择合适的实现代码.这给程序员提供了高度柔性、问题抽象和易于维护但多态性所带来的不确定性.也使得传统测试实践中的静态分析法遇到了不可逾越的障碍。与此同时还增加了系统运行中可能的执行路径.加大了测试用例的选取难度和数量这种不确定性和骤然增加的路径组合给测试覆盖率的满足带来了挑战多态性给软件测试带来的问题仍然是目前研究的重点及难点问题之一

  3、面向对象的软件测试策略

21/212>
《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号