测试团队工作计划范例(3篇)
来源:
测试团队工作计划范文
J2EE技术提供了一个基于组件的、多层分布式计算平台。在J2EE的应用系统的开发过程中,由于使用了中间件,开发人员可以把工作重点放在系统功能的建模、设计与实现上。此外,J2EE技术结合了软件设计中的最佳实践(bestpractices),如以架构为中心的软件体系结构、基于组件的架构等等。这一切都对现有的软件工程过程提出了新的挑战。所以,裁剪RUP并且使其在J2EE项目中起更大的作用是非常有意义的。
本文讲述了如何把RUP应用到小型项目团队开发J2EE应用系统的过程中,并且结合J2EE技术的特点从项目管理、架构设计、开发和测试等方面重点阐明了对RUP的裁剪。
图1一个复杂的BUS的实现方法
项目管理
在RUP中,角色定义了个人或团队的行为和职责,包括分析设计人员、编程人员、测试人员、项目管理人员和辅助人员,一个人可以同时担当几个角色.一个角色也可以由几个人来共同承担。针对J2EE系统的开发和维护,J2EE规范中也定义不同的角色,包括J2EE产品供应商、应用组件供应商、人员、系统管理员等等。
在实际的项目运行中.要根据软件开发组织的实际情况来确定角色的定义和分配。项目经理是必不可少的一个角色,通常是一个人来担任。项目经理代表整个项目与软件客户进行沟通和协商,并且制定软件开发计划等等。架构师也是一个必须的角色,通常由一名经验丰富的软件开发人员来担任。
在项目运行的前期,架构师负责设计软件架构和原型系统。在项目运行后期,架构师可以参与到具体的软件开发中。SQA同样是必不可少的,通常是一名经验丰富的软件开发人员来担任。SQA在整个项目的运行过程中负责监督和改进软件质量,包括制定系统测试方案、用户接受测试方案等等。开发人员是组成团队的主要力量,负责系统的设计、开发和测试。如果可能的话,团队中必须设立业务分析员的角色,负责商业建模等,通常由有特定行业经验的人来担任。
迭代开发计划
RUP的精髓之一迭代式的开发,它是基于Spiral模型翻的。整个软件开发周期由很多个迭代组成,其中初始迭代最为重要。其它每个迭代都为了实现软件的部分功能。在完成所有迭代后,软件的所有功能都已实现并且通过测试。
图2基于Tier层的J2EE应用系统架构
初始迭代又叫作0迭代,它开始于项目的启动。结束于RUP初始阶段(inceptionphase)的完成。初始迭代在整个软件项目中起着十分重要的作用,这是因为在这个迭代中,项目团队和客户必须对软件项目的范围、成本、进度和应用系统的边界以及功能等达成一致的理解。
在初始迭代中,最重要的活动有明确项目的范围、商业需求和提出至少一个可用的软件架构方案。在明确项目范围的过程中,项目经理就项目的边界、产品、限制条件等与软件客户进行协商,从而达成一致认识。同时,在理解客户需求的基础上,项目经理或者业务分析员以需求说明书和功能说明书的形式把客户的需求记录下来。并且和客户达成一致理解。在此基础上,架构师提供至少一个合适的软件架构方案,并且完成原型系统。原型系统的目的不但是为了验证技术上的可行性,而且是为了给客户一个感性的认识,更好地完善对需求的理解。
需求说明书从客户的角度简要地描述了系统要具备的功能,它包含了很多商业用例。通常情况下,需求说明书还不能够全面地描述整个应用系统,所以软件开发组织还要从不同角度来描述系统的功能和特征,这就是功能说明书。功能说明书中包含了很多系统用例。功能说明书和需求说明书必须征求客户的意见,直到客户满意为止。
图3基于Layer的J2EE应用系统架构
迭代计划是项目计划的一部分,指如何把要实现的系统分解成更小的子系统和如何在不同迭代中(除初始迭代之外)划分子系统,从而使每个迭代的目标明确,不同迭代之间的依赖关系达到最低。通常情况下,从逻辑上看,应用系统可以划分成多个BUC,而每个BUC又可以进一步划分成SUC;因此,可以从BUC的角度出发,根据相互之间的依赖程度来进行划分,把依赖程度低的BUC划分到不同的迭代中,从而确定每一个迭代的范围。一个复杂的BUC可以把它分解成独立的几个小BUC在几个迭代中来实现。(如图1所示)
一个应用系统也是由很多组件组成的。一个或者几个组件组合起来可以实现一个SUC或者一个BUC的要求。在设计迭代计划的时候,要考虑到组件之间可能存在的约束关系。基于J2EE的应用系统是基于组件架构的,因此,最小化迭代之间的依赖是一个最重要的衡量标准。
采用这种迭代办法后,每个迭代的范围限制在一个或者几个相互独立的BUC中。这样做的好处在于降低需求变化带来的风险。
图4BUS的组成结构
风险管理
采用迭代式开发的一个很重要的原因是,项目的风险能够在早期的几个迭代中暴露出来。风险有两个基本的属性,一个是它发生的概率,还有一个是风险发生后对项目的影响。风险管理的目的是为了尽量降低风险发生时对项目的影响。
在风险管理中,首先要识别项目中存在的风险。其次根据风险发生的概率和风险发生后对项目的影响来分析存在的风险。通常采用量化风险的办法。给概率和影响分别赋予一定的数值,经过分析,把概率的数值和影响的数值相乘后的结果风险量化后的值。接着,对于量化后值比较高的风险制定相应的风险规避计划。在项目运行过程中,要不断地监督风险的变化。
架构设计
RUP采用基于组件的软件架构和以架构为中心的开发方式。J2EE技术强调基于组件的软件架构,能够很好地体现RUP的架构思想。根据3D方法可以把一个J2EE应用系统的架构从三维进行分析,分别是Tier、Layer和SystematicQuality。在设计系统架构的时候,可以从这三个角度考虑。
Tier
从Tier层的角度进行考虑,一个J2EE应用系统的架构可以分为以下几个部分:客户端层、表示层、业务逻辑层、集成层、资源层,如图2所示。每层都是按系统中业务逻辑而划分的,它具有唯一的职责。每层与相邻层都是松散耦合的。
图5应用实例
在实现的时候,需要结合项目的具体情况而定。基于MVC设计模式的J2EEWeb应用系统中,客户一般访问JSP。然后由Control层进行处理:如果需要进行复杂的业务逻辑处理并且已经有后台实现,业务逻辑使用Facade模式进行封装,形成统一的接口,业务逻辑层实现复杂的事务处理;如果需要访问资源层,再经过DAO层访问资源。
Layer
从Layer的角度进行考虑,一个J2EE应用系统的架构可以分为几个部分:最下层为操作系统、Java虚拟机和网络,它们负责系统的底层操作和网络数据的传输;之上是J2EE服务层,一般由J2EE服务器(如WebSphere,WebLogic等)提供各种基础服务,如事务的管理(JTS)、命名目录服务(JNDI)、负载均衡(LoadBalancing)、容错(failover)、安全(security)等;其次是通用业务层,它一般完成与具体业务无关的基本操作,由通用的组件来实现,如数据库处理组件、系统错误处理组件、字符处理和数值处理组件、日志(10g)处理、数据转化和编码维护等;最上层才是具体业务逻辑模块,它完成具体的业务逻辑。(如图3所示)
在实现的时候.底层一般是不需开发人员关心的操作系统和网络环境,并且不同J2EE服务器厂商都提供了相应J2EE服务层,开发人员需要关心上面两层的实现。如果是J2EEWeb应用体系,应用服务层一般会使用Struts框架。log服务一般选择log4j等。最上层才是具体业务模块。
SystematicQuality
这是指在软件架构中通过一定的办法或者使用一定的工具来达到系统要求的QoS,一般指可扩展性、可移植性、可维护性、安全等等,而这些恰恰是J2EE架构本身所带来的好处。
实现和测试
实现是软件开发人员编写代码来完成每一个组件。测试是用来保证软件质量的重要手段。采用RUP的软件工程过程后,整个项目被划分成不同的迭代。每个迭代(除了初始迭代)的范围是一个或者多个独立的BUC,目标是编写代码实现BUC并且保证软件的质量。
在实现和测试的时候,集成(integration)是很重要的。这是因为整个软件开发过程分成多个迭代来完成,每个迭代(除初始迭代外)都是为了实现应用系统的一个部分。对于相邻的两个迭代。后者是在前者的基础上进行开发的,是实现功能上的一个增量。因此,相邻迭代之间需要功能上的集成。此外,每一个迭代都是由BUC组成的。从逻辑上来看,一个BUC是由一个或者多个SUC组成的。从实现上来看,每个SUC是由一个或者多个组件(component)组成的。因此,每一个迭代中都需要组件之间的集成,如图4所示。
根据集成程度的不同,可以划分几个不同的开发集成和测试:
首先是SUC集成和单元测试。这个是粒度最小的集成,它把几个不同的组件集成起来,实现同一个SUC。例如,SUC1是通过集成C1和C2来实现的。同时,在集成完成后,进行相应的单元测试。
其次是BUC集成和集成测试。BUC集成是把几个相关的组件集成起来,来实现它的功能。图4中BUC的实现需要集成4个组件。同时,在集成完成后进行相应的集成测试。
再次是迭代内集成和系统测试。迭代内集成从功能上来看,就是把这个迭代包含的所有BUC集成起来;从代码上看,是把所有和BUC相关的组件集成起来。同时,在集成完成后进行系统测试。系统测试分两步,首先是从功能上来测试每个BUC,其次是测试不同BUC之间的依赖和约束。
最后是迭代间集成和回归测试。对于相邻的两个迭代,从功能上来看,后者是前者基础上的一个增量。迭代间集成把这个增量准确地集成到应用系统上。同时,在集成完成后进行衰减测试。回归测试不但要测试功能增量的正确性.而且要测试增量发生后系统原来功能的正确性。
实例研究
笔者在TradeManager项目中运用了上述的方法。TradeManager是一个关于金融软件研究的项目,开发基于J2EE技术的金融订单管理系统。项目由12个人的团队来进行开发。团队成员分工明确,有项目经理、架构师、测试员和SQA等等。项目采用迭代式的开发方式。在初始迭代中,项目双方对项目范围、功能需求及架构达成一致,并签字同意。整个开发分为三个迭代阶段,根据功能点来划分,每个迭代分别实现交易前、交易中和交易后的功能。每个迭代的开发时间在六个星期。
这个软件采用J2EE的架构,如图5所示。其中UI和Delegate层在客户端,采用Swing技术来实现。是一个典型的肥客户端。Facade、BusinessLogic和DAO在J2EE服务器端,采用EJB技术来实现,它与客户端的通讯是典型的RMI/IIOp协议,采用的服务器是WebSphere。后台采用Oracle数据库来存放各种系统数据。同时,采用SiteMinder来实现系统的认证和授权。用log4j来实现logging/auditing功能。由于采用WebSphere集群技术,系统的可扩展性和高可用性得到了保证。
测试团队工作计划范文
关键词:软件工程;网络课程;教学实践;Jazz
中图分类号:G642文献标识码:B文章编号:1673-8454(2012)07-0061-04
一、引言
随着远程教育需求的日益增长和网络教育支撑技术的飞速发展,设计适用于网络上教学的高质量课程已经成为网络教育发展的一项重要课题。
“软件工程”课程的目的是使学生能够系统地掌握软件工程的基本概念和原理,以及实用的开发方法和技术,了解软件工程各领域的发展方向,学习用工程化的思想和方法开发和管理软件项目,了解软件开发过程中应遵循的流程、准则和规范,为从事软件工程研究或应用开发工作打下坚实的基础。[1-3]考虑到软件工程是一门注重工程实践能力的课程,课程的学习既要求要掌握软件工程基本理论,又要求锻炼运用这些理论知识解决实际问题的能力,做到理论与实践相结合。
当前“软件工程”网络课程的设计日益受到重视,但在实际教学中还存在着一些问题,包括:在理论课程中贯穿整个软件工程过程的系统化案例不多,以及实践课程中项目开发实践平台不完善等。[4-6]这些缺陷都影响了学生对于软件工程整体思想的理解与实践。
解决上述问题已成为当前“软件工程”网络课程设计的迫切需求。因此,本文以理论结合实践的方式将IBM公司的下一代软件开发协作平台Jazz整合到课程的设计中:使用基于Jazz平台的工具集(尤其是其中的RTC、RRC、RQM,以及ClearCase和ClearQuest),提供对软件工程生命周期各阶段任务的支持,并将Jazz平台跨地域的团队协作能力和适用于敏捷软件开发的特点充分利用到学生的工程实践中,具有一定的创新性,取得了良好的效果。
二、“软件工程”网络课程的总体教学设计
本文在“软件工程”网络课程的教学设计中注重理论知识的掌握,同时以培养工程实践能力为导向,强调学生能力的培养。通过对该课程的学习,让学生理解工程化方法在软件开发中的应用,以理论结合实践的方式进行同步教学:理论讲授部分采用网络多媒体教学模式,辅之以课后测验和课后作业,课程实践部分采用学生分组完成一个中小规模软件项目开发的教学模式。
在课程开展的可行性方面,苏州大学计算机科学与技术学院在与IBM公司的合作框架下,能够获取学生课程培训与实践所需要的工具和相关电子资源。此外,通过校、院或系一级的教学管理系统和FTP服务器建立教师与学生的互动平台。教师可以通过网络教学课件和案例分析等电子资源,还可以布置课后测验、课后作业以及实践项目;学生则可以通过网络下载教学资源进行课程学习,也可以通过网络进行课后测验、提交课后作业以及参与实践项目的开发。
该课程的教学设计分为两个部分:授课部分和学生工程实践部分,其中授课部分又可进一步分为理论知识授课部分和工具培训授课部分。这两部分的结合能达到配合理论教学,进行工具使用能力训练,并提高学生工程实践能力的目的。
1.授课部分
(1)理论知识授课:本部分由主讲教师完成,提供网络多媒体教学课件。理论知识授课部分主要介绍软件工程的历史、现状,以及发展趋势,以软件工程发展历史上的两个主流方法学(结构化软件工程和面向对象软件工程)为基础,深入讲解软件工程的基本原理、方法和技术,并涉及软件工程的管理话题,如软件质量管理、配置管理、过程管理、项目管理等。该课程的理论知识授课内容可以划分为结构化软件工程,面向对象软件工程,软件过程管理与质量这三个主要部分。在课程教学中,注重提供贯穿整个软件工程过程的系统化案例,使得学生能够对于软件工程的理论知识有一个全面、直观、感性的认识。
(2)工具培训授课:本部分由辅讲教师和工具提供商工程师完成授课和辅导,与理论授课部分同步进行,采用专题讲座方式进行相关工具的使用培训。工具培训授课部分主要针对IBM公司新一代的软件开发协作平台Jazz,采用IBM公司Jazz平台系列集成工具的培训教材和教学资源,对学生进行Jazz平台及相关工具体系的使用方面的培训,并对工具使用的实验进行指导,该实验也可通过网络完成。
2.学生工程实践部分
本部分由辅讲教师和助教完成,指导学生分组完成软件项目的开发。学生工程实践部分主要参考IBM公司的Jazz平台实验方案,选用一组典型的中小规模软件项目,由学生分组并选择适当的项目进行开发。在软件开发过程的不同阶段中,学生项目组需要展示对理论课程内容的掌握程度和工具使用的熟练程度,每周就项目进行进展报告,并提交各阶段相应的成果。教师需要对学生项目组进行过程管理和技术辅导,并对集中的问题进一步进行辅导。
三、IBM-Jazz平台简介
Jazz平台是IBM推出的面向跨地域团队的下一代团队协作平台,也是一个整合软件工程生命周期各阶段任务的软件开发平台。[7]
1.Jazz平台的特点
Jazz平台的主要特点包括下述三项,这些特点使得Jazz平台能够提供对于“软件工程”网络课程工程实践的支持:
(1)跨地域的开发团队实时协作能力。Jazz平台支持Web2.0技术,能帮助分散的软件开发团队克服地域障碍,搭建实时协作的平台。Web2.0技术支持实时的信息和信息反馈,通过网络,分布在各地的开发团队成员都可以在Jazz上了解最新的开发进度,提交最新的开发和测试结果,找到应遵循的工作流,在该工作流的指引下循序渐进地工作,而不必担心偏离了开发目标。项目的管理者也能够在Jazz上找到需要了解的信息,包括团队的进度、每位开发者的现状,以及资源的配置等,从而帮助其配置资源,确保开发按时按目标完成。这种通过网络提供的协作能力很适合网络课程中工程实践部分的团队协作工作,包括了学生的参与和教师的管理。
(2)支持整个软件生命周期各阶段任务的无缝集成。Jazz平台提供了对于软件开发和管理流程的定义和执行能力,在这些自定义流程的基础上,能够跨越包括需求、设计、编码、测试、配置与交付等软件生命周期的各个阶段,对各阶段的任务进行无缝集成。Jazz平台对软件工程生命周期各阶段任务的支持,符合“软件工程”课程的工程实践要求,使得学生能够对于软件工程过程有一个全面和系统的理解和实践。
(3)支持敏捷软件开发。Jazz平台还预定义了一些适用于敏捷软件开发的流程,对RUP的支持使得最新的需求能及时交付给软件开发项目的提出者,并且能很快得到最新的反馈意见。Jazz平台对于敏捷软件开发提供了支持,符合“软件工程”网络课程的工程实践部分中“开发中小规模软件项目”的要求。
2.Jazz平台工具集
从2008年开始,IBM陆续推出了基于Jazz平台的工具集,这些工具都是以与Jazz平台集成的插件或连接器的形式的。主要的工具包括:
(1)RationalTeamConcert(简称RTC):RTC是IBM推出的第一个基于Jazz平台的产品。作为一个协作软件交付平台,RTC通过提供整合的项目计划、工作管理、配置管理、团队构建、版本构建、报告能力等,为整个开发团队提供了协作的基础。RTC还能够帮助开发团队简化、自动化和监管整个软件交付过程。
(2)RationalRequirementsComposer(简称RRC):RRC是基于Jazz平台的需求开发管理平台。辅以RationalDOORSRequirementsProfessional,RRC将各种需求定义手段和需求相关人员有机地结合在统一的集成协作平台上,实现协作化的需求定义与需求管理。RRC采用多种需求开发方法和协作技能,使需求相关人员能更好地进行需求的获取、分析、精化、管理、评审以及验证。使用RRC能够尽量确保在开发之前将需求定义清楚,减少因为需求定义不良为后续开发带来的问题。
(3)RationalQualityManager(简称RQM):RQM是基于Jazz平台的全生命周期质量管理协作平台。RQM在整个软件工程生命周期中提供了从测试需求管理、测试计划、测试用例设计、测试执行、测试评价和缺陷管理等完整的测试生命周期管理方法,能够简化和自动化繁杂的测试任务,支持手工测试以及自动测试。通过与其扩展组件RationalTestLabManager的集成,RQM还能提供自动化的测试环境和测试资源的管理,从而提高测试的效率。
(4)RationalProjectConductor(简称RPC):RPC是基于Jazz平台的项目及资源管理平台。RPC可以帮助项目经理进行项目计划、制定项目进度,为项目和任务安排合适的资源。RPC还提供了对项目状态和进度进行管理监控和可视化的功能,可以作为项目开发的核心数据库。
(5)RationalInsight:Insight可以帮助获取关于开发团队的度量数据,客观地度量开发的状态和进度。Insight能够提供关于系统和软件交付准确的深入信息,确认高优先级的业务目标,并给出软件交付的最佳实践,从而更好地定位开发团队的目标、度量最佳实践和业务成果。
(6)RationalBuildForger(简称RBF):RBF是基于Jazz平台的过程执行框架,可以对软件工程生命周期中重复的开发任务和构建过程进行自动化的安排、管理和追踪。RBF支持主流的开发语言、工具及平台,能够在沿用现有开发资源的同时,增加有价值的自动化、加速、通知和日程安排等功能。
(7)RationalAssetManager(简称RAM):RAM可以帮助组织了解所拥有资产的状况,资产之间的关系,以及资产所交付的业务价值,从而使组织能够基于一致的可重用资产更快地向市场交付高品质的软件解决方案,并减少解决方案实现和维护的成本。
除了上述工具外,IBM还将陆续基于Jazz平台推出相关工具,并进行众多上一代Rational工具的Jazz化过程,已完成的包括ClearCase和ClearQuest等。
在“软件工程”网络课程中,主要涉及的基于Jazz平台的工具是:RationalTeamConcert、RationalRequirementsComposer、RationalQualityManager,以及ClearCase和ClearQuest。
四、“软件工程”网络课程的工程实践部分设计
“软件工程”课程具有实践性强的特点,其工程实践环节既重要又困难,需要深入研究该课程整个工程实践环节的教学内容和方法,确保相关实践平台,设计完整的实践体系,包括:实验大纲、计划、教材等。本章中对于“软件工程”网络课程,即所述“学生工程实践部分”做进一步研究。
1.工程实践部分的目的
(1)让学生在实践环节中加深对软件工程课程理论知识的理解,通过让学生参与一个中小规模软件开发的完整过程,建立对软件开发过程各阶段活动的全面、直观、感性的认识。
(2)要求参与的学生在实践环节中分成若干个项目组,并以项目组为单位完成软件系统从需求分析到测试交付的完整过程,在该过程中学习有效的沟通方法,培养团队合作精神,为将来进入软件工程行业做好准备。
(3)让学生通过实践环节掌握Jazz平台系列工具的使用方法,培养学生灵活运用所学理论知识分析和解决问题的能力。
“软件工程”网络课程的工程实践部分的总体要求包括:遵循敏捷软件开发的定义,各个学生项目组独立完成从需求获取与分析、设计与建模、编码、测试、配置与交付、过程管理等软件工程关键活动,熟练使用各种工具完成上述活动,养成规范化软件开发的习惯,并根据国标版软件开发文档模板最终提交相应的软件制品与规范化文档。
2.工程实践部分的具体要求
(1)项目管理与计划。根据实验课程的安排,各学生项目组首先进行的是基于项目管理知识使用Jazz-RationalTeamConcert进行所选项目的开发过程管理,使用Jazz-ClearCase实施配置管理,基于Jazz-ClearQuest进行缺陷与变更管理。需要学生项目组制定项目计划,包括过程计划、开发计划、测试计划、配置管理计划等,在网上提交相关文档和进展报告。
(2)需求获取与分析。在该阶段中要求各学生项目组获取并分析目标软件项目的需求,采用用例模型描述系统的需求规约,使用Jazz-RationalRequirementsComposer管理需求分析阶段的结果并进行需求评审。需要学生项目组给出需求规约文档,在网上提交相关文档和进展报告。
(3)设计与建模。在该阶段中要求各学生项目组以需求阶段的结果为基础,使用工具RationalSoftwareArchitect为目标软件项目进行设计和建模(注:IBM尚未为该阶段提供基于Jazz平台的工具),基于模型描述系统的设计规约。需要学生项目组给出设计规约文档,在网上提交相关文档和进展报告。
(4)软件编码。在该阶段中要求各学生项目组以设计阶段的结果为基础,完成目标软件项目的最终编码过程,并对软件产品进行评审。需要学生项目组给出源代码和可执行的系统,在网上提交相关软件制品和进展报告。
(5)软件测试。在该阶段中要求各学生项目组使用Jazz-RationalQualityManager及其他测试工具完成测试:设计测试用例,完成测试脚本的编制,实现自动化测试执行,进行测试结果的收集和分析,进行测试评估,将确认的缺陷提交到缺陷追踪系统中。需要学生项目组给出测试文档,在网上提交相关文档和进展报告。
(6)软件部署与项目总结。在该阶段中要求各学生项目组结合实际运行环境,完成目标软件项目的部署,并对各个阶段的执行情况进行总结,必要时可录制系统演示。需要学生项目组在网上提交报告和相关资料。
五、结束语
针对当前“软件工程”网络课程的现状,本文在对该课程的设计中整合了IBM公司的下一代软件开发协作平台Jazz,利用该平台对软件工程生命周期各阶段任务的支持,及其跨地域的团队协作能力和适用于敏捷软件开发的特点,以理论结合实践的方式设计了该课程的总体教学计划:着眼于培养学生的工程实践能力,从授课部分(包括理论知识和工具培训)以及学生工程实践部分两个方面展开,在实践中取得了良好的教学效果。
参考文献:
[1]RogerS.Pressman.SoftwareEngineering:APractitioner'sApproach,7thedition[M].McGraw-Hill,2009:928.
[2]IanSommerville.SoftwareEngineering,9thedition[M].AddisonWesley,2010:792.
[3]ShariL.Pfleeger,JoanneM.Atlee.SoftwareEngineering:TheoryandPractice,4thEdition[M].PrenticeHall,2009:792.
[4]许家,白忠建,吴磊.软件工程――理论与实践,第2版[M].北京:高等教育出版社,2009:399.
[5]黄河笑,杨焕宇,陈海建等.“软件工程”网络课程的设计与开发[J].计算机教育,2009(22):93-96.
测试团队工作计划范文篇3
那如何改进这种情况?
无论是大型还是小型软件开发商都要融入软件开发的全球竞争,那么就需要引进先进的国际标准规范(如ISO9000、CMMI),通过评估认证来规范软件开发过程管理。而同时在软件开发这个充满创意的领域,运用系统组织的思维、先进灵动的工具服务于过程管理,提高开发效率,也是企业发展过程中不可小瞧的力量。
案例:
高级电子表格软件的开发商RxLaser公司运用TechExcel的跟踪工具DevTrack,通过自动操作和控制软件开发及客户自定义过程,实现持续成长,提高产品质量,赢得客户的满意,是个具体而有借鉴意义的尝试。
开发规模增大带来的混乱
位于美国加利福尼亚州布瑞亚市的RxLaser公司作为高级电子表格软件的开发商,其软件产品通过一个服务器平台与客户使用的软件集成,支持打印、传真、收发电子邮件、EDI和数据存档,并可以按照每个用户的需要进行全方位定制。
过去的十年,众多公司用传真或电子邮件替代了点阵打印表格,不必再花费56美分邮寄一个发票的复印件,节约了大量成本。RxLaser公司将这种进步移植到电子表格上,成为业界领先者。
但成功和快速增长也带来了许多新的挑战,他们必须解决这些问题以保持其领先地位。他们曾使用过一个内部开发系统来跟踪所有的开发和定制化项目。随着业务量的快速增长,系统不堪重负。他们的客户数量在三年间从700多家增长到6000多家,如果没有一个可靠的跟踪解决方案,公司业务将处于危险之中。
“我们不能应对日常事务。”公司总裁罗伯特说:“形势已经不在控制中了。当我们拿到一份文件的时候,我们不知道这份单子已经搁置了多久,我们原本打算如何实施。我们的业务增长得太快了,而越来越多的客户感到不满意。我们只有两种选择:要么寻找合适的跟踪系统,要么被淘汰出局。”
精准问题跟踪避免重复作业
RxLaser公司的开发团队迅速评估和比较了市场上的许多跟踪工具。大约两周后,罗伯特发现他的所有员工都选用DevTrack。“每个人都很喜欢它,因为它快速轻松地满足了所有人的需求。”罗伯特说:“我的员工要求我购买它,他们甚至告诉我,如果我不这么做,他们就不能工作。”
现在,公司将其用于两个业务领域:开发团队和定制化编程,提高了软件开发的效率。开发团队负责运行、维护和管理电子表格软件系统,定制化团队则针对客户的具体细节要求编写对应的表格。
罗伯特认为,在任何软件开发项目中提高效率的关键,都是通过精确跟踪项目的每一部份来避免重复性工作。当把一个完整软件分解成许多程序片段,并把这些片段分配给不同的开发人员时,每个人的工作会有与其他人工作重叠的倾向。
而DevTrack就能使每个开发人员在任何时间都能清楚知道其他人在做些什么。当一些人完成一子项目,他们可以轻松地看到这个子项目和其它子项目如何连接,然后把这些片段无重叠地连接起来,避免了许多重复性工作。此外,管理者还可以看到每一个程序员在开发什么功能,这使得他们可以轻松地管理和跟踪整个项目。
“编写代码时,重复性的工作使公司既费时又费钱,并且不能按时交付。”罗伯特说:“重复是研发工作的最大破坏者。我们的产品需要多人参与,并要在规定日期前完成,如果我们不能按时完成,将损失数目可观的收入和机会,这是时间管理的问题,而DevTrack为我们很好地解决了这个问题。”
多人合作开发,项目很容易失去控制。每个人都在处理项目中相同部分的不同片段,这很容易让人产生混淆,很快他们就会发现不知道对方在做些什么。DevTrack协调团队工作,在任何时候都可以把一项编程工作转交他人。
延伸应用于内部沟通和客户服务
现在,RxLaser公司用DevTrack来制定工作进度,协调服务器产品的功能添加、缺陷修复以及功能增强工作。罗伯特介绍,DevTrack使整个修改工作的管理和协调非常容易,比如有一个开发人员负责项目中很大一块工作,利用DevTrack,他的上级就能准确地知道他当前的工作内容和时间限制,而其他人也都可以看到他每天的工作进程。
最初,RxLaser公司用它做问题跟踪,由于简单易用,后来被用来做工序跟踪。客户安装电子表格软件过程相当紧张,一旦有新客户登录,他们就会为客户发出标准表格,以基于客户独特的需要进行调整。经过相关人员设计调整和客户授权确认,该调整就发送给定制化编程部门,程序员采用修订过的标准,并将变化集成到用户自定义的表格,最后的产品再次发送给客户,等待最终的认可和安装。整个客户安装过程利用DevTrack管理和跟踪工作流和状态,程序员能准确地知道过去3-4个月里的工作,并能在停止的地方准确地重新启动。
罗伯特说:“使用DevTrack的最大收益,就是RxLaser的行业领先地位得以保持。除了帮助我们跟踪客户的优先级和需求,我们还可以使用它来管理设计员、程序员和客户之间的日常内部活动,管理并记录设计人员、编程人员以及客户间的日常交流,这样每个人都可以在任何时候知道问题的进展,并将其继续推进。生病的或是其他部门的员工也可以通过其中的记录,清楚地知道他下一步要为客户做什么,以及客户什么时候需要这些服务。”
研究视点一:跟踪工具的行业应用
工欲善其事,必先利其器。软件开发厂商也是一样,要做到高效的软件开发和过程管理,必须选择运用灵活先进的开发管理工具。早在30年前大师弗雷德里克・布鲁克斯就曾形象地论述说系统开发工作就像一个焦油坑,无论是大型、小型,庞杂、精干的开发团队都在其中挣扎,没有谁能挣脱束缚。这种情况到现在也还是如此――很少有软件项目满足目标、进度和预算的要求。做软件开发项目delay是正常的,这已是圈内人士的共识。
众所周知,对于传统制造企业,其流程和现场管理提高生产效率至关重要,在此基础上产生的JIT生产管理方式堪称一代经典。同样道理,对于人们看不见的产品――软件的设计开发过程来说,也是一样需要有方法、有工具来帮助实现提高其对应的生产效率。
作为问题跟踪功能实现的产品,目前市场上已经有几家或单独成品,或镶嵌在平台之内实现该功能(如TechExcel的DevTrack和IBMRational的ClearQuest等)。TechExcel的DevTrack赢得RxLaser信赖的关键,是它通过对项目中的每一个任务或细节的精确跟踪,并借助可轻松配置的智能化工作流,使项目参与者能够清楚地知道并执行自己的工作,避免了重复劳动,增强了团队沟通,提高了开发效率。
在国外,整体信息化水平相对比较高,所以IT以外的行业的软件开发和项目管理也是很愿意用工具管理实现的。图一是DevTrack全球用户行业分布图,可以看得出软件厂商是其主要客户,但同时政府机关也在用其做流程管理,教育机构也可以买它做实验室的项目管理。
研究视点二:工具的集成
单打独斗的工具成不了气候,平台化的系列工具软件是其作用最大化的有效途径。DevTrack是TechExcelDevSuite产品系列中的一部分,该系列围绕知识核心,无缝集成了从设计规划到产品所需的所有ALM软件,帮助数以千计像RxLaser一样行业领先的企业实现了科学、愉悦、成熟的开发管理。厂商选择、运用适合自己的集成工具实现开发过程管理。根据发展历史和客户需求以及市场环境的不同,软件开发商的运用工具管理的模式也不同,下面以测试驱动的缺陷跟踪管理、规划驱动的项目管理、需求驱动的产品开发管理三种模式为例来阐述。
测试驱动缺陷跟踪管理模式:某全球领先的软件企业有超过3000多个程序员和测试员在使用DevSuite中的DevTrack和DevTest模块来分别跟踪编程缺陷和管理测试过程。测试团队可以建立各种测试模版并为各个和构建制订测试计划和项目,测试过程中所发现的缺陷能直接建立新的缺陷任务,开发团队解决的缺陷将进行新一轮的测试,如此往复直至完成。这种模式改善了大型开发团队和测试团队间的配合和沟通,确保每个缺陷得到有效的处理。但是项目管理层和设计人员却不能通过这样的模式来主动监控和指导项目的进展,只能根据测试结果做出被动的反应。
规划驱动项目管理模式:某大型的美国游戏企业通过使用DevSuite中的DevPlan和DevTrack模块组合来改善管理监控。这个模式中的DevTrack包括一个管理层工作项目和多个下属的开发组工作项目。项目经理用DevPlan来细分和规划项目,并与DevTrack中的管理层工作项目相连。而管理层工作项目中的每个功能或缺陷任务又与开发组工作项目中的多个工作任务相联系。这样,一个项目经理的每个工作任务都被细分并分派给多个程序员或小组,从而使他能有效确保按计划实施项目。这种模式能有效管理控制开发过程、周期、预算和人员,但是子任务的变化和新功能的增加给整个过程的效率带来挑战。
需求驱动产品开发管理模式:有些企业进一步要求把需求管理也纳入DevSuite系统,以提高整个应用生命周期的管理效率。DevSpec就是管理需求制订并整合项目规划和实施的模块。使用它,产品经理能够规划各个产品版本的功能要求并管理设计文档,以确保实施团队充分理解设计团队的概念产品,减少不必要的重复和废工,最终产生理想的实际产品。
这些模式其实难分优劣,实际运用效果取决于企业自身的开发环境和实施力度,是否选择了适合自己的模式和工具并恰当地运用。同类企业在不同阶段可以运用不同模式,而不同企业也可以统一模式,运用得当能帮助企业提高30%左右的开发效率。
研究视点三:本土软件厂商如何做
目前国内软件开发整体来讲应该说还处于初级阶段,总体来看规模小、数量多、专业化程度低是目前国内软件开发商的特点。

