面向对象的白盒测试技术的研究与分析_第1页
面向对象的白盒测试技术的研究与分析_第2页
面向对象的白盒测试技术的研究与分析_第3页
面向对象的白盒测试技术的研究与分析_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象的白盒测试技术的研究与分析摘要:本文讨论了面向对象软件的特点,从软件测试的层次划分出发,以一个自动售货机为例设计了一个软件系统的白盒测试用例,分析了白盒测试在面向对象软件测试中的特点和测试的方法。关键词:面向对象;白盒测试;用例1引言如何进步软件质量是软件工程致力解决的关键问题之一。软件测试和验证是保证软件正确性和进步软件可靠性的最根本和最重要的手段。自20世纪80年代以来,面向对象方法和技术的研究已普及计算机软件、硬件和应用各领域,在软件工程领域更是得到了广泛的重视,但研究的重点和成果主要集中于面向对象分析与技术方法学领域(即软件开发的前期),而面向对象软件测试技术的研究还比拟薄弱。

2、近年来,国内外对面向对象软件测试进展了大量的研究,但目前该领域还处于百家争鸣的阶段,还未形成一套较为成熟与完善的软件测试理论与方法。本文从软件测试的层次划分出发,对面向对象的测试方法和解决方案做一讨论,并结合详细工程给出了实例设计。2面向对象理论运用面向对象的方法和技术,首先必须明确什么是“面向对象。曾经有很多年,“面向对象被认为是使用一系列面向对象程序设计语言(如ada95,+,salltalk等)的软件开发方法。如今“面向对象己包含完好的软件工程观点,peterad和edardyurdn给出了“面向对象的如下定义:面向对象(bjet-riented)=对象(bjets)+分类(lassif

3、iatin)+继承(inheritane)+通信(uniatin)。面向对象软件的封装性、继承性、多态性和动态绑定等特性进步了软件的可重用性,使软件开发更快、质量更高,而且软件易于维护、易于修改。通过组装可利用子系统而产生更大的系统,然而另一方面,它却给软件测试带来了更多的困难。与之相对应的软件测试技术还相对滞后,如何探究出一套行之有效的方法,尤其是如何采用自动化的方法来测试这些软件,己成为软件测试者们所面临的挑战。3白盒测试的传统方法白盒测试方法主要根据逻辑段盖准那么,如语句覆盖和断定覆盖等。这些覆盖准那么是白盒测试方法的重要理论根底,可以指导测试人员设计出有效的测试用例。sqateates

4、t是测试perbuilder软件的有用测试工具,它可以与perbuilder对象严密地结合在一起,根据使用sqateatest测试软件的经历和对该软件的理解,认为设计出有效的测试用例仍是使用sqateatest测试软件的关健性工作。能否设计出一系列有效的测试用例,将直接影响到软件的测试效果,因为sqateatest测试软件的测试思想是回归测试,所以能否发现软件中存在的问题,仍依赖于测试用例的设计。从前面的分析中可以看出,无论是使用白盒测试方法还是使用sqateatest测试软件,设计有效的测试用例是测试工作的重要环节。传统的白盒测试方法是按照软件模块内的逻辑控制构造、运行过程和模块间的组织构造

5、与接口,逐个设计出针对每个模块、每个子系统和系统的测试用例,因此每个模块都会被测试到,或者说可以保证测试的模块被覆盖。因为白盒测试的根底是根据对程序构造的清楚描绘,而模块内部的逻辑履盖由逻辑覆盖准那么提供保证。但是在事件驱动面向对象的软件中,软件的设计思路和软件的构造与传统的面向过程的软件相比已经发生了相当大的改变,对象和事件概念在软件开发中占有非常重要的地位,而传统的白盒测试方法并不能适应这种变化。4面向对象白盒测试框架分析测试设计是整个测试过程的关键部分,面向对象软件开发中的白盒测试设计优劣更是整个测试工作的成败所在。为此在本文中我们可以详细的实例来设计一个白盒测试的框架和方法。对用例的用

6、户描绘往往采用系统序列图,它将系统看做一个整体,并从用户的角度描绘用例的处理过程,以购置商品用例为例,给出其处理过程序列表如表2所示。借助购置商品的流程可以对效劳进展白盒测试。白盒测试主要进展根本途径测试,我们在这里主要设计语句覆盖测试和分支覆盖测试,来设计面向对象软件的白盒测试的测试用例,测试用例的设计原那么是保证在测试中程序的每一个可执行语句至少执行一次,针对购置商品的流程得出的详细途径有两条,途径1:1-2-3-4-5;途径2:1-3a-2-3-5a-4-4a-5。根据途径生成测试用例:根据判断节点给出的条件,选择适当的数据以保证每一条途径可以被测试到。只要设计出的测试用例可以保证控制流

7、程图中的所有途径都能被执行到,就可以使得程序中的每一个可执行语句至少执行一次,那么效劳中每个条件的真假两种取值都可以得到测试,从而实现可以检查程序的主要执行途径,又可以覆盖程序的所有分支,而且可以满足语句覆盖的要求。5小结由于面向对象软件自身的特点,使得面向对象的白盒测试有别于传统的白盒测试思想。到目前为止,现有的面向对象软件测试方法还存在许多问题,对面向对象软件的白盒测试技术还有待进一步的深化研究,以便做出对软件测试的理论和理论有指导意义、有影响的成果。参考文献1laran.ul和形式应用:面向对象分析与设计导论.姚淑珍,李虎,译.北京:机械工业出版社,2001.2jabsni,bhg,ru

8、baughj.统一软件开发过程.周伯生,冯学民,樊东平,译.北京:机械工业出版社,2001.3pressanrs.软件工程:理论者的研究方法.黄柏素,梅宏,译.北京:机械工业出版社,1999.面向对象的白盒测试通常不能独立地测试一个方法(操作),这个方法相当于传统的测试单元,而是将这个方法作为一个测试类的一部分。假如一个基类中有一个方法,继承类也继承了这个方法,但是这个方法可能在继承类中被私有数据和方法使用,所以尽管基类中已经测试了这个方法,但是每个继承类也需要考虑对这个方法进展测试。一般从下面两个方面进展考虑。(1)继承的成员函数是否都不需要测试。一般来说,对父类中已经测试过的成员函数,两种

9、情况需要在子类中重新测试,即继承的成员函数在子类中作了改动,或成员函数调用了改动过的成员函数的部分。(2)对父类的测试是否能照搬到子类。多态有几种不同的形势,如参数多态,包含多态,过载多态。包含多态和过载多态在面向对象语言中通常表达在子类与父类的继承关系上。对具有包含多态的成员函数测试时,只需要在原有的测试分析的根底上扩大测试用例中输入数据的类型。从上面的分析可以看出,面向对象的软件的白盒测试主要是针对软件设计中的类和对象来进展测试的。因此链接被测试的软件的类构造,是进展白盒测试的关键。由于封装的原那么,在面向对象软件的类一般设计为私有或受保护类型,即类的属性和方法是无法从外部直接访问的,必须通过类中的公有方法来实现。因此设计测试用例时必需要注意对这些公有成员的才做。白盒测试逻辑覆盖的方法主要包括语句覆盖、分支覆盖、条件覆盖、条件组合覆盖等。穷举测试要求对所有可能的输入和状态执行所有的途径,除非对一些小实例,穷举测试是不现实的,通常是通过从所有可能的测试用例中确定最有可能检测出最多错误的子集,进展

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论