基于UML顺序图的面向对象软件簇级测试
- 格式:pdf
- 大小:55.89 KB
- 文档页数:3
一种新的面向对象软件集成测试序列生成方法摘要:集成测试是面向对象软件测试中的重要环节。
uml不仅在软件分析领域具有重要作用,同时是软件测试的有力依据。
在本文中,提出了一种以uml类图为基础的面向对象软件集成测试的测试序列生成方法。
从uml类图中提取类的所有信息。
然后依据提取的信息计算每个类的内聚度和类间耦合度,将计算结果存入数据库中。
最后根据计算的类间耦合度与类的内聚度从高到低对类进行遍历。
最后生成集成测试时的类测试序列。
经证明该方法对于软件有较好效果。
关键词:uml类图,测试序列,面向对象软件测试【abstract】integrated testing is an important part of oo software testing. uml is useful not only in software design but also in software testing. in this paper, an testing scenarios approach based on uml class diagram is presented, which is in terms of oo software’s integrated testing features. firstly, class’s massages are taken out from uml class diagram. secondly, the class cohesion and degree of coupling between classes are computed according to definitions in paper and saved in database. thirdly, select the class info from database standing on the degree of coupling between classes from big to small. finally, the oo integrate testing scenariosare created and put out .the experiments show that the method is effective.【key words】uml class diagram; testing scenarios; oo integrate testing0 引言面向对象软件的封装性、继承性、多态性和动态绑定等特性提高了软件的可重用性,使软件开发质量更高,而且软件易于维护,通过组装可复用子系统而产生更大的系统。
基于面向对象的软件测试技术分析【摘要】本文通过分析面向对象软件测试的技术特点,针对几种常用的测试方法进行探讨,并以某网上购物系统为例对软件测试方法的实现进行分析,以期通过本文的阐述有效提升程序员的软件测试技能,促进软件测试技术发展。
【关键词】面向对象;软件测试;编码;程序1.面向对象软件测试的技术特点从程序的组织结构方面来讲,传统测试技术不完全适用于面向对象软件的测试。
传统程序的测试过程是选定一组数据,交给待测程序处理,通过比较实际执行结果和预期执行结果,判断程序是否含有错误。
因此,传统软件测试技术与过程式程序中数据和操作分离的特点相适应。
而面向对象软件不是把程序看成是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合,在面向对象程序中,对象是一组属性以及这组属性上的专用操作的封装体,每个对象就像一个传统意义上的小程序,有自己的数据、操作、功能和目的。
而在面向对象的系统中,系统的功能体现在对象间的协作上,相同的功能可能驻留在不同的对象中,操作序列是由对象问的消息传递决定的。
不同对象有自己的不同状态,而且同一对象在不同的状态下对消息的响应可能完全不同。
为实现某一特定的功能,有可能要激活调用属于不同对象类的多个方法(c++中的成员函数),形成方法的启用链。
显然,基于功能分解的自顶向下或自底向上的集成测试策略并不适用于以面向对象方法构造的软件。
面向对象软件语言特有的一些概念和机制,如数据抽象、继承、多态、动态绑定和消息传递都对测试有着深刻的影响。
其中有的因素使测试复杂化,导致测试工作量加大,有的因素有助于测试过程中重用已有的测试资源,从而有利于减少测试的工作量,有的因素两方面兼而有之。
但总的来讲,在这些因素的共同作用下,测试面向对象比测试传统软件更加困难。
2.面向对象软件测试的常用方法2.1基于类流图的测试类流图是一种用来表示类的行为特性,且在结构上与传统控制流图相似的有向图。
基于UML顺序图的场景测试用例生成方法摘要本文提出了一个基于UML顺序图的场景测试方法,它以UML顺序图为主要测试模型,结合类图和状态图生成所有的测试场景,然后找到与每一场景相关的环境条件并将它与方法序列、输入、输出合理组合作为覆盖该场景的测试用例。
该方法完全基于UML,而且生成的测试用例数量少,减少了测试工作量。
关键词 UML顺序图; 场景测试; 测试用例;自动测试0 引言本文提出了一个基于UML模型图来测试场景的方法,它以顺序图为主要测试模型,结合类图和状态图导出所有的场景,并将与场景相关的环境条件与方法序列、输入、输出合理组合作为覆盖该场景的测试用例。
我们的工作具有两方面的优点:测试方法完全基于UML模型,以便已经使用UML的软件系统能方便地采用,另一方面生成的测试用例数量少,减少工作量。
1 实例本文以DHCP作为一个实例,使用UML 的类图、状态图和顺序图来说明我们提出的一个场景测试用例生成方法。
DHCP是由IETF 进行标准化的一个协议,提供一种动态指定IP地址和配置参数的机制。
我们选取了DHCP 协议的一个子集,协议的一般过程 1.客户端广播一个DHCP_DISCOVER消息。
2.每个具有网络地址的服务可能响应一个DHCP_ OFFER消息,如果都没有响应,则表示超时失败。
3.如果客户端接收到一个或多个DHCP_OFFER消息,则选择其中一个,然后广播一条DHCP_REQUEST消息给所有的服务器,并附上选择参数及指明哪一个服务器。
4.所有服务器接收到客户的广播信息,只有被选中的服务器才绑定地址给这个客户,并发送确认消息DHCP_ACK,连接成功;如果要求的地址不可得,则服务器发送一个DHCP_NAK给客户,连接失败。
图1显示了DHCP协议的部分类图。
图1 DHCP的部分类图图2是实例中请求IP的顺序图。
图2 请求IP的顺序图图3是DHCP中Server类的状态图。
图3 DHCP-Server状态图2 UML顺序图的一个形式化定义为了能在测试中找出所有的场景,下面给出顺序图的形式化定义:定义1顺序图SD可以表示为一个六元组:SD=O, M, E, →,msg, obj,其中:● O={O1, O2, …,Om},是对象的集合。
一种基于uml图形对软件进行自动化测试的装置及方法专利名称:一种基于uml图形对软件进行自动化测试的装置及方法技术领域:本发明涉及计算机自动化测试技术领域,特别是涉及一种基于统一建模语言(Unified Modeling Language, UML)图形对软件进行自动化测试的装置及方法。
背景技术:软件测试作为保证软件质量和企业生产安全的关键技术,正日益受到广泛的重视。
单纯依靠手工测试已难以满足客户对软件质量不断提高的要求,业界已经在不断研究采用自动化测试手段来提高测试效率、缩短测试时间及节省人力成本。
但是,在自动化测试中编写自动化测试脚本是必不可少的工作,随着软件的不断升级,测试人员就需要不停地去重新录制和修改脚本,使得自动化测试过程效率低下,并直接导致测试时间的增加。
而且,编写脚本编写的质量也直接影响到软件的测试效果,测试脚本编写不好将导致软件测试不全面、不能有效发掘出软件中存在的缺陷,进而影响软件的质量,甚至影响企业生产运行的稳定性。
因此,研究和实现测试脚本的自动生成,提高软件测试效率和提高软件的质量,从而实现系统稳定性等一直的人们在不断研究的问题。
发明内容(一 )要解决的技术问题本发明为了解决目前在自动化测试时需要频繁的重新录制和修改测试脚本进而导致测试效率低下、准确性和覆盖率低下的问题,提供了一种基于UML图形对软件进行自动化测试的装置及方法。
( 二)技术方案为达到上述目的,本发明提供了一种基于UML图形对软件进行自动化测试的装置,该装置包括依次连接的UML图形读取装置1、UML图形分析装置2、测试路径分析装置3、测试路径选择装置4、测试脚本生成装置5、数据管理装置6和自动化测试工具7,该装置通过对UML图形进行分析,根据UML图形的内容生成测试脚本,实现对软件的自动化测试。
上述方案中,所述UML图形读取装置1用于从UML图形文件中读取UML图形的节点信息,并将读取的UML图形的节点信息发送给UML图形分析装置2。
基于UML协作图的集成测试序列生成方法董玉坤(中国石油大学计算机与通信工程学院,山东东营 257061)摘要:随着软件测试自动化的要求,以及UML在面向对象软件开发领域中的广泛应用,基于UML的面向对象软件测试正日益受到关注。
集成测试是面向对象软件测试的一个重要阶段,在基于UML协作图生成面向对象软件的集成测试用例的过程中,一个重要内容是测试序列的生成。
针对集成测试序列数量容易膨胀的现象,根据UML协作图的特点,应用过程间受限控制流图(IRCFG)描述协作图的消息间逻辑控制关系。
给出了由Rational Rose开发的规格说明文件生成IRCFG的算法,并介绍了IRCFG的几种覆盖准则与基于IRCFG生成测试序列的方法。
关键字:协作图;面向对象;过程间受限控制流图;集成测试;测试序列中图分类号:TP311.52文献标识码:AAn Approach to Generate Integration Test Sequence Based on UMLCollaboration DiagramsDONG Yukun(College of Computer and Communication Engineering,China University of Petroleum,Dongying257061,China)Abstract: With the requirement of automated testing, and the popularization of UML in object-oriented software design and development, object-oriented software testing based on UML gained much attention. Integration testing is an important step of object-oriented software testing; generating test sequence is an important work of generating integration test case based on UML collaboration diagrams. Based on characters of UML collaboration diagrams, applies IRCFG expressing the logic control relation of messages in collaboration diagrams. Steps of generating IRCFG from the specification file developed by Rational Rose was given, several coverage criteria of IRCFG and the approach of generating test sequence based on IRCFG were introduced.Key words:collaboration diagrams;object oriented;IRCFG;integration testing;test sequence1 引言集成测试[1]是面向对象软件测试的一个重要阶段,因为面向对象的程序由若干对象互相协作实现某个功能,即便单独测试通过的类,其对象在参与协作时依然可能产生若干错误,如接口错误、功能冲突、功能遗漏等。
一种基于UML的面向对象的软件需求分析方法1 引言UML(Unified-ModelingLanguage,统一建模语言)又称标准建模语言,其为软件开发的所有阶段提供模型化与可视化支持,可应用于面向对象开发系统产品的说明、可视化与编制文档过程。
该语言于1994年由GradyBooch、JimRumbaugh、IvarJacobson 联合开发,因其定义良好、易于表达、功能强大等特性,已成为OMG(ObjectManagementGroup,对象管理组织)的一项标准[1]。
软件需求分析阶段是软件开发的第一步,也是最重要的一步。
该阶段应明确系统目标,将用户对于软件的一系列意图、想法转变为软件开发人员所需要的有关软件的技术规格,并由此实现用户和开发人员之间的有效通信。
传统的软件需求分析通过结构化方式,通过功能分解描绘整个系统的组成,将各功能分解为相应功能模块,如图1 所示。
其主要缺点为:(1)缺少用户与系统交互行为的描述;(2)设计和需求容易混淆;(3)系统功能所在的应用环境被分割,无法直接描述系统功能之间关联。
UML 作为一种沟通工具,可以应用于软件开发的整个流程中,包括需求分析阶段、系统分析与设计阶段、系统开发阶段及系统测试阶段等,供用户、需求分析师、设计人员、程序员和测试人员等相关人员共同使用。
在使用UML 进行需求分析时,将信息抽象成对象进行分析,从而直观、形象、严谨地描述出业务概念、业务流程、用户的期望和需求,为需求分析及相关人员提供更清晰、明确的目标,从而建立其与用户沟通的良好桥梁。
UML 具有以下优点:(1)便于系统相关人员之间的无障碍交流,提高沟通效率;(2)易于响应变化,在发生需求变更时,快速、清晰地识别出影响点;(3)能够为软件设计提供良好支持,使设计成品与业务流程更加连贯、合理、有逻辑性,模块及功能之间的耦合关联更加清晰。
2 UML图形工具UML 中常用的图有九种,包括用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图和部署图等,在需要分析阶段主要用到用例图、活动图、序列图等。
基于UML面向对象的系统分析设计方法研究1、引言UML是一种编制系统蓝图的标准化语言,可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,它是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
UML的发展对软件工程的发展做出了杰出的贡献。
UML支持从需求分析开始的软件开发的全过程。
UML通过三类图形建立系统模型:用例(Use Case)图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度实现系统的可视化。
URM的发展经历了以下几个阶段。
最初的阶段是专家的联合行动,由三位OO(面向对象)方法学家[8]将他们各自的方法结合在一起,形成UML 0.9。
第二阶段是公司的联合行动,由十几家公司组成的“UML 伙伴组织”将各自的意见加入UML,形成UML 1.0和1.1,并作为向OMG申请成为建模语言规范的提案。
第三阶段是在OMG控制下的修订与改进,OMG于11月正式采纳UML 1.1作为建模语言规范,然后成立任务组进行不断的修订,并产生了UML 1.2、1.3和1.4版本,其中UML 1.3是较为重要的修订版。
目前正处于UML的重大修订阶段,目标是推出UML 2.0,作为向ISO提交的标准提案。
1.1 UML的特点UML具有以下特点[1]:(1)面向对象。
UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。
(2)可视化,表示能力强。
通过UML的模型图能清晰地表示系统的逻辑模型和实现模型。
可用于各种复杂系统的建模。
(3)独立于过程。
UML是系统建模语言,独立于开发过程。
(4)独立于程序设计语言。
用UML建立的软件系统模型可以用Java、VC++、SmalltaIk等任何一种面向对象的程序设计来实现。
(5)易于掌握使用。
UML图形结构清晰,建模简洁明了,容易掌握使用。
基于UML顺序图的面向对象软件簇级测试
苏荟1费蓉1
(1. 西安理工大学计算机科学与工程学院 2. 北海市环境保护局)
摘 要首先从*.MDL文档中提取出类间的交互信息
验证源代码中类间信息交互是否正确
关键词簇级测试
和
return
实现簇级测试的结果返回
从生成的*.MDL
文件中
(1)启动RationalRose
服务器
(2)
取得到模型中的分类集合
然后得到指定场景中的消息集合
(6)释放RationalRose
服务器占用的资源
IRoseModel
利用RationalRose
提供的接口函数
图2 各类之间的调用关系
以下创建两个关键类 (1)CRoseModelInfo 类
这个类主要负责将RationalRose 模型中顺序图中的类之
间的交互消息提取出来
同时
其中的3
级链表描述如下
2)
顺序子图链表
每个结点的数据域分为如下3
部分
子图名
用以唯一标识该对象
每个消息结点中存放提取出来的顺序图中对象之
间具体的交互信息
导出数据库
ADO(ActiveX Data Object)
指在
保持被测试程序原有逻辑完整性基础上在程序中插入一些探
针
可以获得程序的控制流及数据流信息
通过运行带有探针
的被测试程序而获得程序运行的动态数据
(1)
建立被测试程序的副本
C++是*.mak
文件
并在副本中插入提取协作类相关交互信息的探针
如类名称
插装信息链表的
数据结构如下
(3)
程序正常编译运行后
将类和类之间的交互信息提取出来
将从顺序图中提取的信息与插装后抛出的信息进行
比较
运行后
类
ShowCard( )
CUser
CAutoDoor Permition() CAutoDoor
CUser
Search()
CDatabase
CDatabase
3.3 信息比较
插装技术决定返回的结果相对而言
不同的插装方法返回不同的信息量
目前尚无通用技术解决这
一问题
从UML 顺序图中提取的信息与从源代码运行中提取的交互信息返回如下结果
(2)返回不匹配的信息数量
发出信息的类的名称
(3)返回类被使用的频率
有利于对程序的修改本例信息匹配结果显
示如下
程序插装 3
2条
解决这个问题
AMPL 是一种
对线性和非线性优化问题建模的代数语言
下面通过一个例子来进一步说明构件选择的过程
可用于购买第三方构件的
费用限制在20 000
元内
且对每个功能模块已识别出一组构件
以及Fitness 和Usability
的值
sub[1]={COTS[1,1],
COTS[2,2], COTS[3,1]}, sub[2]={COTS[2,1], COTS[4,4],
COTS[5,4]}
从而淘汰下列构件
最后得到一个最优解为Γ={COTS[1,4],
COTS[2,1], COTS[3,1], COTS[4,5], COTS[5,5]}
购买总费用是
19 000
可得到具有不同全局
需求满足度的构件组合
构件的选择分为局部评估和全局选择两个阶段
需求满足度和功能有用度小于预定义阈值的构件
被淘汰
为求解该问题
然后选择一种针对混合整数非线
性规划方法的求解器对问题求解
本方法对构
成一个复杂软件系统的多个构件同时进行评估
以及将多构
件的选择定义为一个数学优化问题
发送
接收
信息名称
发送
接收
:Cdatabase
类的实例化次数
CAutoDoor
CDataBase
证明了提出的方法的可行性
本文在UML
顺序图的基础上
实现了一定程度的测试功能
进一步证明了UML
顺序图的可用性
我们在以后的研究中
顺序图在面向软件测试中作用将会越来越明显。