您好,欢迎来到刀刀网。
搜索
您的当前位置:首页面向对象软件测试技术的研究与应用

面向对象软件测试技术的研究与应用

来源:刀刀网
维普资讯 http://www.cqvip.com 第17卷计算机技术与发展 2007年1月 第l期 v01.17 No.1 COMPUTER TECHNOLOGY AND DEVELOPMENT Jan.2007 面向对象软件测试技术的研究与应用 赵荣利,崔志明,陈建明 (苏州大学智能信息处理及应用研究所,江苏苏州215006) 摘要:面向对象软件测试是面向对象软件开发的重要一环,是保证软件质量提高软件可靠性的关键。结合传统软件测试 的方法和技术,并针对面向对象软件所具有的特征,将面向对象软件测试层次划分为3层:类测试、类簇测斌和系统测试, 讨论了面向对象软件测试的测试方法和解决方案,并以销售系统为例,给出了相应层次的具体测试策略。 关键词:面向对象;软件工程;软件测试;类测试;块分支图 中图分类号:TP311.56 文献标识码:A 文章编号:1673—629X(2007)01—0015—03 Research and Application on 0bj ect。。Oriented Software Testing ZHAO Rong—li,CUI Zhi—uring,CHEN Jian—ruing (Institute of Intdligent Information Processing and Application,Suzhou University,Suzhou 215006,China) Abstract:Objcet—oriented software testing is indispensable to the development of object—oriented software,and is the key to software quality and reliability.Combining with the method and technique of traditional testign。and according to the characteristics of object—ori. ented software。divides hiberarchy of object—orineted software testign into three layers:class testign,class cluster testing,system tset. ing.Discuss tsetign method and resolvign scheme of objet—oriented sofwtare testign,and give out the ocncretely testign scheme on sale system. Key words: eft—oriented;software engineering;software testign;clm ̄s testign;block branch diagram 0引言 例、执行测试和评价,这都与传统的软件测试一致。但由 如何提高软件质量是软件工程致力解决的关键问题 于面向对象测试本身所具有的封装性、继承性、多态性和 之一。软件测试和验证是保证软件正确性和提高软件可 动态绑定等特性,使得面向对象软件测试的策略和技术与 靠性的最基本和最重要的手段。白2O世纪80年代以来, 传统的软件测试方法有很大不同…。 面向对象方法和技术的研究已遍及计算机软件、硬件和应 在面向对象系统中,系统的基本构造模块已不再是能 用各领域,在软件工程领域更是得到了广泛的重视,但研 完成一个个特定功能的功能模块,而是封装了数据和方法 究的重点和成果主要集中于面向对象分析与技术方法学 的类和对象,测试焦点已从模块转向了类。类是抽象的描 领域(即软件开发的前期),而面向对象软件测试技术的研 述,在语法上它是属性和服务的结合体,是构成面向对象 究还比较薄弱。近年来,国内外对面向对象软件测试进行 程序的基本成分。笔者认为面向对象软件从宏观上来看 了大量的研究,但目前该领域还处于百家争鸣的阶段,还 是各个类之间的相互作用,提出的测试策略将类层的测试 未形成一套较为成熟与完善的软件测试理论与方法。文 作为单元测试,将面向对象测试划分为3个层次:类测试、 中从软件测试的层次划分出发,对面向对象的测试方法和 类簇测试和系统测试。 解决方案做一探讨,并结合具体项目给出了实例设计。 1.1类测试 面向对象软件的类测试与传统软件的单元测试相对 1测试方法与解决方案 应,但和传统的单元测试不一样_2j。类包含一组不同的操 面向对象测试的整体目标是以最小的工作量发现最 作,并且某特殊操作可能作为一组不同类的一部分存在。 多的错误。动态的测试过程:制定测试计划、产生测试用 同时,一个对象有它自己的状态和依赖于状态的行为,对 象操作既与对象的状态有关,但也可能改变对象的状态。 收稿日期:2006—04—07 所以,类操作时不仅要将操作作为类的一部分,同时要把 基金项目:苏州市2004年度科技攻关项目(SG0406) 对象与其状态结合起来,进行对象状态行为的测试。类测 作者简介:赵荣利(1981一),女,河南洛阳人,硕士研究生,研究方向 试可以分为以下三个部分: 为数据挖掘、智能化信息处理;崔志明,教授。博士生导师,研究方向 a.基于服务的测试:测试类中的每一个服务(即方 为智能化信息处理、计算机网络应用与数据库应用;陈建明,副教授, 法); 研究方向为计算机网络应用和数据库应用。 b.基于状态的测试:考察类的实例在其生命期各个状 维普资讯 http://www.cqvip.com ・16・ 计算机技术与发展 第17卷 态下的情况; c.基于响应状态的测试:从类和对象的责任出发,以 外界向对象发送特定的消息序列来测试对象。 量的每一种可能取值应至少在测试用例中出现一次。 1.3系统测试 系统测试是对所有类和主程序构成的整个系统进行 整体测试,以验证软件系统的正确性和性能指标等满足规 基于服务的类测试主要考察封装在类中的一个方法 对数据进行的操作。Kung等人提出的块分支图(Block Branch Diagram,简称 jI))是一种比较好的服务测试模型 (如图1所示)。 P 格说明书和任务书所指定的要求。它与传统的系统测试 一样,可套用传统的系统}贝4试方法,区别仅在于测试用例 的形式有所不同,测试用例可以从对象一行为模型和作为 面向对象分析的一部分的事件流图中导出。 2测试实例的设计 G 2.1系统测试实例 对系统层的测试主要是通过用例视图来测试系统所 P 图l块分支图 实现功能是否满足规格说明书和任务书所指定的要求。 在商品销售系统中,其系统用例图[ ]如图2所示。 服务,的BBD是一个五元组,BBD={D , ,P, , G};D ={d l d ∈f引用的全局数据或类数据};Dd: {df l dl∈f修改的全局数据或类数据};P={Xl 1, X2 2,…,x ,墨+1 +1∈f的参数表和函数返回值,Oi 为+(输入)、十(输出),或+(输入/输出);若 + 缺省, 则无返回值}; ={ l ∈被,调用的其他服务};G是 一个有向图,叫做块体。它是按照控制流图的思想修改, 的程序流程图而来的,表示厂的控制结构中的符合条件判 断被分解,每个判断框只有单个条件。 1.2类簇测试 类簇是一组相互合作的类。类簇测试主要考察一组 协同操作的类之间的相互作用。测试重点在类之间的逻 图2销售系统的用例视图 2.2类簇测试实例 辑关系——关联、继承、聚合、多态,检验类之间的相互配 合。其测试用例可由多种方案结合生成。如根据类的继 承关系图来纵向检查类,同时又根据对象之间方法的相互 类簇测试主要考察一组协同操作的类之间的相互作 用。测试重点在类之间的逻辑关系——关联、继承、聚合、 多态,检验类之间的相互配合,用系统静态视图来测试。 在商品销售系统中,其销售的系统静态视图如图3所示。 作用来横行检查类的关系。 (1)关联和聚合关系的测试:将具有关联和聚 合关系的类组装在一起,选择其中主动发送消息的 类的测试用例为此测试的用例,加载驱动程序运行 测试用例,检验类间的传递与响应。 (2)继承关系的测试:D.E.Perry和G.E. Kaiser[3 J根据Wey1lker的测试充分性公理对该问 题进行了讨论,认为子类中继承的方法和重定义的 方法都必须在子类的环境中重新测试,对被继承的 方法是充分的测试数据集,对重定义的方法未必是 充分的。对继承关系的测试主要是对派生类继承 部分的测试,它可重用父类的浸0试用例,利用回归 测试进行,对派生类的非继承部分需重新设计测试 用例进行类测试。 (3)多态/动态绑定的测试:多态/动态绑定显 著增加了系统运行中可能的执行路径。由于多态/ 动态绑定所带来的不确定性,使得涉及多态实例变 量的测试用例大幅度增长。多态/动态绑定实例变 图3销售系统的噗关系连接图 维普资讯 http://www.cqvip.com 第l期 赵荣利等:面向对象软件测试技术的研究与应用 ・ l7- Saler(售货员类)通过雇员类继承administrator(管理 表中验证输入的用户名和密码是否正确是此例的判断条 员类)。商品类建立一个工厂的实现方法_5 J,使不同的商 件 品分别实现,以方便扩充。为便于查询和统计,建立相应 的SaleStore和ItemStore来进行相应的逻辑操作。Sale— Store:交易逻辑接口,完成查询、更改操作,以及相应的数 据库操作;hemStore:商品逻辑接口,完成查询、更改、添 加、删除以及相应的数据库操作。 2.3类测试实例 在进入界面选择以administrator(管理员)身份Aentry (登陆)系统为例,即administrator类的Aentry服务,其对 图5 Aentry控制流图 应的BBD如图4所示。 只要设计出的测试用例能够保证控制流程图中的所 有路径都能被执行到,就可以使得程序中的每一个可执行 Ismange,uid,psw uid,psw 语句至少执行一次,则服务中每个条件的真假两种取值都 可以得到测试,从而实现可以检查程序的主要的执行路 (开始(ismarmge=1)) 径,又可以覆盖程序的所有分支,而且可以满足语句覆盖 的要求。 输入用户名密码 3结束语 一 由于面向对象本身所具有封装、继承、多态和动态绑 定等特性,使得面向对象测试在测试层次及测试方案的选 择上有别于传统的测试思想。到目前为止,现有的面向对 。I 象软件测试方法还存在许多问题。如:类不能直接测试而 只能通过类的实例一对象进行,对于无法实例化的抽象类 I 劬1l 厂 咖J、  如何测试将是一个问题?测试的充分性问题,如何有效地 生成测试用例?如何规划和开发自动化测试?等等。对 这一领域还有待进一步的深入研究,以便做出对软件测试 的理论和实践有指导意义、有影响的成果。 图4 Aentry的BBD图 借助BBD可以对服务进行结构测试和功能测试。前 参考文献: 者主要进行基本路径测试,此项测试包含了语句覆盖测试 [1]PressmanR S.软件工程——实践者的研究方法IN].黄柏 和分支覆盖测试。基本路径测试的基本思想是:根据软件 素,梅宏,译.北京:机械工业出版社,1999. 详细设计和代码中的控制流程确定复杂性度量,然后用此 [2]Binder R V.Testing Object—Oriented Software;A Survey 度量定义基本路径集合,导出测试用例,它们能保证在测 [J].Jourrml of Software Testing,Verification and Reliability, 试中程序的每一个可执行语句至少执行一次。具体步骤 1996(6);225—252. 如下: [3]PerryDE,KaiserGE.Adequatetesting aI1d object—orient- (1)绘制服务的控制流图,如图5所示。 ed progranmaing[J].Journal of Object—oriented Program (2)确定基本路径集:在图5所示的控制流图中,一组 mign,1998(5):105—110. 的路径是:pathl:l一2—3—5—7 path2:1—2—3—4 [4]吴建,郑潮,汪杰.LrML基础与Rose建模案例IN]. 北京:人民邮电出版社,2004. —5—7 path3:l 2—3 4 6—7。 [5]GAMMAE,HELM R,JOHNAOND R.设汁模式:可复用 (3)生成测试用例:根据判断节点给出的条件,选择适 面向对象软件的基础[M].李英军,马晓星,蔡敏,等译. 当的数据以保证每一条路径可以被测试到。adnfinistrator 北京:机械工业出版社,2000. -,-4--—・卜*—卜-—・卜-+——・ ・ (上接第14页) [6]Taubman D.High Performance scalable image compression Circuits Syst Video Technol,1996,6:243—250. with EBCOr[J].IEⅡTram Image processing,2000,9(7): [8]Shapiro J M.An embedded hierarchical image coder usign ze- 1158—1170. rotrees of wavelet coefficients[C]/An IⅡE Data Cz ̄mpres- f7]Said A,Pearlman W.A new,fast and efficient image codec Non Conf.uT:Snowbird,1993:214—223. based on set parittionign in hierrachical trees[J].IEEE Tram 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务