基于面向对象的软件测试技术分析

来源 :科技致富向导 | 被引量 : 0次 | 上传用户:g10703107
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   【摘 要】本文通过分析面向对象软件测试的技术特点,针对几种常用的测试方法进行探讨,并以某网上购物系统为例对软件测试方法的实现进行分析,以期通过本文的阐述有效提升程序员的软件测试技能,促进软件测试技术发展。
   【关键词】面向对象;软件测试;编码;程序
   1.面向对象软件测试的技术特点
  从程序的组织结构方面来讲,传统测试技术不完全适用于面向对象软件的测试。传统程序的测试过程是选定一组数据,交给待测程序处理,通过比较实际执行结果和预期执行结果,判断程序是否含有错误。因此,传统软件测试技术与过程式程序中数据和操作分离的特点相适应。而面向对象软件不是把程序看成是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合,在面向对象程序中,对象是一组属性以及这组属性上的专用操作的封装体,每个对象就像一个传统意义上的小程序,有自己的数据、操作、功能和目的。
  而在面向对象的系统中,系统的功能体现在对象间的协作上,相同的功能可能驻留在不同的对象中,操作序列是由对象问的消息传递决定的。不同对象有自己的不同状态,而且同一对象在不同的状态下对消息的响应可能完全不同。
  为实现某一特定的功能,有可能要激活调用属于不同对象类的多个方法(C++中的成员函数),形成方法的启用链。显然,基于功能分解的自顶向下或自底向上的集成测试策略并不适用于以面向对象方法构造的软件。
  面向对象软件语言特有的一些概念和机制,如数据抽象、继承、多态、动态绑定和消息传递都对测试有着深刻的影响。其中有的因素使测试复杂化,导致测试工作量加大,有的因素有助于测试过程中重用已有的测试资源,从而有利于减少测试的工作量,有的因素两方面兼而有之。但总的来讲,在这些因素的共同作用下,测试面向对象比测试传统软件更加困难。
   2.面向对象软件测试的常用方法
  2.1基于类流图的测试
  类流图是一种用来表示类的行为特性,且在结构上与传统控制流图相似的有向图。假设对于一个给定的类C,O代表它的方法集,那么它的类流图G中的结点分别表示O中的每一个方法,有向边(O1,O2)表示方法O2可在方法O1之后被调用,事实上也就是方法O1的后置条件满足方法O2的前置条件。有了类流图,类的方法序列就可以很方便地由对图的遍历得到,其覆盖准则也包括点覆盖、边覆盖、路径覆盖等。某些有向边旁标有判断条件,类似于流程图中的逻辑条件,可以用来确定变量的取值。
  以上两种方法都可以推广到类簇测试中。通过方法序列规范或类流图,可以很方便地为被测类生成消息序列,但它们的缺陷均在于没有考虑被测类的状态,鉴于状态检查在类测试中的重要地位,它们通常不被看作主流的测试方法。
  2.2基于状态的测试
  基于状态的测试是以状态机模型或某些模型化规约为基础的测试。测试时按照一定的覆盖准则对状态转换图进行遍历,以产生消息序列,并依据状态图检查每一消息序列是否使被测 象达到了规定的状态。
  基于状态的测试充分考虑了对象的消息序列和状态,且按照一定的覆盖标准产生测试用例,是一种较为有效的面向对象的类级和簇级测试方法,也是目前研究和使用得较多的。不过状态机是一种较为复杂的动态模型,比较难于生成。
  2.3基于UML的测试
  UML(Unified Modeling Language)是一种图形化建模语言,它为面向对象软件提供了一整套强大的建模工具,同时也可以作为测试的依据。下面介绍几种已被应用于面向对象软件测试的UML模型:
  (1)类图:类图描述了组成面向对象程序的各个类之间的关系,包括联系、聚集、重数、子类型和递归包含等。采用类图可以检查类之间的这些关系是否得到了正确的实现。例如对于重数关系的检验,通过为具有重数关系的两个类分别创建一定数目的实例对象来检验关系实现的正确性;再如,对两个具有“拥有” 关系的类,可通过检察其中一个类是否对另一个类的对象被更新或删除作出正确的反应来判断其关系实现的正确性。
  (2)顺序图:顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,因此它可以作为类簇测试的依据。顺序图可以转换为流程图,这种流程图表示了对象间消息传递的顺序,与程序流程图在形式上极为类似,也包括了顺序、分支和循环等,是一种高度的可测试模型。其测试方法与程序控制流图的测试方法类似。
  (3)状态图:状态图描述了一个对象在其生命周期中所有可能的状态,以及由于事件的发生而引起的状态间的转移。状态图可作为前面提到的基于状态测试的依据。
  (4)用例图:用例模型描述的是外部执行者所理解的系统功能,它可以为整个的软件系统建模,因此用例模型的图形化表示该用例图可被用在系统测试中。用例图中的每一个用例都可以转换为一个状态转换图,然后参照状态测试的方法进行测试。
   3.基于UML测试的网上购物系统测试实例
  3.1编码前工作
  按照UML测试技术,对网上购物系统分析,建立起用例图,对分析结果、设计结果进行测试,再进入编码,完成后可进行如下测试。
  3.2编码后工作
  (1)进行类或对象测试。首先对注册模块进行测试,根据时序关系,普通购物用户在使用本系统的购物功能前,必须先注册账号;其次对维护个人信息测试,进入系统后,用户也可选择维护自己的信息,比如修改账号名,密码,联系地址等;再对浏览商品信息、维护购物车测试,如果直接进行购物,系统可让用户首先浏览商品信息,查看其详细信息,使之对商品的数量、种类有。个大概的了解:对生成订单进行测试,当购物结束时,系统可以生成一份订购商品的订单(包括所有商品的名字,单价,小计,总价),自动将用户信息、信用卡信息和购物总价发送到银联系统,由银联系统验证信用卡信息并执行扣款,并将银联系统操作成功与否的信息返回到系统。
  管理员进入系统时,首先要输入口令,如果检查通过,就可以对系统中的信息进行维护和管理,包括如下测试:①管理用户信息。当有些用户有不正常操作时,如填写订单时使用不存在的信用卡号,可以将此用户账号冻结,也可以启用用户账号。但管理员无权修改客户信息;②管理系统中的商品信息,例如有新的商品时,管理员可向系统中添加此商品。当商品的价格或规格发生浮动时,管理员也可以对它们作修改,使用户及时了解商品的最新情况。若某件商品没有存货或不再出售时,管理员可删除系统中的此项商品记录。③管理客户定单。及时获得客户的资料(资料中有电子邮件地址),以便与客户联系。
  (2)进行顾客、管理员、银联和物流系统测试,功能测试,直至系统测试。根据对测试结果分析的评判准则,对以上测试用例设计过程进行分析,可知这种测试是一种完全意义上的测试。测试用例的生成可静态生成,也可根据以上模型,生成最优随机数集。
   4.结束语
  面对面向对象技术开发出来的程序具有更好的结构更规范的编程风格,极大地优化了数据使用的安全性,提高了代码的重用率。同时,也影响了软件测试的方法和内容,增加了传统软件设计技术所不存在的错误,增加了软件测试的难度。面向对象测试技术能解决传统测试方法的不足,同时,更高效、快速、全面的测试技术以及自动化测试是面向对象测试技术所需解决的,以适应要求更高、功能更强大的软件系统。
  
  【参考文献】
  [1]柳纯录.软件评测师教程[M].北京:清华大学出版社,2005.
  [2]武剑洁,陈传波,肖来元.软件测试技术基础[M].武汉:华中科技大学出版社,2008.
