




已阅读5页,还剩71页未读, 继续免费阅读
(计算机应用技术专业论文)基于irup的软件测试方法的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着面向对象软件开发方法的发展,特别是基于r u p 的软件开发过程的提 出,给软件的设计和开发带来了极大的便利。与传统软件开发过程相比,软件 的开发过程发生了相当大的变化。 同时,r u p 的软件测试过程与传统的软件测试过程也存在着很多的不同之 处。基于r u p 的软件测试工作强调的是尽早的、持续的和自动化的测试。基于 软件的迭代开发,测试也应该是迭代的进行,并且每一轮迭代中,必须要通过 计划测试、设计测试、实施测试、执行测试、评估测试几个阶段来完成。每一 轮迭代退出的条件必须是迭代结束时必须产生一个满足本次迭代需求的可运行 的发布版本。 计划测试阶段需要制定测试计划、整理测试需求:设计测试阶段要设计测试 用例和测试过程,要保证测试用例完全覆盖测试需求:实现测试阶段要根据测试 用例实现具体的自动化脚本或者手工的操作步骤:执行测试阶段则通过自动化 测试工具或人工来执行那些自动化或手工脚本:最后的评估阶段则要对软件的 质量和测试工作自身的质量做出一个客观的评价。 本文介绍了r u p 的软件工程过程和i r u p 测试理论。然后详细介绍了在项目 组中我们是怎样来测试基于i r u p 开发的一个企业级文档管理系统,以及如何使 用i r u p 集成的测试工具r o b o t 和t e s tm a n a g e r 来做自动化测试脚本的开发和 管理。 本文研究的进一步工作是如何将i r u p 更灵活的运用到项目中以及形成基于 i r u p 过程的整个软件测试过程框架。 关键词:软件测试,r u p ,测试过程,自动化 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fo b j e c t - o r i e n t e dd e v e l o p i n gt e c h n o l o g y , e s p e c i a l l yt h e p r e s e n t a t i o no fs o f t w a r ed e v e l o p m e n tp r o c e s sb a s e do nr u p , h a sb r o u g h tt h eg r e a t f a c i f i t y f o rd e s i g n i n ga n dd e v e l o p i n go ft h es o f t w a r e c o m p a r e dw i t ht r a d i t i o n a l s o f t w a r ed e v e l o p m e n tp r o c e s s ,t h ed e v e l o p m e n tp r o c e s so ft h es o f t w a r eh a s c h a n g e d q u i t eg r e a t l y a tt h es a m et i m e t h e r ea r cm u c hd i f f e r e n c eb e t w e e nt h er u ps o f t w a r et e s t i n g p r o c e s sa n dt h et r a d i t i o n a ls o f t w a r et e s t i n gp r o c e s s t h es o f t w a r et e s t i n gb a s e do n r u p e m p h a s i z ee a r l y 、c o n t i n u o u sa n da u t o m a t i ct e s t i n g b a s e do nt h ei t e r a t i o no f s o f t w a r ed e v e l o p m e n t ,t h et e s t i n gs h o u l db ei t e r a t i v ea n di ne v e r yi t e r a t i o ni tm u s tb e f i n i s h e dt h r o u g ht h es t a g e so fp l a n n i n gt e s t 、d e s i g n i n gt e s t 、i m p l e m e n t i n gt e s t 、 e x e c u t i n gt e s ta n de v a l u a t i n gt e s t t h ec o n d i t i o no fe x i t i n gf r o ma ni t e r a t i o ni sa n e x e r c i s a b l eb u i l dc a nb ep u b l i s h e da tt h ee n d i nt h ep l a n n i n gt e s ts t a g e ,w en e e dt om a k et e s tp l a na n dt e s tr e q u i r e m e n t s i nt h e d e s i g n i n gt e s ts t a g e ,w en e e dt od e s i g nt e s tc a s e sa n dt e s tp r o c e s s ,a n dn e e dt o g u a r a n t e et h a t t h et e s tc a s e sh a v et oc o v e ra l lt h et e s t r e q u i r e m e n t s i n t h e i m p l e m e n t i n gt e s ts t a g e ,w en e e dt oi m p l e m e n tt h ec o n c r e t ea u t o m a t e ds c r i p t so rt h e m a n u a lo p e r a t i n gp r o c e d u r e sa c c o r d i n gt ot h et e s tc a s e s i nt h ee x e c u t i n gt e s ts t a g e , w en e e dt oe x e c u t et h ea u t o m a t e da n dm a n u a lt e s ts c r i p t sb ya u t o m a t e dt e s tt o o l so r b yh a n d i nt h el a s te v a l u a t i n gt e s ts t a g e ,w en e e dt om a k ea no b j e c t i v ea p p r a i s a lo n t h es o f t w a r eq u a l i t ya n dt h eq u a l i t yo ft h et e s t j o b i nt h i sp a p e r , i ti n t r o d u c e st h es o f t w a r ep r o j e c tp r o c e s so fr u pa n dt h et e s t i n g p r i n c i p l eo fi r u p , t h e n i tg i v ea ut h ed e t a i l so fh o wt ot e s t i n ga ne n t e r p r i s e d o c u m e n tm a n a g e m e n ts y s t e mw h i c hd e v e l o p e db a s e do ni r u pa n dh o wt o d e v e l o p i n ga n dm a n a g i n ga u t o m a t i ct e s ts c r i p t su s er a t i o n a lr o b o ta n dt e s tm a n a g e r w h i c h i n t e g r a t e dw i t hi r u e t h ef u r t h e rs t u d yo ft h i sp a p e ri sh o wt ou s ei r u pm o r ef l e x i b l ei nt h ep r o j e c t a n ds e tu pt h ew h o l ef r a m eo fs o f t w a r et e s tp r o c e s sb a s e do nr u p p r o c e s s k e y w o r d s :s o f t w a r et e s t i n g , r a t i o n a lu n i f i e dp r o c e s s ,t e s tp r o c c s s , a u t o m a t i o n 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其它教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 签名:母料日期:4 丝4 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留、送交论文的复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段 保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:鼍翼狮师签名:毕日期:兰2 剑 武汉理工大学硕士学位论文 1 1 课题提出背景 第一章绪论 众所周知,软件开发过程通常被认为是一个困难的过程。从1 9 6 8 年北大西 洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出“软 件危机”( s o f t w a r ec r i s i s ) 这个名词开始,人们就在不断努力探索如何改进 软件开发过程,以产生更好的结果“。 软件危机产生的重要原因之一就是开发过程没有统一的、规范的方法论的 指导。造成忽视软件开发前期的需求分析,文档资料不齐全,忽视人与人之间 的沟通和交流,忽视测试阶段的工作,提交用户的软件产品质量差等等。软件 工程诞生之后,确实缓解了一些软件危机,特别是2 0 世纪9 0 年代由c m u 的s e i 所发布的c m m 很大程度上解决了软件危机。但是c m m 的缺点使得它越来越不适 应当前软件市场需求的快速发展变化。 敏捷软件开发是不同于以往传统软件工程的开发方法,它更注重从实践中 获取和总结对软件开发有益的经验和原则。r u p ( r a t i o n a lu n i f i e dp r o c e s s ) 是 敏捷软件开发方法中的一种,目前已经被很多软件开发团队关注并采用,取得 了很好的效果。 基于传统开发过程的测试存在:项目进度难于控制,项目管理难度加大, 对于项目风险的控制能力较弱和软件项目开发费用超出预算等缺点。那么对于 一个基于r u p 开发的软件,它是怎样解决这些传统测试过程中的问题,它定义 了怎样的的测试理念和过程呢? 测试人员是在它的开发生命周期中如何根据 它所倡导的理念和过程来引入具体的方法对它进行测试,来确保最终质量的 昵? 正是带着这些问题,本文作者非常有幸的参加了i b m 的一个基于i b m r u p ( i r u p ) 的大型企业级文档管理的项目的测试,对i r u p 所定义的测试理念和 过程、有深入的研究和体会,并结合项目的实际情况进行了很好的运用,并与 同事一起对i r u p 所倡导的自动化测试作了很深入研究和实践。 武汉理工大学硕士学位论文 1 2 测试工作概述 此次的测试的产品是i 删的d m ( d o c u m e n tm a n g e r ) ,它是一个部署在i b m 一 系列产品之上的诸如:d b 2 、c o n t e n tm a n g e r 、w e b s p h e r e 、1 1 4 c 的企业级应 用软件。主要用来对企业信息进行管理。可以定义一些工作流和生命周期来管 理这些文档,并可以对存入的文档作一系列的操作,并和众多的产品作了集成。 作为一个大型的企业文档管理软件,对系统性能的要求比较高,同时基于深入 企业业务、业务逻辑复杂的特点,也决定了系统各功能点对数据准确性、操作 准确性有较高的要求。 主要对它系统测试( s y s t e mv e r i f yt e s t i n g ) ,其中包括手动测试( m a n u a l t e s t i n g ) 和自动化测试( a u t o m a t i ct e s t i n g ) 。主要任务包括写测试计划,创 建测试用例,在不同的平台如:a i x ,s a l o r i s ,w i n d o w s 2 0 0 0 ,x p ,2 0 0 3 上并 且使用不同的通信协议:d c o m ,s o a p 执行测试用例,报告d e f e c t ,跟踪d e f e c t 。 最后利用测试工具( r a t i o n a lr o b o t ) 将测试用例自动化以及t e s tm a n g e r 来管理自动测试用例。 1 3 本次测试工作的目标 在这个测试项目中,作者与测试组一起参与t a g 试的全过程。 在项目前期测试团队制订了这样的目标: 1 、基于i r u p 的测试过程理论,引入具体测试方法,以提升项目中测试工 作的整体效果。 2 、根据项目和项目环境、组织的特点,裁减、优化与改造理论中的测试 过程,设计一套适合项目的测试过程和技术。 3 、引入与i r u p 所集成的r a t i o n a lr o b o t 和t e s tm a n a g e r 测试工具,开 发出高效的测试用例,并很好的管理来提高测试效率。 4 、完成每个i t e r a t i o n 的测试任务,确保开发顺利进入下个i t e r a t i o n 时有一个可以发布的b u i l d ,从而,确保整个产品在预期时间发布。 2 武汉理工大学硕士学位论文 1 4 论文的缩构 本文共分六鬻。 第一章零l 言,主要奔绥谦蹶提出豹背最,浏试工俸穰述和测试王佟静嚣标。 第二章r u p 软件工程过程。主要介绍了r u p 作为项目管理过程的知识。 第三章i r u p 测试理论知识。主要介绍了传统的测试过稷中容易出现的问题, 班及l 聪p 懿溅试攥论簸谖。 第四章i r u p 测试过程实践。论述基于i r u p 开发过耩,项目中如何设计适 合项目的测试过稷。包括项目测试计划的编麓,测试用例的创建、执行,d e f e c t 的摄像;l 及质量弼溯。 第五章顼磊巍谤仡开发与管理。详细分缮了基于i r u p 静项目鹃楚如何采 用i r u p 所集成的测试工具来做自动化测试用例的开发与管理。 第六章总结姆展望,包括对成果的总结以及后续王作的展望等内尝。 3 武汉理工大学硕士学位论文 第二章r u p 软件工程过程 软件过程是指一套关于项目的阶段、状态、方法、技术和开发、维护软件 的人员以及相关a r t i f a c t s ( 计划、文档、模型、编码、测试、手册等) 组成。简 单地说,过程描述做什么、怎么做、什么时候做以及为什么要做,描述了一组 以某种顺序完成的活动。过程的结果是一组有关系统的文档模型和其他一些描 述,以及对最初问题的解决方案。因为建模语言需要工具的支持,所以过程也 需要工具的支持。不过,目前支持过程的工具不如支持建模的工具那么广泛。 过程是软件工程的一种结构化的工作和思考方法。过程描述的一个重要部 分是定义如何使用人力、机器、工具和信息等资源的一些规则来完成某个确定 的目标,为用户的问题提供解决方案。 目前比较流行的有三种重要的过程,包括r a t i o n a l 的统一过程、o p e n 过程 和而向对象软件过程( o o s p ) 。统一过程( r u p ) 是由提出u m l 的三位方法学家 b o o c h 、j a c o b s o n 、r u m b a u g h 以r a t i o n a l 的o b j e c t o r y 为核心提出”“。 2 1r u p 简介 r u p ( r a t i o n a lu n i f i e dp r o c e s s ) 是软件工程的过程。它提供了在开发组 织中分派任务和责任的纪律化方法,目标是在可预见的日程和预算前提下,确 保满足最终用户需求的高质量产品。它是i b mr a t i o n a l 公司开发和维护的过 程产品。r u p 的开发团队同顾客、合作伙伴、r a t i o n a l 产品小组及顾问公司共 同协作,确保开发过程持续地更新和提高以反映新的经验和不断演化的实践经 验。它提高了团队生产力,对于所有的关键开发活动,它为每个团队成员提供 了使用准则、模板、工具指导来进行访问的知识基础。而通过对相同知识基础 的理解,无论你是进行需求分析、设计、测试项目管理或配置管理,均能确保 全体成员共享相同的知识、过程和开发软件的视图。能对大部分开发过程提供 自动化的工具支持。它们被用来创建和维护软件开发过程( 可视化建模、编程、 测试等) 的各种各样的产物一特别是模型。另外在每个迭代过程的变更管理和 配置管理相关的文档工作支持方面也是非常有价值的。 r u p 是可配置的过程。没有一个开发过程能适合所有的软件开发。r u p 既适 4 溅汉理工大学硪士学位论文 用小的开发团酞键适合大型搿发组织。r u p 建立简洁和清晰的过程结构为开发 过程家族提供通用性。并且,它可以变更以容纳不同的情况。它还包含了开发 工舆包,为配置逡应特定组织机构的开发过程提供了支持。 r u p 戳遥食予大范围矮睡帮梳擒浆方式箍挺了诲多璇代软 孛嚣发遥程豹最 佳实践。部署这些最佳实践缀验使用r u p 作为指南给开发团队提供了大量 的关键优势。 2 2r u p 蠹备6 个最佳实践的有效部署 r i j p 描述了如何为软件搿发团队有效躲部署经过商她讫验证的软 孛开发方 法。它弱被称必“最佳实黢”不仅霞因为霹戳薅礁建爨纯它秘的徐德,两盈它 们被许多成功的机构普遍的逡用。为使整个团队有效利用最佳实践,r u p 为每个 团队成员提供了必要准则、模板和工具指姆,它主要有以下6 个最佳实践: l 迭我瓣秀发产晶瓣瓣当今静复杂熬软律系统,傻爰连续瓣嚣发方法: 如筲先定义整个问题,设计究整的解决方鬃,编制软件并最终测试产品,是不 可能的。需要种能够通过系列细化,潜干个渐进的反复过程而舷成有效解 决方案豹迭代方法。r u p 支持专注于处理生命周期中每个阶段中最赢风殓熬迭代 器发方法,极大魄减少了项隧豹风陵睦。这代方法逶涎胃验证豹方法来帮助减 少风险一经常憔的、可执行版本使最终用户不断的介入和反馈。因为每个迭代 过程以可执行版本告终,开发团队停留农产生结果上,频繁的状态检查帮助确 绦瑗鋈裁按辩遴符。迭我纯方法霉释镬褥箨求、特色、瑟翟上战貉豫瓣交毽曼 为容易。 2 ) 需求管理r u p 描述了如何提取、组织和文档化需要的功能和限制;跟 踪秘文挡纯援袭方案襄决策;臻获和进纾巍业霉衷交流。过程孛弱铡帮场景豹 傻掰被证唆是拣获功能性需求的卓越方法,并确保由京稻来驱动设计、实现和 软件的测试,使最终系统更能满足最终用户的需要。宙们给开发和发布系统提 供了连续的和研跟踪的线索。 3 ) 基于穆移豹俸系结搀一该过程在会力淤嫠舜发之蓊,关注予翠蘩载舜 发和健壮可执行体系结构的熬线。它描述了如何设计受活的,可容纳修改的, 盥观便于理解的,并且促进有效软件重用的弹性结构。r u p 支持基于构件的软 转努发。拇搏是实毽渍骥功能鹣模块、子蓉统。r u p 提供了镬爱薮豹及瑰有秘终 5 武汉理工大学硕士学位论文 定义体系结构的系统化方法。它们被组装为良好定义的结构,或是特殊的、底 层结构如i n t e r n e t 、c o r b a 和c 伽等的工业级重用构件。 4 ) 可视化软件建模一开发过程显示了对软件如何可视化建模,捕获体系结 构和构件的构架和行为。这允许你隐藏细节和使用图形构件块”来书写代码。 可视化抽象帮助你沟通软件的不同方面,观察各元素如何配合在一起,确保构 件模块一致于代码,保持设计和实现的一致性,促进明确的沟通。r a t i o n a l 软 件公司创建的工业级标准u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 是成功可视化软件 建模的基础。 5 ) 验证软件质量一拙劣的应用程序性能和可靠性是戏剧性展示当今软件 可接受性的特点。从而,质量应该基于可靠性、功能性、应用和系统性能根据 需求来进行验证。r u p 帮助计划、设计、实现、执行和评估这些测试类型。质量 评估被内建于过程、所有的活动,包括全体成员,使用客观的度量和标准,并 且不是事后型的或单独小组进行的分离活动。 6 ) 控制软件的变更一管理变更的能力一确定每个修改是可接受的,能被 跟踪的一在变更不可避免环境中是必须的。开发过程描述了如何控制、跟踪和 监控修改以确保成功的迭代开发。它同时指导如何通过隔离修改和控制整个软 件产物( 例如,模型、代码、文档等) 的修改来为每个开发者建立安全的工作 区。另外,它通过描述如何进行自动化集成和建立管理使小队如同单个单元来 工作m 。 6 武汉理工大学硕士学位论文 2 3r u p 的核心工作流 r u p 中有9 个核心工作流,代表了所有角憩和活动的逻辑分组 凿2 一lr u p 核心工终滚黧 核心工作流分为6 个核心“工程”工作流:商业建模工作流、需求工作流、 分析和设计工作流、实现工作流、测试工作流、分发工作流;3 个核心“支持” 工露滚:配置纛交霆控裁工终溅、璎曩彗理王终渡、拜j 爨王终流。 尽管6 个核心工程工作流能使入想起传统瀑布流程巾的几个阶段,但应注 意迭代过程中的阶段是不同的,这些工作流在整个生命期中一次又一次被访问。 9 个核心工作流在项目中豹实酝完整豹工作淀中轮渡被使髑,在每一次遮代中以 不同豹重点和强魔蓬复。 1 ) 商业建模( b u s i n e s sm o d e l i n g ) 。决大多数商业工程化的主要问题,是软 件工程人员和商蛾正程人员之间不能正确地交流。这导数了商业工程的产出没 畜嚣为软辞嚣发输入瑟委确懿簸嫠震,爱之芬然。r u p 锋瓣该壤嚣菇掰今群俸 提供了相同的语裔和过程,同时显示了如何在商业和软件模型中创建和保持直 接的可跟踪性。 在亵业建模审,使爱囊毙臻铡来文档豫鼹妲过程,觚嚣确保了缎织孛掰有 7 武汉理工大学硕士学位论文 支持商业过程人员达到共识。商业用例被分析以理解商业过程如何被业务支持, 而这些在商业对象模型中被核实。许多项目可能不进行商业建模。 2 ) 需求( r e q u i r e m e n t s ) 。需求工作流的目标是描述系统应做“什么”,并 允许开发人员和用户就该描述达成共识。为了达到该目标,进行提取、组织、 文档化需要的功能和约束:跟踪、为折衷方案及决定形成文档。 蓝图被创建,需求被提取,代表用户和其他可能与开发系统交互的其它系 统的a c t o r 被指明。u s ec a s e 被识别,表示系统的行为。因为u s ec a s e 根据 a c t o r 的要求开发,系统与用户之间的联系更紧密。系统展示了用于再生系统的 用例模型。 图2 - 2 用例模型 样例用例模型,每一个用例被仔细地描述。用例描述显示了系统如何与 a c t o r 交互及系统的行为,非功能性的需求在补充说明中体现。u s ec a s e 起 到贯穿整个系统的开发周期线索的作用。相同的用例模型在需求捕获阶段,分 析设计阶段和测试阶段中使用。 3 ) 分析和设计( a n a l y s i s d e s i g n ) 。分析设计工作流的目标是显示系统“如 何”在实现阶段被“实现”的。你需要一个如下系统:在特定的实现环境中完 成用例描述中指定的任务和功能;满足了所有的需求;健壮的被建造( 如果功 能需求发生变化,易于更改) ,分析设计结果是一个设计模型和可选的分析模型。 设计模型是源代码的抽象;即设计模型充当源代码如何被组建和编制的“蓝 图”。设计模型由设计类和一些描述组成。设计类被组织成具有良好接口的 设计包和设计子系统,而描述则体现了类的对象如何协同工作实现用例的功能。 下图是上例u s e - c a s e 模型的设计模型示例的一个部分。 8 武汉理工大学硕士学位论文 图2 - 3u s e - c a s e 模型的设计模型 4 ) 实现( i m p l e m e n t a t i o n ) 。实现工作流的目的包括以层次化的子系统形式 定义代码的组织结构以层次化的实施子系统的形式;实现类和对象以构件 的形式( 源文件、二进制文件、可执行文件等) ;将开发出的构件作为单元进行 测试;对由单个实现者( 或小组) 产生的结构集成为可执行的系统。系统通过 完成构件而实现。r u p 描绘了如何重用现有的组件,或实现经过良好责任定义的 新构件,使系统更易于使用,提高了系统的可重用性。 5 ) 测试( t e s t ) 。测试的目的是:验证对象间的交互作用:验证软件构件的 正确集成;验证所有需求被正确的实现:识别并确保缺陷在软件部署之前提出 并处理。r u p 提出了迭代的方法,意味着在整个项目中进行测试,从而允许尽可 能早的发现缺陷,从根本上降低了修改缺陷的成本。测试类似于三维模型,分 别从可靠性、功能性、应用和系统性能来进行。流程从每个维度描述了如何经 历测试生命周期的几个阶段,计划、设计、实现、执行和审核。另外,描述了 何时及如何引入测试自动化的策略。使用迭代的方法,测试自动化是非常重要 的,它允许在每次迭代结束及为每个新产品进行回归测试。 6 ) 发布( d e p l o y m e n t ) 。发布工作流的目标是成功地生成版本,将软件分发 给最终用户。它包括了范围广泛的活动。包括;生成软件本身外的产品;软件 打包;安装软件;给用户提供帮助。许多情况下,还包括如下的活动:计划和 进行b e t a 版测试;移植现有的软件或数据;正式验收。 尽管发布工作流主要被集中在交付阶段,但早期阶段需要加入为创建阶段 后期的发布做准备的许多活动。 9 武汉理工大学硕士学位论文 r u p 中的发布和环境工作较其它工作流包含了较少的内容。 7 ) 配置和变更管理( c o n f i g u r a t i o n c h a n g em a n a g e m e n t ) 。本工作流中, 描绘了如何在多个成员组成的项目中控制大量的产出物。控制有助于避免混乱, 确保不会由以下的问题而造成产品的冲突。 同步更新一当两个或两个以上的角色各自工作在同一产物上时,最后一个 修改者会破坏前者的工作。 通知不达当被若干开发者共享的产品中的问题被解决时,修改未被通知 到一些开发者。 多个版本一许多大型项目以演化的方式开发。一个版本可能供顾客使用, 另一个版本用于测试,而第三个版本处于开发阶段。如果问题在其中任何一个 版本中被发现,则修改需要在所有版本中繁衍,从而可能产生混乱导致昂贵的 修改和重复劳动,除非变更被很好地控制和监控。 工作流提供了准则管理演化系统中的多个变体,跟踪给定软件创建过程中 的版本。根据用户定义地版本规则建造程序或整个版本,实施特定于现场的开 发策略。 工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。这 在如每天均需要频繁编译链接的重复过程中尤为重要。如果没有有力的自动化 是不可能的,同时也阐述了对产品修改原因、时间、人员保持审计记录。 工作流也涵盖了变更需求管理,即如何报告缺陷,在它们的是生命周期中 如何管理,及如何使用缺陷来跟踪进展和发展的倾向。 8 ) 项目管理( p r o j e c tm a n a g e m e n t ) 。软件项目管理是- - f l 艺术,它平衡了 互相冲突的目标,管理风险,克服各种限制来成功地发布满足投资用户和使用 者需要的软件。如此少的无争议的成功项目无疑是该项任务难度的证明。 工作流主要集中在迭代开发过程的特殊方面。本节我们的目标是提供以下 的事物来使该任务更简单。管理项目的框架;计划、配备、执行、监控项目的 实践准则;管理风险的框架。 它并不是成功的灵丹妙药,但提供了管理项目能显著提高软件成功发布的 方法。 9 ) 环境( e n v i r o m e n t ) 。环境工作流的目的是给软件开发组织提供软件开发 环境一过程和工具一软件开发团队需要它们的支持。 工作流集中在项目环境中配置过程的活动,同样着重支持项目的开发规范 武汉理工大学硕士学位论文 的活动。提供了逐步指导手册,介绍了如何在组织中实现过程。 环境工作流还包含了提供了定制流程所必须的准则、模板、工具的开发工 具箱。开发工具箱在本文后续的“定制流程的开发工具箱”中更详尽的讨论。 环境工作流没有被牵涉到如选择、获取、使其运行和维护开发环境等的具 体方面。 2 4r u p 开发过程中的各个阶段和里程碑 r u p 中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶 段( i n c e p t i o n ) 、细化阶段( e l a b o r a t i o n ) 、构建阶段( c o n s t r u c t i o n ) 和交付阶 段( t r a n s i t i o n ) 。每个阶段结束于一个主要的里程碑( m a j o rm i l e s t o n e s ) ;每 个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估 以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许 项目进入下一个阶段。 1 初始阶段 初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目 的,必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本 阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和 需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段 可能很短。初始阶段结束时是第一个重要的里程碑:生命周期目标( l i f e c y c l e o b j e c t i v e ) 里程碑。生命周期目标里程碑评价项目基本的生存能力。 2 细化阶段 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计 划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基 础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。 同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。细 化阶段结束时第二个重要的里程碑:生命周期结构( l i f e c y c l ea r c h i t e c t u r e ) 里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够 在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以 及主要风险的解决方案。 3 构建阶段 1 1 武汉理工大学硕士学位论文 在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有 的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在 管理资源及控制运作以优化成本、进度和质量。构建阶段结束时是第三个重要 的里程碑:初始功能( i n i t i a lo p e r a t i o n a l ) 里程碑。初始功能里程碑决定了产 品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以 开始系统的运作。此时的产品版本也常被称为“b e t a ”版。 4 交付阶段 交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次 迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在生命周 期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题, 所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。在交付阶段 的终点是第四个里程碑:产品发布( p r o d u c tk e l e a s e ) 里程碑。此时,要确定目 标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与 下一个周期的初始阶段的结束重合。 2 5r u p 的开发模式 r u p 中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循 环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展, 从一个迭代过程到另一个迭代过程到成为最终的系统。传统上的项目组织是顺 序通过每个工作流,每个工作流只有一次,也就是我们熟悉的瀑布生命周期( 如 图2 4 ) 。这样做的结果是到实现末期产品完成并开始测试,在分析、设计和实 现阶段所遗留的隐藏问题会大量出现,项目可能要停止并开始一个漫长的错误 修正周期。 商业建需求分析与设实现测试部署 时间 图2 - 4 瀑布生命周期模型 武汉理工大学硕士学位论文 一种更灵活,风险更小的方法是多次通过不同的开发工作流,这样可以更好 的理解需求,构造一个健壮的体系结构,并最终交付一系列逐步完成的版本。 这叫做一个迭代生命周期。在工作流中的每一次顺序的通过称为一次迭代。软 件生命周期是迭代的连续,通过它,软件是增量的开发。一次迭代包括了生成 一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版 本描述、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一 次完整的经过,这些工作流至少包括:需求工作流、分析和设计工作流、实现 工作流、测试工作流。其本身就像一个小型的瀑布项目( 如图2 5 ) 。 图2 - 5r u p 生命周期模型 2 6r u p 的工具集成 软件工程化过程需要工具支持系统生命期的所有活动,尤其是支持开发、 维护和各种各样产物的簿记一特别是模型。迭代的开发过程对使用的工具集提 出了特殊的要求,如工具的集成和模型代码之间的双向工程。同样,还需要支 持跟踪需求,文档自动化以及测试自动化如促进回归测试等的工具。r u p 可以与 各种各样的工具一同使用,包括r a t i o n a l 公司和其它供应商的产品。而 r a t i o n a l 提供许多有效支持r u p 良好集成的工具。 下面提供了支持r u p 的工具清单”1 。 武汉理工大学硕士学位论文 r u p 对于大多数产品殇提供7 工其撸弓| ( 1 o o lm e n t o r s ) 。工兵指芍l 是详细 介绍如何操作工熙以实现开发谶程的指南( 即弹出什么样的窗口,对话框中的 信息及如何漫游的工具) 。工具指引允许将狱波予工具的过程链接至日常工作豹 实簿撵俸工其。 r a t i o n a lr e q u i s i t e p r o 一通过使需求熙易于书写,交流和修改使在整个应 用开发中全体歼发小组能鬟时更新和跟踪。 。r a t i o n a lc l e a r q u e s t 一蘩予塞疆静翻w e b 熬嚣求交菱营理产瑟瓣,顼曩 小组能跟踪和管理开发生命期中的所有变更活动。 r a t i o n a lr o s e - - 世界领先的用于商业过程建模,需求分析,构建结构设计 的可视化建模蠢具。 。 r a t i o n a ls o 激一为整个软份开发过程鬟供产晶文挡囊旗纯静工篡,缀大减 少了文档工作的时间和成本。 r a t i o n a lp u r l f y c c + + 构件和应用程序开发者使用的运行错误梭奁工具, 箨动检壹蠹存镱误。 r a t i o n a lv i s u a lq u a n t i f y c c + + 、v b 、j a v a 构件和应用程序歼发者使 用的高级性能评测工具,帮助评估性能瓶颈。 。 r a t i o n a lv i s u a lp u r e c o v e r a g e - - 自动鹣软 孛测试覆羞率工具,使并发者 熊全面缝有效魄测试健们的疲惩程序。 r a t i o n a lr o b o t 一创建、维护和执行自动化的功能测试,允许全面地测试 代码和决定软件是否满足期望的需求和能能。 r a t i o n a lp e r f o r m a n c e s t u d i o 译溅释镞诗c l i e n t s e r v e r 彝w e b 系统 性能的易于使用、准确和j 町升级的工具。 r a t i o n a lc l e a r c a s e 一主导市场的软件配置工具,为项目经理提供跟踪每个 软馋秀发顼嚣逑佳熬能力。 武汉理工大学硕士学位论文 第三章i r u p 测试理论 r u p 作为先进的软件工程理论已经存在多年,i 阴又将其赋予了新的生命力, 通过加入i 酬多年的最佳实践,形成了强大的i r u p 架构。先进的理论和i 删最 佳实践的结合使得现代软件开发能够通过切实可行的指导来及早的发现、规避 风险,通过统一建模、用例驱动、迭代开发、需求管理、变更控制来提高产品 的质量啪。 3 1 传统软件测试过程中的问题 测试在所有的软件开发过程中都是最重要的部分。在软件开发过程中,一 方面要求我们通过测试活动验证所开发的软件在功能上满足软件需求中描述的 每一条特性,性能上满足客户要求的负载压力和相应的响应时间、吞吐量要求; 另一方面,面向市场和客户,开发团队还要满足在预算范围内尽快发布软件的 要求。 传统的软件测试流程一般是先在软件开发过程中进行少量的单元测试,然 后在整个软件开发结束阶段,集中进行大量的测试,包括功能和性能的集成测 试和系统测试。随着开发的软件项目越来越复杂,传统的软件测试流程不可避 免地给我们的工作带来以下问题: 问题一:项目进度难于控制,项目管理难度加大。 如图3 - i 所示,大量的软件错误往往只有到了项目后期系统测试时才能够 被发现,解决问题所花的时间很难预料,经常导致项目进度无法控制,同时在 整个软件开发过程中,项目管理人员缺乏对软件质量状况的了解和控制,加大 了项目管理难度。 武汉理工大学硕士学位论文 静 毯丑 制寓 划林 隶i 】 传统测试流程的问题 项目进度难于控制。 项目风险控制能力较弱 4 0 的开发力花在集成和测试上 项目进度 图3 - 1 传统软件测试流程的问题 问题二:对于项目风险的控制能力较弱。项目风险在项目开发较晚的时候 才能够真正降低。往往是经过系统测试之后,才真正确定该设计是否能够满足 系统功能、性能和可靠性方面的需求。 问题三:软件项目开发费用超出预算。在整个软件开发周期中,错误发现 的越晚,单位错误修复成本越高,如图3 2 所示,错误的延迟解决必然导致整 个项目成本的急剧增加。 1 6 武汉理工大学硕士学位论文 f 在j2 品化阶段修复 修复软件的代价 软 :错误自的览本将 失去柄会的代价 高ib1 0 0 到1 0 0 0 失去客户的代价 , 先启精化构建产品 图3 - 2 传统软件铡试流程问题 软件开发生命周 3 2l r u p 测试哲学 根据i r u p ,测试是软件系统开发的一个非常重要的部分,它是核心工作流 的第五步( 因倡导i 蹦所提出的持续的测试来保证质量而闻名) 。在这个阶段所 有的产品都被持续的测试。这就意味这软件测试不仅仅是软件b u i l d 之后的一 个阶段。 2 0 0 2 年以前,i r u p 测试强调的是传统的计划,规格说明,然后测试执行, 并着重强调测试自动化。在2 0 0 2 年的版本中考虑变更已经被考虑到测试理论中。 2 0 0 2 年的版本体现了向冒险式方法的转移。首先是学习系统,然后设计和执行 测试是并行的活动。为什么会傲这样一个转变呢? 因为描述文档常会有变化, 所以不再像以前那么强调把时触花在很耗时的基于这个文档写测试计划和测试 用例上。在观念上是,设计和执行测试用例在可测b u i l d 出来的时候发生。系 统文档不能作为测试的基准螂。 r u p 的测试哲学使用不同的方法,可以总结为下面几个原则 选代开发。测试活动贯穿整个迭代开发周期。每个时闻段有不同的目的, 在r u p 中被称作任务( m i s s i o n ) 。测试在细化( e l a b o r a t i o n ) 阶段,例如可以 专注于结构的验证,而当在构建( c o n s t r u c t i o n ) 阶段,可以集中予找到最多的 1 7 武汉理工大学硕士学位论文 软件缺陷。 预先编写少量文档。没有很多的测试文档需要被产生,除非是绝对的需要。 掌控整个测试测试计划( m a s t e rt e s tp l a n ) 以及关于测试e f f o r t 的细节计划应 该在测试执行之前产生。 整体方法。主要集中于对各方面所体现的问题以及所关心的事物的关系的 研究上。识别适当的测试的方法不只是严格并且单一的从用户需求获得。毕竟, 用户需求很少制定系统不具备哪些功能:它们不可能列举所有潜在的崩溃情况 和错误源。这些信息要通过其他渠道获得。k u p 中的测试通过需求和其他一些来 源获得,它体现了测试思想清单( t e s t i d e al i s t ) 的概念。 自动操作。在k u p 生命周期的早期就开始测试活动,并且需要不断重复, 是一件非常耗时的工作,所以应该使用一些工具来辅助进行多方面的工作:设计 测试的工具,执行测试的工具和分析结果的工具等。 r u p 有四种级别的测试:单元测试、集成测试、系统测试以及验收测试。这 些级别的测试可以通过项目级别的m a s t e rt e s tp l a n 和迭代级别的i t e r a t i o n t e s tp l a n 来协调。 r u p 为整个项目使用m a s t e rt e s tp l a n 而为每一次迭代则使用i t e r a t i o n t e s tp l a n 测试经理在r u p 的i n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年消费者行为变化与风险试题及答案
- 网络安全监测与分析试题与答案
- 2025年VB考试内容全面分析与试题
- 行政法学完整试题与答案分享
- 战略执行中的合规性风险管理对策试题及答案
- 信息处理行业标准化的必要性试题及答案
- 【成都】2025年上半年成都市住房和城乡建设局所属6家事业单位招聘工作人员13人笔试历年典型考题及考点剖析附带答案详解
- 2025商业办公装修合同范本汇编
- 高考数学中低档题型解析试题及答案
- 法学概论的重要理念与社会实践联系试题及答案
- 防雷装置检测业务合同范本
- QCT1169-2022汽车用液晶仪表
- 放牧合同范本
- 幽门螺旋杆菌检测方法原理
- GB/T 43934-2024煤矿土地复垦与生态修复技术规范
- 政策执行小组理论综述
- 中国女性文化智慧树知到期末考试答案章节答案2024年湖南师范大学
- 2-2-2单作用叶片泵工作原理
- 员工作风纪律培训
- 无人机结构设计与材料选择
- AI技术助推智能化疾控系统
评论
0/150
提交评论