(计算机应用技术专业论文)基于uml活动图的测试场景智能化生成方法研究.pdf_第1页
(计算机应用技术专业论文)基于uml活动图的测试场景智能化生成方法研究.pdf_第2页
(计算机应用技术专业论文)基于uml活动图的测试场景智能化生成方法研究.pdf_第3页
(计算机应用技术专业论文)基于uml活动图的测试场景智能化生成方法研究.pdf_第4页
(计算机应用技术专业论文)基于uml活动图的测试场景智能化生成方法研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

摘要 软件测试是保证软件质量的重要手段,测试成本占整个软件开发成本的4 0 到5 0 ,测试场景用例的质量和生成方法决定着测试的可靠性和成本。随着u m l 标准和r u p 软件开发过程的广泛应用,基于u m l 活动图的场景测试方法可以 在软件开发的早期阶段实施,及早发现软件中存在的缺陷。基于u m l 活动图的 场景生成方法有人工和自动化两种方式,人工方法的缺点是成本高、可靠性和效 率低;自动化方法的缺点是处理u m l 活动图的各种图形元素的能力有限,适用 范围小。 针对自动化方法的缺陷,本文提出了改进的反蚁群测试场景自动生成算法, 该算法可以处理u m l 活动图中表示并发线程的分叉汇合对的多重嵌套结构以及 循环结构,提高了解析活动图的能力,扩大了算法的适用范围。本文首先在分析 u m l 模型在软件测试中的优势和地位的基础上,研究了u m l 活动图的可测性 并给出了扩充其可测性的策略。然后,论文规范了分叉汇合的命名规则,增加蚂 蚁的记忆体、系统循环体和系统信息体等数据结构,设计了循环嵌套结构的场景 的生成方法,利用递归处理分叉汇合多重嵌套结构,并生成相应的细一线程树。 最后,本文结合实例设计了该算法的完整实现方案,并在n e t 环境下用c 拌 语言对改进算法进行了验证。本文给出了上海轨道交通六号线的测试项目( a f c ) 中的一个活动图实例,生成其x m l 文档,利用改进的反蚁群算法解析x m l 文 档,生成该活动图的细一线程树。从生成结果看,改进的反蚁群算法增强了处理 活动图的能力,提高了测试充分性。 关键词:自动化测试,u m l 活动图,分叉汇合,测试场景,细一线程 a b s t r a c t s o f t w a r et e s t i n gi st h em o s ti m p o r t a n tm e t h o df o rs o f t w a r eq u a l i t ya n dt a k e s a b o u t4 0 一5 0 o fd e v e l o p m e n tc o s t q u a l i t ya n dg e n e r a t i o nm e t h o do ft e s tc a s e a f f e c ts o f t w a r er e l i a b i l i t ya n dc o s t a su m la n dr u ph a v eb e e nw i d e l yu s e d , s c e n a r i ot e s tm e t h o db a s e do nu m l a c t i v i t yd i a g r a mc a l lb ea p p l i e di ne a r l ys t a g eo f s o f t w a r ed e v e l o p m e n t a sar e s u l td e f e c t so fs o f t w a r ec a nb ef o u n do u ti nt i m e g e n e r a t i n gs c e n a r i of r o mu m la c t i v i t yd i a g r a mh a st w ow a y s o n ei sm a n u a lt h e o t h e ro n ei sa u t o m a t i c t h ep r o b l e mo fm a n u a lm e t h o di sc o s t l yw i t l ll o we f f i c i e n c y a n dr e l i a b i l i t y t h ea u t o m a t i ca p p r o a c hi sl i m i t e dw i t ha l lk i n d so fim i m o d e l si nt h e r e s u l ti t sa p p l i c a t i o na r e ai ss m a l l a i m i n ga tt h ed e f e c t so fa u t o m a t i cm e t h o df o rt e s tc a s eg e n e r a t i o n , w ep r e s e n t t h ei m p r o v e da n t i a n t - a g e n ta l g o r i t h mw h i c hc a l li m p r o v et h er e s o l v i n ga b i l i t ya n d i n c r e a s et h ea p p l i c a t i o ni n u m la c t i v i t yd i a g r a m s t h ea l g o r i t h mc a nd e a lw i t h m u l t i n e s tf o r kj o i np a i rs t r u c t u r ea n dl o o ps t r u c t u r ei na c t i v i t yd i a g r a m a tf i r s tt h i s p a p e ra n a l y z e st h ea d v a n t a g e sa n ds t a t u so fu m l m o d e li ns o f t w a r et e s t i n g ,s t u d i e s t h ec o n c e p ta n dt h ee x p a n s i o nm e t h o do fi t sm e a s u r a b i l i t y a f t e r w a r d s ,t h ei m p r o v e d a l g o r i t h ms t a n d a r d i z e st h ed e s i g n a t o ro f f o r kj o i np a i r , a d d ss o m ed a t as t r u c t u r e ss u c h a sa n tm e m o r yb o d y , s y s t e ml o o pb o d y , s y s t e mi n f o r m a t i o nb o d ya n ds oo n , d e s i g n s t h em e t h o dt og e n e r a t et e s ts c e n a r i of o rm u l t i n e s tl o o ps t r u c t u r e ,p r o c e s s e sm u l t i n e s t f o r kj o i np a i rb yr e c u r s i o n ,a n df i n a l l yg e n e r a t ec o r r e s p o n d i n gt h i n t h r e a dt r e e f i n a l l y , w ed e s i g nac o m p l e t ei m p l e m e n t a t i o ns c h e m eo f t h ei m p r o v e da l g o r i t h m v i aac o n c r e t ee x a m p l ew h i c hi sr e a l i z e da n dv a l i d a t e db yc 撑p r o g r a m m i n gl a n g u a g e i nt h e n e te n v i r o n m e n t t h ep a p e rp r e s e n t sa na c t i v i t yd i a g r a me x a m p l ef r o m s o f t w a r et e s t i n gc o n t r a c tf o rs h a n g h a iu m tl i n e6 ( a f c ) ,t r a n s f o r m si ti n t ox m lf i l e , a n dg e n e r a t e st h i n t h r e a dt r e ef r o mx m lf i l e b ya p p l i c a t i o no ft h ei m p r o v e d a n t i a n t a g e n ta l g o r i t h m f r o mt h ee x p e r i m e n tr e s u l t si tc a nb eg e n e r a l i z e dt h a tt h e i m p r o v e da n t i - a n t - a g e n ta l g o r i t h mc a np a r s e m o r ec o m p l e xa c t i v i t yd i a g r a ma n d i m p r o v et h et e s ts u f f i c i e n c y k e y :a u t o m a t i o nt e s t i n g ,u m la c t i v i t yd i a g r a m ,f o r kj o i n , l o o p ,t e s ts c e n a r i o , t h i n t h r e a d i i i 学位论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,不包含其他人或机构已经发表或撰写过的研究 成果。其他同志对本研究的启发和所做的贡献均已在论文中做了明确的声明并表 示了谢意。 论文作者签名: 饪侣 论文使用授权声明 日期: 冲。弓f 本人完全了解上海师范大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其它手段保存论文。保密的论文在解密后遵守此 规定。 论文作者签名: 在傻 导师签名名显半 日期:刁叫 日期:叫f 罗f 上海师范大学硕士学位论文绪论 1 1 研究背景 第一章绪论 众所周知,计算机软件分为系统软件和应用软件,由于计算机性能要求和社 会各个领域需求,系统软件和应用软件的功能在不断加强,软件的规模和复杂性 与日俱增。人们在开发如此大规模、复杂度高的软件系统,不可避免地会出现错 误。为了保证软件质量和可靠性,迅速检测并纠正软件中的错误,软件测试应运 而生。当前软件测试已经成为软件技术研究的重点和难点,软件测试技术的研究 越来越受到软件界的重视。 软件测试是以发现被测试软件的错误为目的,执行被测试软件的过程。它是 保证软件质量和提高软件可靠性的最基本和最重要的手段,是工业界使用的主流 技术。大量统计资料表明,软件测试阶段投入的成本和工作量占软件开发总成本 和总工作量的4 0 到5 0 。近年来,随着软件应用范围的扩大和软件复杂度的 提高,传统的软件测试技术已经不能适应目前软件测试的需要,面向对象技术的 应用给软件测试提出了新挑战。统一软件开发过程r u p 的运用使得测试工作周 期缩短、重复测试和测试频率增加,导致人工劳动量和测试成本急剧增加。手工 测试很难保证软件质量和测试工作的顺利完成,为了保证软件质量,提高软件测 试的可靠性和效率,降低软件测试的成本,软件自动化测试方法研究势在必行。 测试自动化的关键是测试用例的自动生成。测试用例自动生成技术可以改变 以往靠直觉、经验产生测试用例的手工做法,使软件测试的效率和可靠性获得显 著提高,并且减少了人们编写大量测试用例所付出的劳动,从而降低测试成本。 开展软件测试用例生成技术的研究并开发出相应的测试用例自动生成系统,实现 软件测试过程自动化有着十分重要的现实意义。 测试用例的生成可以通过三种方法实现:基于代码的测试用例生成、基于规 格说明的测试用例生成和基于u m l 模型的测试用例自动生成,它们是实现测试 自动化的有效途径。 ( 1 ) 基于代码的测试用例生成。 基于代码的测试用例生成方法是基于实际的代码而生成,即自盒测试。它的 主要缺点是测试是基于实际代码的,而不是基于需求规格。对于需求中出现但没 有实现的错误,或者实现不满足需求规格说明的错误,这种方法都无法发现。 ( 2 ) 基于规格说明的测试用例生成。 基于规格说明的测试用例是基于软件规格说明所描述的系统功能而生成,被 认为是黑盒测试。这种方法通常用于集成测试和系统测试,可以确保软件提供了 预先约定好的功能,弥补了基于代码的测试用例生成方法的不足。 绪论 上海师范大学硕士学位论文 ( 3 ) 基于u m l 模型的测试用例自动生成。 u m l 是面向对象软件系统建模的工业标准,u m l 模型构建了软件系统不同 阶段和不同角度的模型和相关的文档。基于u m l 的软件测试是基于规格说明的 软件测试的分支,其最大的优点就是它比其它形式化方法具有更广泛的适用性。 在软件开发的各个阶段,通过将系统的分析、设计和实现等工件转化为u m l ( 或 者是u m l 的扩展) 的规格说明,并把它们作为测试需求的直接来源,驱动测试 的整个过程。 u m l 具有很多良好的特性和应用能力,将它应用于自动化软件测试,需要 进行如下的研究工作: 1 1 研究u m l 模型的可测试性,针对不同类型系统在不同阶段的测试,给出 严格的可测试的u m l 模型。 2 ) 研究从u m l 模型生成测试用例,实现测试用例设计和执行的自动化。 1 2 国内外研究现状及问题的提出 从上世纪6 0 年代以来,国外的学者对测试用例自动生成进行了多方面的研 究,提出了很多的方法。 在测试用例自动生成方面,t s a i 等提出了从关系代数查询表示的规格说明中 自动生成测试用例方法r 7 1 ,w e y u k e r 等提出了基于布尔规格说明的测试数据自动 生成方法【8 】。此外,基于z 语言的测试用例生成技术1 9 1 也已经成熟。但是这些测 试用例生成方法,因为形式化程度太高而难于广泛的应用。 j e f fo f f u t t t l o 1 2 】开发了根据u m l 状态图自动产生测试用例的测试辅助工具 t c g e n j e f f o f f u t t 首先定义了状态图的测试准则,这些准则包括了状态覆盖测试 准则、迁移关系覆盖准则、迁移关系全谓词覆盖准则和迁移关系对覆盖准则,然 后提出了相应测试准则的测试用例生成算法,根据u m l 状态图模型自动产生测 试用例。 m e v i e r a r l 3 】等把u m l 状态图看成软件的一种规格说明,开发了一个能够 根据测试准则自动生成测试桩模块和产生测试脚本的自动化工具d a s b o o t 。 该系统首先将u m l 状态图导出为x m l 文件,然后从x m l 中读出状态图的模 型来产生相应的测试用例脚本和测试桩模块。 c c r i c h t o n l l 4 】等提出了一个根据u m l 软件规范进行自动化测试的框架。它 使用x m i 技术读出u m l 的各种框图,根据一定的测试策略来产生测试数据。 近年来,人们开始尝试将人工智能技术运用于软件测试中,并取得了初步的 成果。软件测试的特点决定可以将人工智能技术应用于软件测试领域。 d b e m d t 等【1 5 l 用遗传算法生成测试用例,把遗传算法作为测试过程的一部 2 上海师范大学硕士学位论文绪论 分提高了测试数据的生成能力。 傅博【1 6 1 提出了一种基于模拟退火遗传算法的测试数据自动生成算法,该算法 针对测试数据自动生成的特点将遗传算法和模拟退火有机结合,充分发挥遗传算 法的全局搜索和模拟退火的局部搜索优势。 h l i 等【1 7 】提了一种反蚁群智能算法,通过一组蚂蚁在u m l 活动图中进行 搜索,自动生成测试场景。算法的不足是仅能对基本的分叉汇合结构进行处理, 其适用范围十分有限,同时智能算法的效率不高。 d x u 等【1 8 l 提出了几种分叉汇合对原子结构,运用自适应细菌的智能方法 生成测试场景,提高了搜索效率并扩大了算法的适用范围。缺点是分叉汇合原子 结构需要识别,并且不能处理分叉汇合结构内的循环以及深度嵌套情况,处理活 动图的能力有限。 d x u 等【1 9 1 对u m l 活动图中的分又汇合对结构进行了深入的分析和研究, 针对各个分类原子结构分别提出了系统的形式化的算法,虽然未在人工智能上进 行更进一步的探索,但扩大了基于u m l 活动图测试用例自动生成算法的适用范 围。然而,算法仍然存在识别活动图能有限和需要识别分叉汇合原子结构等问题。 为克服传统手工生成测试线程方法的缺陷,文献【1 7 】【1 8 】提出了基于u m l 活 动图测试场景自动生成智能化方法,其中文献 1 7 】首先提出了反蚁群算法( 具体 讨论请参阅本文4 1 节) ,但上述智能化方法在处理效率和活动图的适用性上存 在很大的局限性。主要表现在以下几点: 1 ) 文献 1 7 】中蚂蚁是拥有有限能量的,而且开始派发的蚂蚁数量m 无法精 确确定,因此极大地降低了算法的灵活性和效率,更为重要的是无法从理论上保 证测试场景的完全生成; 2 ) 文献【1 7 】处理分叉汇合对结构时只包含了在分叉和汇合之间的通过浮桥 连接的执行路径,完全可能遗漏一些测试场景,算法的适用性受到了很大的限制; 3 ) 文献 1 8 】中提出了分叉汇合对原子结构,虽然扩大了活动图生成测试场景 的适用范围,但当原子结构稍微有点变化时,算法就可能无法识别,这无疑也极 大地限制了算法的适用性。 显然基于u m l 活动图生成测试场景的智能化方法能否成功并得以推广的关 键在于以下二个方面: 1 ) 提高智能算法的效率; 2 ) 扩大智能算法的适用范围。 。本文正是沿着上述的思路和方向,提出了改进的反蚁群智能算法,以提高算 法效率和扩大算法适用范围为前提,实现测试场景生成的自动化。 3 绪论上海师范大学硕士学位论文 1 3 课题来源 本课题来源于国家自然科学基金资助项目“软件参数配对覆盖测试集生成的 若干问题研究”( 基金编号:6 0 6 7 3 0 6 7 ) 、上海华腾软件系统有限公司:“上海地 铁6 号线a f c 系统软件测试与实现。 1 4 论文的主要工作及创新点 本文在研究了有关测试场景自动生成和智能算法的基础上,对活动图中表示 并发线程的分叉汇合对结构进行了研究,并分析了反蚁群算法的不足,提出了改 进的反蚁群算法。本文的主要研究内容如下: ( 1 ) 研究了u m l 活动图中表示并发线程的分叉汇合对使用的各种情况并对 其进行了总结和分类,研究了表示并发线程的配对的分叉汇合对结构生成此结构 生成完全测试场景的机制。规范了分叉汇合对的命名规范,克服了基于u m l 活 动图测试场景自动生成的难点,即分叉汇合对的测试场景的自动生成。 ( 2 ) 提出并设计了改进的反蚁群算法,算法的改进之处主要表现在以下几点: 1 ) 取消了对蚂蚁的能量限制,新增了蚂蚁的循环死亡方式: 2 ) 给每个蚂蚁随带一个数据结构:记忆体,以便于建立细线程树、条件树 以及数据对象树; 3 ) 新增系统信息体,利用递归算法对活动图中出现的分叉汇合嵌套结构进 行了递归处理; 4 ) 增加系统循环体,对同一嵌套层面的活动图搜索结束后,遍历系统循环 体,将系统循环体中的各个循环结构信息添加到细线程树;根据记忆体的信息 分析蚂蚁的循环状态,存储循环结构信息; ( 3 ) 建立了基于活动图的测试场景自动生成的整个流程,构建并实现了基于 u m l 活动图测试场景自动生成的智能系统框架,应用于上海轨道交通a f c 测试 项目中。 本文的创新点如下: 1 ) 本文规范了分叉汇合结构的命名规则,增加了系统信息体这一数据结构, 利用递归方法处理了活动图中分叉汇合对的多重嵌套结构;对于分叉汇合对内每 条路径上出现的分支合并结构或循环结构等复杂情况也进行了处理,提高了智能 算法处理活动图的能力,从而生成充分的测试场景,提高了测试充分性。 2 ) 增加了系统循环体并改进了蚂蚁路经不同控制流时信息素的产生方式, 在二次循环的前提条件下,能够有效处理循环嵌套复杂结构,扩大了改进的反蚁 群智能算法的应用范围。 4 上海师范大学硕士学位论文绪论 3 ) 研究了分叉汇合对结构的测试场景生成机理,指出了由分叉汇合对原子 结构生成测试场景的局限性,并提出了相应的解决策略。 4 ) 取消了确定蚂蚁能量和派发蚂蚁数量的限制,增加了蚂蚁记忆体,极大 地提高了改进的反蚁群智能算法的效率和灵活性。 1 5 论文章节安排 本文以基于u m l 活动图的测试场景的自动化生成为主线,分析了m l 活动 图元素的语义描述,研究了各种图形元素的使用情况并进行了分类和描述。针对 u m l 活动图中出现的分叉汇合对的嵌套结构,循环结构和分支合并结构,提出 了改进的反蚁群算法,该算法可得到上述结构的测试场景。设计并实现了改进的 反蚁群算法,结合“上海地铁6 号线a f c 系统软件测试与实现”中的实例给出 了算法处理的过程。 第一章绪论。介绍了研究背景、国内外研究现状及问题的提出、课题来源、 主要工作及创新和论文结构。 第二章基于u m l 活动图的可测性分析。简述u m l 相关技术,研究了u m l 模型在测试中的优势,并详细分析了u m l 活动图可测性并给出了相应的解决策 略。 第三章基于u m l 活动图的测试场景分析与生成。研究了基于u m l 活动图 模型的测试场景自动生成中重要的理论和方法一一细线程方法。研究了分叉汇 合对的测试场景生成的机理,总结了分叉汇合的各种使用情况,对嵌套分叉汇合 对进行了命名规范。 第四章改进的反蚁群智能算法。针对反蚁群算法的各种缺陷,设计了改进 的反蚁群算法,包括蚂蚁的行为特征,算法逻辑以及重要的相关数据结构,并给 出了细线程建立过程中的细节。改进的反蚁群智能算法实现从u m l 活动图自动 生成以细一线程表示的测试场景。 第五章实例分析。构建了实验系统的系统框架,将u m l 活动图转换为x m l 文档,并用n e t 的x m l 编写了应用程序。针对上海轨道交通六号线的测试项 目( a f c ) 中的活动图,给出了基于u m l 活动图的测试场景自动生成的智能算 法的实验过程和验证数据。 第六章总结与展望。总结本文的研究成果和今后需进一步研究的工作。 上海师范大学硕士学位论文 基于u m l 活动图的可测性分析 第二章基于u m l 活动图的可测性分析 2 1 u m l 相关技术 堕圊 箸奄篙叵囝囤囤 lr u r 撕m ei ll n s t a n c e f o ri iu s o l m o d e i ii 7 基于u m l 活动图的可测性分析上海师范大学硕士学位论文 表达模型的机制包。另外,为了精确地表示模型的语义,设计了构造型、标记值 和约束,可以准确描述语义。 模型( u s e rm o d e li 、i i 、i i i ) 定义了特定信息域描述语言的模型,是元模型 的实例。模型规范对象的属性、操作和关联、聚集和通信,确保用户对象层的语 义描述正确。 2 1 2u m l 表示 u m l 提供了从不同的角度去观察和展示系统各种特征的标准方法。总体来 说,u m l 由视图、模型元素、通用机制三部分构成,其组成结构如图2 2 所示。 视图是表达系统的某一方面特征的u m l 建模元素的子集,它是由一个或者 多个图组成的对系统某个角度的抽象。u m l 中的视图主要包括用例视图、逻辑 视图、组件视图、部署视图和并发试图。逻辑视图描述类、对象和它们之间的关 系,分为类图和对象图;并发视图描述对象之间的协作,主要包括状态图、顺序 图、协作图和活动图进行表示;组件视图用来显示代码组件的组织方式;部署视 图用来表示系统的物理构架。 图2 - 2u m l 的组成结构图 f i g 2 - 2 u m l c o m p o n e n ts t r u c t u r es k e t c h 2 2 u m l 模型在软件测试中的优势 基于模型的软件测试能够提高测试自动化水平。当代的软件工程提倡增量和 迭代的开发过程,使用面向对象开发技术,保证了软件开发质量并提高了软件开 8 上海师范大学硕士学位论文 基于u m l 活动图的可测性分析 发速度。面向对象软件系统的特点是模型化,系统中的模型包含了大量能够用于 软件测试的信息,因此基于模型的软件测试可以把软件测试工作提前到开发过程 早期并提高测试自动化水平。人们对软件质量的重视程度越来越高,尤其当模型 成为设计产品和规范的方法时,基于模型的软件测试势必会成为测试的趋势。 u m l 不仅是软件开发的重要工具,而且u m l 模型中包含了大量的信息, 从而可以指导测试。在软件测试中u m l 模型具有如下优势: 1 ) 形式化:u m l 模型具有严格的语义,提供了对象结构和行为的形式化表 示方法,为测试信息的提取和测试自动化提供了物质条件。 2 ) 通用性:u m l 是标准的建模语言,目前己被软件开发界广泛采用。它具 有广泛的适用性,支持从软件需求分析到设计实现部署的各阶段。 3 ) 强大的管理能力:u m l 模型提供不同层次上的视图和包机制,具有强大 的管理能力,解决了模型维护和管理的问题,在一定程度上通过分层等方法解决 了状态空间爆炸的问题。 4 ) 强大的描述能力:u m l 具有强大的描述能力。u m l 模型集众家之长,包 括一系列视图和模型,从不同的层次和角度描述了软件系统的行为、结构以及软 件的使用。 5 ) 可迭代性:在设计阶段就可以开始测试活动( 测试大纲、测试计划的制定 与测试用例的设计等) ,随着设计的细化不断来细化生成的测试制品。众所周知, 越早开始测试越好。 6 ) 可重用性:从不同的抽象层次u m l 模型对系统各方面的相关信息进行建 模,这些模型可以用于软件开发阶段,也可以用于与测试阶段。 2 2 1 模型的可测试性定义 模型可测试性是设计和实现算法用模型中给出的信息来产生测试用例的难 易程度。可测试的模型不仅支持自动生成测试用例又支持手工生成测试用例。可 测试的模型满足以下要求: 1 ) 它描述要测试的所有功能特性,它应该完整而准确地反映被测系统。 2 ) 它保留被测系统中有助于发现错误和验证系统一致性的关键细节。 3 ) 它是对细节的抽象。 4 ) 对状态模型来说,它表示所有的状态、事件和动作,并对各状态进行了 明确定义。 制定模型的过程没有考虑模型的可测性,有高度的灵活性,模型中可能存在 二义性、不一致和不完整性等,因此开发者使用的方式在一定程度上决定了模型 的可测试性。 9 基于u m l 活动图的可测性分析 上海师范大学硕士学位论文 2 2 2u m l 活动图可测性分析 u m l 活动图的理论和技术思想主要来源于s d l 状态建模技术、j i mo d e u 的事件图和p e t r i 网技术,这些理论和技术主要是用来描述工作流和并行过程的 行为1 4 4 1 。u m l 活动图模型可以描述系统工作流程及并行活动,是描述系统业务 过程的重要工具。它不仅可以用于记录单个操作或方法的逻辑,而且可以记录单 个用例或单个业务流程的逻辑。u m l 活动图模型是理解系统行为的重要工具, 是系统功能的可视化蓝图。u m l 活动图模型的作用体现在以下几个方面: 1 ) 描述系统功能。用例是表示和捕获用户需求的关键技术,系统执行的基 本流程、异常流程、以及其它可能的流程是系统处理客户请求时的主要和次要执 行场景。为了细化用例并将这些场景准确的表示出来,可以使用标准的用例模板 但是在用例场景复杂的情况下这种方式难于理解,测试自动化也难以实现。u m l 活动图模型能够解决用例描述的不足的问题并可以很清晰和方便地描述这些流 程。 2 ) 描述用例问存在的关系。这种活动图是活动结点为用例的概念层活动图, 可以描述用例间存在约束的关系。活动图是对用例图的扩充,对用例图模型而言 至关重要。 3 ) 描述复杂的业务过程。u m l 活动图模型可以描述并行过程,它可以非常 容易地对业务过程和工作流进行表示。 4 ) u m l 活动图模型还可以用来描述非常复杂的计算型算法。 综上,u m l 活动图是表示、构建、测试和维护系统的重要模型。u m l 活动 描述系统工作流程和并行活动的能力是它成为系统测试的重要依据。另外,u m l 活动图模型从系统级、子系统级到类级,针对系统的不同层次进行建模。u m l 活动图模型包含了各种信息,它可以用于指导不同层次的测试,包括系统级的功 能测试、集成测试以及对象类的单元测试。 在可测试性方面,u m l 活动图模型中存在着非常复杂的逻辑结构和并发特 征,对这些结构的处理加大了测试自动化的难度。本文给出如下方法以扩充其可 测试性: 1 ) 对u m l 活动图中模型元素,尤其是表示并发线程的分叉汇合对结构进行 了严格的语义描述,并对分叉汇合对进行了命名规范。 2 ) 将u m l 活动图转换为x m l 文档,识别出活动图模型中的对象流、并发 模块、循环,并进行相应的处理。 从以上的研究和分析可知,对于用例而言u m l 活动图模型具有不可替代的 作用,u m l 活动图模型是表示和构建系统流程和功能行为的重要方法。为了尽 早发现软件设计中存在的缺陷、进行自动化测试,基于u m l 活动图模型的测试 1 0 上海师范大学硕士学位论文 基于u m l 活动图的可测性分析 方法研究具有非常重要的意义。 2 3 本章小结 本章首先简述了u m l 的相关技术,研究了u m l 模型在测试中的优势,详 细给出了u m l 活动图的可测性,针对活动图可测性存在的缺陷提出了解决策略。 上海师范大学硕士学位论文 基于u m l 活动图的测试场景分析与生成 第三章基于u m l 活动图的测试场景分析 与生成 3 1 场景测试法及其扩展 场景代表了一个软件系统中的操作执行。基于场景的测试技术需要解决两个 重要的问题,即测试场景的生成和测试场景的优化。 3 1 1 场景测试法 场景测试法是基于i b m 公司提出的r u p ( r a t i o n a lu n i f i e dp r o c e s s ) 的测试 用例生成方法。该方法从系统分析的结果一一用例( u s ec a s e ) 出发,通过对每 个用例场景的分析,逐步实现测试用例的构造。 用例场景要通过描述用例的路径来确定,这个过程要从用例开始到结束遍历 其中所有基本流和备选流。图3 1 中经过用例的每条路径都反映了基本流和备选 流,都用箭头来表示。 开始甩饲 图3 - 1 用例的事件流 f i g 3 - 1 u s ec a s ee v e n tf l o w 基本流是经过用例的最简单的路径。备选流是在满足某个特定条件下执行的 支流。备选流可能会重新加入基本流中( 备选流l 和3 ) ,还可能起源于另一个 备选流( 备选流2 ) ,或者终止用例不再重新加入某个流( 备选流2 和4 ) 。从基 本流和备选流结合起来,可以确定不同的用例场景,如表3 1 所示。 基于u m l 活动图的测试场景分析与生成上海师范大学硕士学位论文 t a b l e3 1c a s es c e n a r i o 表3 1 用例场景 场景1基本流 场景2基本流备选流l 场景3基本流备选流l备选流2 场景4基本流 备选流3 场景5基本流备选流3备选流i 场景6基本流备选流3备选流l备选流2 场景7基本流各选流4 场景8基本流各选流3各选流4 3 1 2 基于活动图的场景测试方法 基于活动图的测试是在场景测试法的基础上进行扩展的方法。该方法主要通 过活动图对用例的基本流和备选流进行描述,从活动图中的各个步骤中找到输入 变量,然后通过变量组合生成不同测试场景,最后给变量赋值生成最终的测试用 例。 在活动图中,基本流是从上到下直线下来的活动,而备选流经常是循环的返 回或者跳过基本流的活动。从理论上来说,循环的备选流,产生的场景数将是无 限多个。般有效的方法是,做出如下假设:程序执行循环实例一次或者两次, 程序就执行了整个循环实例。一个备选流可以对应一个场景,但是组合备选流可 以对应多个场景,因此用例场景远多于备选流的个数。 3 1 3 细线程( t h i n t h r e a d s ) 方法 细线程就是不同系统类的一条完整逻辑执行序列。与u m l 中的用例( u s e c a s e ) 类似,细一线程可以描述系统场景,但细线程比用例含有更多的信息,细 线程可以由系统活动图( s y s t e ml e v e la c t i v i t yd i a g r a m s ) 产生。 细线程组( t h i n t h r e a dg r o u p ) 是具有某些共同特征的一组细线程。这些 细线程组,由于共享某些共同特征,可进一步组成更高级别的细一线程组。如此 不断递归,细一线程和细线程组可以组成树型结构,最终形成细线程树 ( t h i n t h r e a dt r e e ) 。 通常情况下,与每个细线程或细。线程组相关的条件可以看成它们的激活条 件,这些条件也可以组成一棵条件树( c o n d i t i o nt r e e ) 。如果附于细线程上的 条件满足,细线程才被激活了。所谓激活,就是当相应节点条件满足时,细,线 1 4 上海师范大学硕士学位论文基于u m l 活动图的测试场景分析与生成 程逻辑才能正常执行至下一节点。 切l 活动图还包含数据对象,数据对象也可以组成一棵数据对象树( d a m o b j e c tt r e e ) 。数据对象可以作为活动的输入输出,可以被更新,它们可以影响 和被相关的条件所影响。数据对象树有助于确定细线程之间的非常重要的联 系一一内容相关性( c o n t e n t - d e p e n d e n tc o u p l i n g ) ,在软件测试中,内容相关性 是一个重要的研究方向。 一个细线程由一系列顺序执行的子场景,配以条件树、数据对象树中的一 个或者多个条件、数据对象所组成。细线程树中各个细线程共享了相关的子场 景、条件和数据对象。组成树型结构的细线程,可用来进行系统关联分析、风险 分析、可跟踪性分析、覆盖分析、完整和一致性检查以及测试场景和测试用例的 生成、优化。 3 2u m l 活动图元素语义描述 活动图是u m l 用于对系统的动态行为建模的一种常用表示形式,它描述活 动的顺序,展现从一个活动到另一个活动的控制流,是内部处理驱动的流程。活 动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也 可以是软件系统某个类对象的一个操作,活动在状态机中表现为由一系列动作组 成的非原子的执行过程。 活动图描述系统使用的活动、判定点和分支,看起来和流程图表示形式相似, 流程图所能表示的内容,大多数情况下也可以作用活动图表示,但两者是有严格 区别的,活动图与流程图的区别如下: 1 ) 流程图着重描述处理过程,它的主要控制结构是顺利、分支和循环,各 个处理过程之间有严格的顺利和时间关系;而活动图描述的是对象活动的顺序关 系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。 2 ) 活动图能够表示并发活动的情形,而流程图不能。 3 ) 活动图是面向对象的,而流程图是面向过程的。 u m l 的活动图中包含的图形元素有动作状态、活动状态、动作流、分支与 合并、分叉与汇合、泳道和对象流等。 ( 1 ) 动作状态。动作状态是指原子的不可中断的执行,并在此动作完成后通 过转换转向另一个状态。动作状态是瞬时的行为,它所占的处理时间极短,有时 甚至可以忽略。动作状态和状态图中的状态不同,它不能有入口动作和出口动作, 更不能有内部转移。 ( 2 ) 活动状态。活动状态用于表达状态机中非原子的运行,活动状态的特点 如下: 基于u m l 话动图的测试场景分析与生成上海师范大学硕士学位论文 1 ) 活动状态可以分解成其他子活动或者动作状态,可以中断。 2 ) 活动状态的内部活动可以用另一个活动图来表示。 3 1 和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部 转移。 4 ) 动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作, 那么它就是一个动作状态。 虽然活动状态与动作状态有诸多不同,但活动图中活动状态和动作状态的表 示方法相同。 ( 3 ) 动作流。所有动作状态之间的转换流称之为动作流,活动图的转换用带 箭头的直线表示,箭头的方向指向转入的方向。动作流一般会自动进行控制转换, 直到遇到分支或者分叉。 ( 4 ) 分支( b r a n c h ) 和合并( m e r g e ) 分支在软件系统流程中很常见,它一般用于表示对象类所具有的条件行为。 分支包括一个入转换和两个或者两个以上带条件的出转换,出转换的条件应当是 互斥的。 合并包括两个或者两个以上入转换和一个出转换。合并代表的控制流不需要 同步发生,当单个控制流达到合并点后,可以继续往下进行。在活动图中分支与 合并用空心小菱形表示。 分支和合并的具体应用多种多样,使用情况的不同具体表现在以下几点: 1 ) 分支和合并是否配对出现。 2 ) 分支的带条件的出转换是否仅为两个。 3 ) 合并的入转换是否带条件。 ( 5 ) 分叉( f o r k ) 与汇合( j o i n ) 。u m l 中引入分叉与汇合,实现并发控制流 的建模,分叉和汇合都使用加粗的水平线段表示。对象在运行时可能会存在两个 或者多个并发运行的控制流,从宏观而言,各并发线程的控制流之间并无时间先 后上的制约。 分叉用来描述并发线程,将动作流分为两个或者多个并发运行的控制流。每 个分叉可以有一个输入转换和两个或者多个输出转换,每个并发输出独立执行, 互不干扰。 汇合代表两个或者多个并发控制流同步发生,当所有的控制流都达到汇合点 后,控制才能继续往下进行,每个汇合可以有两个或者多个输入转换和一个输出 转换。汇合用于同步这些并发分支,以达到共同完成一项事务的目的。 在实际应用中,由于表示并发线程的分叉汇合结构十分复杂,给基于u m l 活动图的测试场景用例的自动生成带来了极大的困难,这些复杂性主要表现在 以下几个方面: 1 6 上海师范大学硕士学位论文基于u m l 活动图的测试场景分析与生成 1 ) 只有分叉,没有汇合 图3 - 2 有分叉没汇合 f i g 3 - 2 f 0 r kw i t h o u tj o i n 如图3 2 所示,活动图中仅有分叉没有汇合。图中分叉结点引出三个并行的 活动状态c 、d 、e ,这三个活动状态之间无先后制约,不需要同步执行,只要 有一个到达f 状态的转换发生,f 活动状态就被激活。 2 ) 汇合与分叉数目不等 如图3 3 的活动图中,有一个分叉和两个汇合,分叉汇合不配对。由于系统 行为的复杂性,导致并行工作流的交互使用,从而形成了汇合和分叉数目不等的 状况。 图3 - 3 分叉汇合不配对 f i g 3 - 3 f o r km i s m a t c hj o i n 3 ) 分叉汇合数目相同,各线程动作流之间出现交叉 图3 - 4 由于分叉汇合表示的是一种宏观上的并发关系,由于活动图表示的系 统行为的复杂性,会出现各并发线程动作流之间出现交叉的现象,图3 - 4 中1 和3 之间插入了分叉2 ,2 和4 之间插入了汇合3 ,这种分叉汇合之间的交叉使 1 7 基于u m l 活动图的测试场景分析与生成 上海师范大学硕士学位论文 用情况相对简单,在实际的运用中复杂性会更大。 图3 - 4 分叉汇合交错 f i g 3 - 4 f o r kj o i ns t a g g e r 以上三种情况在实际应用中会出现成千上万中表现方式,用人工的方式生成 测试场景都是可能的,但工作量大、成本高,人为的错误也是不可避免的。用计 算机自动处理可以减低成本,减少人的失误,但目前很难用统一的自动化识别方 式进行识别和处理,需要进一步的研究。 4 ) 分叉汇合配对 如图3 5 ( a ) 所示,分叉汇合配对嵌套使用,没有出现交叉现象。这种情况比 较规范,可以用统一的方式进行识别和处理。 图3 - 5 ( a ) 分叉汇合多重嵌套结构 f i g 3 - 5 ( a ) m u t i n e s t e df o r kj o i np a i r 图3 - 5 ( a ) 是表示并发线程动作流的分叉汇合结构使用最规范的情况,为自动 化处理提供了可能性。存在如下具体的使用;并发线程控制中分叉汇合对深度嵌 套、循环叠加和嵌套、分支合并叠加和嵌套等复杂情况,如图3 - 5 ( a ) ,( b ) ,( c ) 所示。 1 8 上海师范大学硕士学位论文基于u m l 活动图的测试场景分析与生成 图3 - s ( b ) 分叉汇合对中一条分叉为循环嵌套结构 f i g 3 - 5 ( b ) n e s t e dl o o pi no n et h r e a do ff o r kj o i np a i r 图3 - 5 ( c ) 分叉汇合对中一条分叉为嵌套分支合并结构 f i g 3 - 5 ( c ) n e s t e db r a n c hm e r g ei no n et h r e a do ff o r kj o i np a i r 。文献0 8 0 9 提出了各种分叉汇合结构的原子模型,这些原子模型的代表性 有限,不能处理4 ) 中提到多种使用情况,限制了算法处理u m l 活动图的能力。 本文研究和分析了该种情况的多种使用方式,增加蚂蚁记忆体、系统信息体 和系统循环体等结构,并利用递归算法解决了上述使用情况的解析。本文运用智 能算法对分叉汇合配对结构的处理,分别研究各线程动作流,并列生成各线程的 细线程树、条件树、数据对象,然后对不同线程上的场景在保证先后次序的条 件下进行排列组合。具体的事例及相关处理请参见3 4 节一分叉汇合对内场景分 析,实例分

温馨提示

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

评论

0/150

提交评论