年级写人的作文范例(整理5篇)
- 阅0年级写人的作文篇1我最熟悉的人当然是我的弟弟啦,我的弟弟是个瓜子脸,乌黑的眉毛下有一双水汪汪的大眼睛。他还有一张会说的嘴,如果你和他斗嘴,他肯定斗得你无话可说。我弟弟特.....

党员酒驾检讨书范例(精选3篇)
- 阅02020年党员酒驾检讨书范例篇1尊敬的交警同志:关于我酒后驾驶的行为,几天来,我认真反思,深刻自剖,为自己的行为感到了深深地愧疚和不安,在此,我谨向各位做出深刻检讨,并将我几天来的.....

研究性学习的作用范例(3篇)
- 阅0研究性学习的作用范文篇1针对学生上课犯困这种现象,作为班主任,若在班会上做一番从大道理到小道理的分析,一味地说教,我想:“多半是我一个人唱独角戏,学生埋头听听而已,过后不久.....

辐射事故应急演练总结范例(3篇)
- 阅0辐射事故应急演练总结范文1.1编制目的。为加快建立健全我县突发事件应急机制,迅速、高效、有序地做好突发环境事件处理工作,维护社会稳定,保障公众生命健康和财产安全,保护环境.....

测试工作思路范例(3篇)
阅:0测试工作思路范文在旋转机械的测试中,除了常见的温度、压力信号需要测试外,转速、扭矩及功率因是衡量不同工....

测试团队工作计划范例(3篇)
阅:0测试团队工作计划范文J2EE技术提供了一个基于组件的、多层分布式计算平台。在J2EE的应用系统的开发过程中,由....

研究性学习的作用范例(3篇)
阅:0研究性学习的作用范文篇1针对学生上课犯困这种现象,作为班主任,若在班会上做一番从大道理到小道理的分析,一味....