其他文献
1.路基填土与压实  公路路基的强度和稳定性很大程度取决于路基填料的性质及其压实的程度。从现有条件出发,改进填土要求和压实条件是保证路基质量最有效和经济的方法。  1.1路基填料  规范规定了对路基填料应有条件的选用。对路基填料的最小强度和最大粒径给了量化的标准,采用CBR值表征路基土的强度,引入了路床的概念。对上路床的的填料提出了限制的条件,高速公路和一级公路路面底以下0-30cm的路床填料CB
期刊
【摘 要】本文简要论述有线电视光纤传输系统的基本构成与维护方法。  【关键词】有线电视;传输系统;构成;维护   随着我国CATV网络规模的逐渐扩大、数字化整体转换工作步伐的加快、视频点播、信息服务、证劵服务和高速宽带数据增值业务得需求的不断增加,以及频道数量的逐年增多,传输技术已完成由单纯的同轴电缆向光纤电缆混合网(HFC)过度,光纤传输系统具有传输平带宽、通信容量大、传输损耗低、传输距离远、
期刊
【摘 要】公路工程造价控制贯穿于公路项目建设的全过程,本文针对国内公路工程项目建设的程序,分析在决策阶段、设计阶段、招投标阶段、施工阶段以及竣工结算阶段对工程造价进行控制的意义和具体措施,把公路建设工程的造价控制在批准的造价限额以内,保证项目管理的目标得以实现。  【关键词】公路工程;造价控制;控制措施   0.前言  公路建设周期长、技术复杂、涉及因素多,需要消耗大量的人工、材料、机械和生活资
期刊
【摘 要】建立退耕还林及三北防护林地理信息系统,完善管理机制,实现空间信息的查询管理、动态监测及数据更新、数据处理、数据存储、统计分析、制图制表等功能,提高劳动效率,将管理工作迈向一个新的里程。  【关键词】地理信息系统;技术标准;数据采集   地理信息系统简称GIS,在计算机软硬件支持下,可以对空间数据按地理坐标或空间位置进行各种处理,对数据的有效管理。通过对各种因素的综合分析,它可以迅速获取
期刊
【摘 要】随着我国运输业及公路建设的迅速发展,对高速公路的路面使用性能及质量的要求日益增高。本文以浙江省黄衢南高速公路为施工实例。首先对公路路面沥青施工过程中可能会出现的质量问题(包括显性的和潜在的问题)进行分析讨论,然后针对实际过程中所存在的问题提出相对应的质量控制技术,最后在结论中提出笔者的设想及其建议。  【关键词】高速公路;路面施工;沥青;质量控制  “要想富,先修路”。这个口号无论在什么
期刊
1.背景  随着大庆有线电视数字化装换的逐步实施,有线网络在全市的发展时机已经逐步成熟,目前大庆广电网络公司作为新兴的网络通信运营商,已经为客户提供模拟电视、数字电视及有线宽带的业务,用户在原有有线电视基础上,还可享受到互联网接入、股票行情、信息浏览,NVOD点播等服务,在不久的将来还会提供交互式电视节目、电视商城、电视医疗等服务。大庆有线电视网络的发展正进入一个全新的时期。  大庆广电网络随着业
期刊
【摘 要】我省具有典型的山峦纵横、沟壑遍布的喀什特地形地貌,软土在山间谷地分布较广。随着高等级公路建设规模不断扩大,路线经常不可避免地穿过软土地段,所以软基处理在高等级公路设计施工中已经是个很重要的议题。  【关键词】碎石桩;软基   0.引言  由于软土含水量大,压缩性高,因而软土地基强度低,从而导致路堤因不均匀沉降或剩余沉降量过大而破坏。因此要保证路基稳定首先就得进行软基的固接处理。  某公
期刊
【摘 要】通过自己多年的高速公路沿线站点工程施工实践经验,详细阐述了高速公路各收费站收费广场路面和服务区广场路面在施工过程中平整度好坏的影响因素,并针对出现的问题提出了自己的一些处理措施。  【关键词】水泥砼路面;平整度;施工控制    服务区广场水泥混凝土路面平整度是以几何平面为基准,表现为路面纵向和横向的凹凸程度,是实际施工中最难控制又是最关键的质量指标之一。平整度的合格率直接影响行车的速度
期刊
【摘 要】阐述了森林土壤的作用,介绍了与林木生长密切相关的森林土壤属性,并从造林、森林经营等方面总结了森林土壤在林业发展中的应用,以供参考。   【关键词】森林土壤作用;林业发展对策  森林土壤学是研究土壤特性及其管理的应用基础学科。林业要发展,林地生产力要提高,很重要一点就是以森林土壤学为指导,根据土壤特性与林木生长关系,在生产中采用适宜的技术。现就造林、森林经营及林区上应用土壤的实践作一简述
期刊
【摘 要】本文从实践中,对住宅工程施工中的质量进行分析,如混凝土构件裂缝、屋面渗漏、卫生间、厨房地面渗漏等常见的质量问题,并提出防治措施。   【关键词】质量分析;防治措施   住宅工程施工中经常会发生如混凝土构件裂缝、屋面渗漏、卫生间、厨房地面渗漏等常见的质量问题,对建筑工程质量的危害很大。本文从实践中,对住宅工程施工中的质量进行分析,并提出防治措施。   1.常见的质量问题及其分析  1
期刊