美章网 精品范文 测试团队工作计划范文

测试团队工作计划范文

测试团队工作计划

测试团队工作计划范文第1篇

【关键词】敏捷测试 Scrum 研究

21世纪是信息化技术全面高速发展的时代,企业之间的竞争日趋激烈,产品质量对于企业的发展重要性得以凸显,并成为企业核心竞争力的突出表现之一。软件行业也面临类似的问题,软件系统变得越来越复杂,传统的软件工程理论下软件开发周期过长、无法保证软件质量、开发过程冗长、笨重,加之频繁的人员流动、迅速变化的市场,都让传统的软件开发方法无法适应新的市场竞争环境,软件的失败率变高。软件测试越来越受到重视,敏捷测试是软件测试的重要组成部分,本文尝试基于Scrum开展敏捷测试应用进行概述。

1 敏捷测试概述

敏捷开发模式正处于逐步推广阶段,具有较大的发展潜力。现代经济生活中,很难甚至无法预测基于计算的系统如何随着时间的推移而进行演化,市场情况瞬息万变,最终用户的需求也在不断变化,新的竞争危险也毫无征兆的出现,故对于轻量级的软件开发而言,需要不断变化,以应对以上软件开发问题。敏捷开发以人为核心,迭代,循序渐进,拥抱变化是其基本动力。

敏捷过程有以下要点:

(1)通过频繁迭代与客户形成早期良好合作,及时反馈提高产品质量;

(2)客户、需求人员、开发人员进行有意义频繁的交互,以及早发现问题;

(3)衡量功能实现的唯一标准是该功能的开发测试已完成,并测试通过。

敏捷测试以沟通、简单、反馈、勇气、尊重为核心价值观,在敏捷软件开发过程中开展的测试便可称为敏捷软件测试,测试人员适应变化,与技术人员、业务人员进行良好的协作,立即测试记录需求、驱动开发思想。敏捷测试法继承了敏捷软件开发原则,作为一个优秀的敏捷测试人员,需要遵守以下原则:提供持续的反馈,为客户创造价值,进行面对面的沟通,勇气,简单化,持续改进,相应变化,自我组织,关注人,享受乐趣。敏捷测试不仅仅是测试软件本身,而是包括软件测试的过程与模式,敏捷测试的目的是为了尽可能使功能与客户预期一致,确保开发、管理过程正确。敏捷测试人员需要参与所有的团队讨论与决策,测试人员需要开展更多的与测试无关,但与团队目标直接相关的工作。

相较于传统的测试,敏捷测试与开发并行,甚至优先于开发,测试团队也是开发团队的一部分,除却绝对的必要,工作软件即是文档,及时应对变化参与所有的团队会议、团队决策,极力促进团队沟通、团队与客户沟通。

2 基于Scrum的敏捷测试

Scrum是当前应用最广泛的敏捷开发方法,过程清晰有效,适合敏捷经验不足的团队使用,以下就此进行概述。

2.1 Scrum过程

Scrum过程包含三个过程:

(1)设计计划与体系结构,即将产品功能需求、缺陷、更新用户需求等待开发项,作为优先级排成等待开发项目,然后根据列表,进行风险评估,制定产品交付规则。其次,需建立体系结构,将待开发的项目分解为一系列的“问题包”,每个问题包包含一组对象集合,再将问题包按照同样的原则划分为迭代小组,在此基础上,团队建立独立的开发测试运行环境。

(2)迭代过程,包含多个迭代,每个迭代都对应相应的时间段,通常而言,一个迭代周期为2-4周,每个周期结束后开始下一个周期,每个迭代周期都需要相应的设计、测试、编码活动,每个迭代结束后,都需要完成计划内的待开发项目。

(3)交付过程:当开发产品经风险评估后,边可以进行验收测试,进入交付阶段,组装项目组,系统测试、回归测试,完成最终文档等步骤。在基于Scrum过程开发过程之中,需要达到风险评估标准才能停止开发,交付过程的最终目的在于是否在迭代过程中出现被忽视问题,为下一阶段的开发做准备。每次迭代,订单订单项不允许修改。

2.2 Scrum测试管理

(1)需要做好人员的配置,按照与项目的关系,将人员分为实际参与人员以及项目组外人员,包括经理以及最终用户等,前者主要包括管理者、产品负责人与团队,Scrum管理者不是项目经理,由能力较强熟悉Scrum成员承担。产品负责人是指一个角色,来自于用户、客户、销售部或开发部门的需求分析者,易于协作、沟通,具有代表性,有一定的授权,熟悉需求。

(2)需明确测试角色,软件开发工程师复杂编写代码,完成白盒、黑盒测试、单元测试。自动化测试工程师需要负责测试脚本、工具代码。测试工程师需要了解产品需求、编写测试案例、追踪产品,客户负责验收。

2.3 Scrum测试模型

Scrum测试过程中,做好需求分析、分解测试的需求,及时与研发产品人员沟通的是关键。测试的一阶段,需要根据软件设计、需求,完成确认对所需要使用的测试工具,包括需求管理工具、测试案例、缺陷管理工具等,大规模公司可开发适应本公司的管理工具。在迭代阶段,每个迭代周期结束前,都需要提交方针,测试该周期或上个周期完成功能,以评价开发功能是否达到预期。

2.4 Scrum测试过程管理

首选,需要编制Scrum下的测试计划,以文档形式呈现,对整个测试过程都需要有相应的测试计划书,每个迭代阶段计划书都有相应的功能性文档修改。

计划书需要突出以下几点:

(1)产品的基本信息,记录Sprint各个阶段测试情况与结果,开发测试所有角色任务列表;

(2)确认测试计划包含的测试范围,根据新开发的功能及其相关的原有功能,需要定义划入测试产品功能,进行冒烟测试;

(3)划分测试阶段、明确方法与任务。在每个测试过程中,都需要有计划书、案例,测试过程中需要提交缺陷至相应的管理系统,在测试过程中需要明_监控测试的方法,搭建测试环境,评估进度计划风险,安排测试时间。

3 小结

基于Scrum的敏捷测试非常适合小型软件开发企业,容易上手,但作为一种科学管理方法,想要完整的掌握也有一定的难度。软件开发企业需要与时俱进,掌握该方法的精髓,即重视迭代管理、团队协作,勇于创新。

参考文献

[1]杨娜,严振亚.基于Scrum方法的敏捷测试探讨[J].数字技术与应用,2017(01):51-53.

[2]张晓静.敏捷测试在移动App开发中的研究与应用[J].电子科学技术,2015(02):211-213.

[3]孙笑,张小晶.Scrum敏捷测试――从敏捷测试中寻找发展机遇[J].科技创新导报,2014(25):255.

[4]曹栋.敏捷测试在银行IT领域中的研究与分析[J].电子技术与软件工程,2014(16):98-99.

测试团队工作计划范文第2篇

・ 质量团队人员情况和技能水平

・ 测试数据的规划和创建

・ 项目的客户化定制

质量团队人员情况和技能水平

列出的机构规划形式是一种灵活的模式,可以被各种规模和各种资源类型的机构所采用,能够成功地推动美科利质量中心的部署和运作。

组件团队

为了最大化资源利用,有效使用现有的技术产品,关键是要组建一支团队来支持美科利质量中心的部署。在项目初期,选用合适的人员将加快规划和调查步骤,在流程中尽早发现潜在的实施阻碍。

表二所示的是组成一个子团队的人员说明,其中包括个体的功能、所需的技术能力、必要的知识,以及在整个流程中团队成员所要承担的具体职责。一个完整的列表必须覆盖团队中所有成员的详细说明,在美科利质量中心的部署过程中,每个职位应具有详细说明。

具有相当技能的人员的选择是以项目运作的规模和范围为基础的,同时能和新的质量管理流程实现统一。成功的美科利质量中心的实施需要受过培训的用户的参与。尽管正规的用户培训只需要一天的时间,但是,建议另外采用大约为期大约一周、在实际工作中展开的指导(on-the-job mentoring)服务。这样就能最终建立起一种交流计划,使团队在面临任何可能的问题时,都可以与美科利质量中心的核心力量取得联系。

其它有关机构规划方面的主题,如:何时才是团队扩展的最佳时机,什么是美科利团队与其它IT、业务团队的最佳结合点,如何将知识传递到每个开发团队中去,这些问题都包括在美科利质量中心的工作中。

测试数据的规划和创建

管理测试数据是系统、环境和测试管理流程的一个重要组成部分。建议组建一支团队去开发一套数据服务,并在项目生命周期的关键点上完成服务实施。这些服务能确保测试数据得到合理的规划和实施。此外,所有主要的项目干系人应该召开数据审核会议,检查服务情况,并提出反馈意见。

以下所列的是一些服务和流程,是为提供高质量的支持服务而展开的。

・ 测试数据的规划

在软件开发生命周期中,第一次需要涉及测试数据规划工作是发生在设计完成阶段。

当项目需求或变更请求最终确定,用于每次项目时,测试数据管理团队将完成一份用于的测试数据计划。该文件是在管理将所有事宜进行打包之后才创建完成的。测试数据计划和其里程碑需要和管理的时间进度和里程碑保持统一。

测试数据计划应包含来自所有项目干系人的输出信息,这样测试数据管理团队就能协调和促进必要的、和数据相关活动的展开,协助实现一次成功的。此外,测试数据计划的重点应放在规划,以及明确测试数据管理团队所需要付出的工作量上。测试和开发团队应该和测试数据管理团队合作完成测试数据计划。测试数据计划包括以下信息(但不仅仅限于如下信息):

・需支持的测试阶段

・的范围

・测试数据管理团队的工作

・项目、测试阶段和环境的保障和里程碑

・资源和流程的确认,用于创建测试数据

・数据更新和/或数据恢复方面的需求。

一旦测试数据计划文件完成,应提交给测试执行机构审核通过。

・ 创建数据

根据测试计划中制定的需求,测试数据管理团队负责为测试机构提供测试数据。测试数据管理团队在测试执行阶段之前提供测试数据。

提供和管理测试数据的最有效、最实际的方式就是使用正规化的数据流程和工具。为了确保成功,测试数据管理团队会执行无数次的测试数据准备流程,如数据的重复使用、数据合并、数据恢复和数据共享。

测试数据管理团队将和DBAs和系统支持管理员一起,根据特定的数据需求,用各种不同的方式,推动数据的创建。

其中一种是将数据从生产或其它环境中复制到目标测试环境的方式,这是在其它环境中发现符合需求的数据时所采用的。第二种采用的方式就是手动输入数据的方式,是在其它环境中没有发现数据时所采用的方式。 其它可行的方式包括使用数据生成工具,如Usage Generator;恢复存储在数据存储器中的数据;修改环境中的现有数据来满足新的数据需要。尽管测试脚本是由测试机构来创建的,但是测试数据管理团队可以提供测试数据,作为对脚本的输入信息。

如果在开始测试之前,需要对现有方案进行修改,测试数据管理团队将负责该方案中数据方面的改动。任何作为测试环节的一部分而做的数据修改属于执行团队的职责范围。

其它有关系统、环境、和数据管理流程方面的信息都是美科利质量中心工作的组成部分。

项目的客户定制

美科利质量中心为特定的项目提供广泛的、项目客户定制方面的灵活性。仔细地规划客户定制是非常重要的一个方面。随着可用的用户空间愈来愈多,用户可以增加Memo空间,可以创建输入模式,使用户能够定制他们的美科利质量中心项目,从而获取测试流程所需的任何数据。

美科利质量中心管理员增加和定制空间,创建分类和表单来反映特定测试项目的需要,满足测试团队的特定需要。管理员可以通过以下方式来修改美科利质量中心空间的行为:

・限制用户仅仅从相关表单中选择值。

・强制从特定空间进入

・保留输入到特定空间内的值记录。

・通过创建用户空间来获取您项目的独有数据。

・将这些空间和美科利质量中心和用户定义表单结合起来。

管理员可以定制和增加其它空间,用于相关质量指标的收集。通过使用下拉表单和自动填写功能,数据质量得到了提升。验证所需的信息,用于评估应用的就绪状况,以及测试、开发和其它相关IT流程的进展情况。正确定制美科利质量中心可以帮助您管理好各类应用测试工作。

・ 推荐的空间客户定制

以下所推荐的空间客户定制选项和美科利质量中心所支持和影响的主要IT流程相关:

・需求管理:通过创建定制空间可以将不同类型的需求区分开来。这些空间可以显示出一个特定需求是否和规模、系统、性能、业务流程优先级、业务关键性等因素有关。如,需求变更的成本方面的考虑也可以通过定制空间来体现。

・变更管理:需求变更请求可以通过定制空间――指出请求的当前状态(新的/未决的/取消的)――从而展开跟踪和管理。其它定制空间可以在流程之后跟踪变更请求数量。

・配置管理:使用定制空间来监测每个模块在测试计划树状图(test plan tree)中被发现的配置错误数量。

・应用开发:为了获取更全面的成本和资源信息,应该建立定制空间来估算测试开发时间,并预测预期开发时间和实际时间之间的差异。

・质量保证:跟踪适用于测试项目的特定缺陷标准,创建定制空间

・管理:创建定制空间,在每个之前跟踪版本信息,或在某些情况下跟踪将执行的缺陷版本或提高版本的数量。

・生产管理:通过定制空间来跟踪回复时间,从而发现性能和可用性问题。

・问题汇报和管理:通过定制空间来监测调优或更新之后所产生的问题,指出问题的数量、根源和修复成本。成本空间可以选择性地对一些项目规划人、经理或QA分析人员开放。

空间定制的模式

美科利质量中心使用了缺陷空间的实例来指导如何命名和定义一个客户定制空间的各个选项功能。这些功能包括缺陷类型、影响、影响的严重程度、解决的优先级、测试区域、测试类型、服务管理等。有关美科利质量中心项目客户定制的各个方面信息是通过全面实施美科利质量中心来提供的。

测试团队工作计划范文第3篇

关键词:软件测试管理;测试团队;测试过程;事件管理;配置管理

中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2013) 04-0075-01

一、引言

现在,软件测试已经成为一个很有潜力的专业,软件测试可以提高质量,降低维护成本。

对于大型相对复杂的软件项目,做好软件测试就会相对困难,因此,为了尽可能提高软件质量,减少错误,必须有效对测试工作进行计划和管理。

要想对测试工作进行有效策划和管理,需要采取系统的方法建立软件测试管理体系,对测试活动进行监管和控制,以确保软件测试在软件质量保证中发挥应有的关键作用。

二、建立测试管理体系

软件测试的过程及应用即测试规划,设计,执行,配置与资源管理,缺陷管理等。从项目管理的角度来说,这些过程里,前一过程的输出是后一过程的输入。其中,配置与资源管理是这些过程的支持,测试管理对其他测试过程进行监视、测试和管理

三、测试管理过程和基本内容

(一)测试团队管理

做好软件测试需要一个独立的团队,测试团队独立于开发团队之外去做测试工作,可以更加公正的进行测试。虽然测试人员可能需要花时间去熟悉被测对象然后才能设计出测试用例,但是测试人员具备了专业的测试理念和设计技术,而这些测试技术是一个开发人员所没有的或测试前必须花时间去学习掌握的。

测试团队管理的主要任务:确定测试队伍的组织模式,确定测试需求和组织测试设计,估计测试工作量,安排测试任务,确定应交付的测试文档,管理测试工具。

(二)测试过程管理

软件测试贯穿于软件开发整个生命周期,在软件开发的每一个阶段,都有相对应的测试任务,从计划、设计、执行到缺陷管理、总结等步骤,构成了一个测试过程。(如图1)

因此,软件测试过程管理主要集中在测试准备、测试计划、测试用例设计、测试执行、测试结果分析,以及如何开发和使用测试过程管理工具上。

(三)资源和配置管理

1.资源管理包括人力资源和环境资源

人力资源:测试人员的数量及其测试技能,在测试的各个阶段中对人员和技能要求不同。

环境资源:建立测试环境所需要的计算机软件资源和硬件资源。硬件提供了一个支持操作系统、应用系统和测试工具等运行的基本平台,软件资源则包括操作系统、第三方软件产品、测试工具等。

2.配置管理

配置管理是是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。

(四)事件(缺陷)管理

事件即缺陷管理,为了有效地管理缺陷(事件),在项目内应该引入规范、高效的缺陷(事件)管理系统。

软件测试的任务就是寻找缺陷,缺陷从被发现、分析、修改,到修改的确认形成了一个缺陷的生命周期(lifecycle)。在缺陷周期内要对缺陷进行跟踪。缺陷可能会在开发过程中被发现,也可能在评审和测试过程中发现,甚至在系统最后使用过程还会发现缺陷。缺陷可能在代码内、在运行的系统中、也可能在各种文档内。缺陷与软件的版本、运行的环境有关。缺陷与人员有关:测试员、开发人员、管理者和客户等

四、总结与展望

测试管理涉及的范围非常广泛,如测试组织管理、测试过程管理、事件管理、人力资源与配置管理、风险管理、进度管理等。软件测试贯穿于软件开发整个生命周期,软件开发周期模型为我们提供了软件测试的流程和方法,为测试过程管理提供了依据。但实际的测试工作是复杂而烦琐的,不会有哪种模型完全适用于某项测试工作。因此,在实际工作中,我们要考虑实际情况灵活地运用测试过程管理理念,依据这些理念来策划测试过程,以不变应万变。

参考文献:

[1]杨小平,王胜开.面向对象软件测试探讨[J].计算机科学,2009,36(11).

[2]王文东,耿国华,张根耀.软件可靠性保证与评测技术[J].微机发展,2004(11).

[3]叶言苓,崔彦军.软件测试管理的研究与应用[J].计算机应用与软件,2003(09).

测试团队工作计划范文第4篇

敏捷开发强调以人为本,认为面对面沟通是软件项目成功的一个重要因素。

当我询问一个研发经理关于敏捷开发所需的工具时,他开玩笑地说,一张白板和两杯咖啡。这也反映出开发人员对于敏捷方法的普遍认知。

事实上,许多开发项目主管虽然认同敏捷开发所强调的快速反应和沟通的理念,却担心它的“杂乱无章”带来的“不安定因素”。因为它极度地强调人的因素,使得人员的素质对敏捷团队的影响,远比对其他团队更大。

举例来说,配对检入是个保证代码质量很好的方法。但编程人员不了解其重要性,可能为了进度,常常一个人草草就检入了。因此,在采用敏捷方法时,若能适当地使用工具来保存累积的知识并固化关键过程,必能使敏捷项目更加成功。我们试以敏捷开发的几个主要特点为例,探讨工具在敏捷开发中扮演的角色。

特点一:测试驱动开发

传统的瀑布方法先编码再测试,等到发现需求和设计上的问题,为了节省费用,常常不了了之。测试驱动开发是在需求产生后,设计模块和其之间的接口,并将单元测试代码完成。在此过程中,需求和设计上的偏差将会被发现。由于编码尚未进行,只需更改需求和设计即可,避免造成太大浪费。

特点二:简单设计

敏捷开发崇尚简单的渐进设计,而不是剧烈的颠覆式设计。其目标是首先只设计我们所了解的那些部分,然后使该设计随着时间的推移而逐渐改进,这有助于提高灵活性并将变化导致的成本最小化。

特点三:配对编程

尽管两人一组的配对编程从理论上看使眼前目标和长远目标都得以保证,这却是敏捷方法中备受争议的做法,反对者普遍认为它会导致耗时加倍。广义的配对编程也包括前面提到的配对检入(Pair Check-in),也就是由两人一起检验代码的正确性,然后才检入。

特点四:小型

周期短可使对项目的评估提前,进而降低了风险性。但这所带来是大量的可执行文档,造成管理上的困难。

工具所扮演之角色

现在让我们以一个典型的敏捷团队DevAgile为例,看看该如何用工具实现其敏捷过程和设想(图1)。Smart先生是DevAgile团队的项目经理,他被要求在开发过程中体现我们以上所列的几方面特点,在配对编程方面还要求配对检入。

图1 工具对敏捷开发的支持示例

角色1:需求管理的利器

对项目需求和设计文档的管理是DevAgile必须首先面对的问题。他们要完成的,恰恰是一个需求变更很快的项目,这也是他们选择敏捷开发的重要原因。在敏捷开发中,需求的变化常常是为下一次迭代提供信息和进度计划的依据。

因此,DevAgile的大多数成员认为,记录下每一次关键的需求变更很重要,尽管最初有些人坚持敏捷开发并不需要文档。

同时,他们也注意到,要遵循简单设计的原则,并非意味着设计文档不需管理。相反,文档的数量和版本都会比采用其他开发方式更多。这些设计文档及其历史应该被妥善地管理,也要和相对应的配置项链接。

另外,小型意味着整个生命周期中有更多的,如何对这些进行系统化管理也是DevAgile团队必须解决的问题。

综合以上这几点考虑,Smart先生认为,应该找到一种需求管理的武器。DevAgile团队在进行了一番市场调研后,决定尝试TechExcel DevSpec这种需求管理工具。它不仅提出“以知识为核心”的概念,满足需求和设计文档管理的要求,还实现了真正的“功能驱动开发”。

尽管DevAgile目前没有清楚的看到后者如何实现,但DevSpec对产品需求、产品功能及知识文档的系统管理还是吸引了他们。

它成全了设计团队的敏捷性,支持简单设计,并对他们经常修改设计的做法提供了管理上的帮助。一些成员还指出,在敏捷开发的道路上,太多的不确定因素和灵活性难免会影响大家对最终产品的认识,有一个这样的工具能够时时刻刻描绘出要产品的清晰轮廓,记录下产品需求和功能变更的每一步,实在是很令人欣慰。

另外,为了配合数量多的小型,DevSpec还有整理功能点的能力。也就是说,将和某一有关的新功能、功能变更,以及缺陷修复,全都进行统一组织和管理。

例如,要完成6.1的,他们只需把6.1功能文件夹里所有的新功能、功能变更,以及缺陷修复全都做完,6.1版本也就可以了。为了更大程度上提高开发效率,Smart先生还别出心裁的对这些功能及缺陷设定了优先级,优先级低的任务可能被延缓执行。实践证明,这种具灵活性且针对来管理的系统使小型越发容易。

角色2:项目规划的利器

Smart先生发现敏捷的项目管理要能做到随机应变,应付各种可能出现的情况,也是建立在对任务的细分,并对任务的状态采取高频度的探测并及时调整的基础上。DevAgile选择了TechExcel DevPlan作为项目规划工具,因为它能够围绕DevSpec中管理的功能点进行迭代计划,对人力资源进行管理,既把握了正确的宏观方向,又能对任务细分。任务若被耽延,还可以反馈回来。

Smart先生认为,作为敏捷团队的项目经理,他应该从传统项目经理的“工头”身份中解脱出来,发挥他的领导力,去监控和协调开发过程。虽然项目经理还是必须定义和初始化项目,作项目计划,执行计划,监督并控制结果。

但是完成这些步骤的方式却是不同的。具体来说,敏捷项目的计划不再是详细的完整的项目实施步骤和资源分配,而更多的表现为一种迭代计划。在开发人员与客户或其他团队沟通的每一次迭代中,计划和资源分配随时可能被调整,以不断适应项目进展的需要。在DevPlan的帮助下,这种调整变得方向明确、清晰和有据可查。它将每一次迭代的框架确定下来,剩下的工作就是根据这个框架实施了。

角色3:测试管理的利器

有了DevPlan,测试计划和开发计划开始制定,项目在一种既有序又敏捷的机制下运有序地转着。为了实现“测试驱动开发”,DevAgile不可避免的遇到了测试管理的问题。他们注意到,需求管理工具DevSpec内的需求,可被直接导入测试管理工具TechExcel DevTest,并自动生成测试任务。所有测试任务可以遵照既定的工作流执行,保证测试工作的有序开展和管理,并在编码之前发现设计偏差。

另外,他们以往是用光盘来存储可执行版本,文件柜的每一个抽屉里都装满了光盘。在进行敏捷开发以后,光盘的数量更是与日俱增,要找某版本的光盘时,多半是很困难的。

DevTest能够保存和管理的软件版本,而且和DevSpec内的功能及缺陷文件夹相对应。也就是说,若在需求管理工具DevSpec内有个6.1功能文件夹,那么在测试管理工具DevTest中也有个相对应的6.1文件夹。这显然比用其他方式来存储软件版本更加科学和方便。

角色4:任务执行的利器

有了以上这些项目管理的利器之后,DevAgile团队的工作并非一帆风顺,因为新的问题又出现了:一些成员片面的认为敏捷开发是一种松散型开发模式,也就是不需要遵守固定的流程。这直接导致了很多开发任务的执行效果糟糕,有些任务被提出以后就失去了踪迹,就连Smart先生也难以追踪每一个任务的结果。

于是,DevAgile团队又引入了与DevSpec和DevTest可以集成的DevTrack。这是一个开发任务的跟踪管理工具,提供既固化又可灵活更改的流程,对每一个任务的生命周期进行严格管理。它保证该走的过程一定走过;该反馈的一定反馈;该提醒的一定提醒;若任务需被升级,那就一定会被自动升级。更令人兴奋的是,当任务完成之后,其结果会自动返回需求管理工具DevSpec或测试管理工具DevTest。Smart先生可以轻易地由DevSpec看到针对6.1版本的所有功能和开发任务是否全部做完,对的管理省时省事。

直到实施了任务执行管理工具DevTrack,Smart先生才逐渐认识到由DevSpec引导的“功能驱动开发”是如何实现的。DevPlan中的迭代计划、DevTest中的测试任务和DevTrack中的开发任务,都是围绕DevSpec中的功能展开的。这不仅使整个敏捷过程都严格围绕最终产品进行,而且其中的可追溯性和可核查性,也正是敏捷开发思想的有益补充。

现在,当项目成员在会议室和用户讨论得热火朝天的时候,Smart先生可以悠闲地在电脑前喝咖啡了,他知道整个过程都是可以控制的,需求和设计变化再多再大,经历再多的迭代和小型,只要所有功能都按照计划被开发和测试,项目还是会如期完成。

敏捷团队的成功案例总结

毫无疑问,DevAgile团队最终用敏捷开发方式取得了项目成功。让我们再来总结一下,他们是如何具体做到的呢?首先,需求被搜集和整理,产品功能和简单设计产生,将这些结构框架和相关文档存入DevSpec之后,开始制定迭代计划,并定义模块接口。紧跟着,针对接口做出测试代码。这些知识文档全由DevSpec来管理,因此DevSpec中形成了由需求、功能和知识文档组成的“概念产品”。

最后,功能点被导入DevTest而产生一个或多个测试任务,每一个测试任务都能按照DevTrack中定义的工作流(图2)进行。

图2 DevTrack中定义的测试任务工作流示例

图2的工作流被启动之后,编码人员在第一状态负责编写代码、重构和白盒测试。项目经理为了实现配对检入,把第二状态设为需有A和B两人一起检入的“配对检入”。每一个状态都有明确的负责人。A可以是第一状态负责人,而与A配对的人员则可以是跟A 所做的任务有关的人员。第三状态负责人可以是测试人员,在单元测试成功后便完成了整个流程。反之,则重新回到第一状态。

以上的案例中,对所提到的四个敏捷特点都有所注解。当然,这是一个可行的方案,而绝非唯一。

另外,面对面沟通也是个很好的敏捷操作,但是实际上却不易实现。客户或熟知商业逻辑的同事通常是无法长时间和开发设计人员在一起工作的。若一定要面对面,很可能会以高昂的费用为代价。更实际的方式是通过一定的沟通平台(如一些即时语音或视频通讯工具)来达到类似面对面的沟通。

无论采用何种方式,沟通后的结果都要能妥善地记录下来。知识的分类和历史的记录会使清晰度达到最高,进而使后来的一切活动,包括编码、测试、分析等,都变得容易。

测试团队工作计划范文第5篇

产品的敏捷设计

从需求规划、需求分析到需求设计的过程,都可以归类为产品的设计过程,这中间现在有很多细分,诸如市场调研、竞品分析、交互设计等,其本质都是产品设计,并在最终可以形成一份产出物《产品需求设计说明书》,以提供给开发和测试人员去实现产品。瀑布型开发模式要求需求必须先全部梳理清楚,才会投入开发资源,这样的好处是需求完整,可以从整体上把握产品;而敏捷模式下的产品设计,也需要从整体上规划产品,但会拆分成若干个相互间较为独立的部分,分别实现,最后又能整合成为一个完整的产品,这就对产品设计人员提出了更高的要求。

通常情况下,当我们接到一部分产品的需求之后,会按业务优先级来做分析,并将相互关联的需求放在一起,或者是按优先级高低进行分类,这个过程将需求进行了划分,可以依据这个划分来决定哪些需求是要先做的,哪些是可以后做的。不过这里有一个问题需要注意,那就是什么样的需求适合拆分,一般有以下几种类型:

第一,各需求功能之间较为独立的适合拆分。一个产品有十个功能点,各个功能点之间相互依赖关系不强的,松耦合的,就可以每个功能点单独抽取出来做设计;

第二,需求功能本身的逻辑遵循某种操作流程的适合拆分。功能的实现是按照一个较为固定的流程一步一步往下走的,这样可以将每一个步骤单独拆分开来设计;

第三,产品上线之后的版本维护适合拆分。上线之后,对一些BUG、问题、小需求的缝缝补补,都适合用敏捷的方式来设计;

第四,产品上线后的新增需求适合拆分。新增需求一般都针对某个功能模块来进行设计,相对来说较为独立,因此也适合敏捷设计。

拆分后的需求会分别写PRD,最后合成一份。敏捷开发模式中把需求都称为Backlog,维护Backlog表就是一个对产品需求进行拆分的过程,拆分完成后再根据迭代计划来设计具体的实现。一般有名称、优先级、工作量估算、描述、备注信息等几个维度,实例如图表所示。

通常都把Backlog存放在共享的Excel文档里面,以便团队成员都可以随时查看。一般来说这个文档归产品经理维护,但也并不把其他团队成员排斥在外。开发人员和测试人员常常要查阅这个文档或者修改工作量估算。需要注意的是,描述Backlog的时候只需说明要达到什么结果即可,而不能说如何去达到。

产品的敏捷开发

需求Backlog清单都列出来了之后,开发人员需要根据排定的需求优先级,从需求池当中选出需求排到当前的迭代中,直到所有需求的估算工作量加起来达到迭代周期的工作量为止,一般会留一小部分时间来做为缓冲。开发人员集体估算每个需求的工作量并维护到上述的Backlog列表中,这些都是在敏捷的迭代计划会上完成的。通常一个迭代都是通过计划会议来开始的。

接下来是确定Backlog是否还需要拆分,即判定是否可以在一个迭代内完成,或者是否可以在一天内完成,敏捷开发模式可以建立详细的考核机制,每天都跟踪之前一天的任务是否已经完成。开发人员拆分Backlog出来的结果就是一条条的Task,然后开发人员根据各自的任务来编写《产品系统设计说明书》,最后汇总。

这里涉及到工时估算的问题,一般的估算方法都是让团队中不同级别的成员对某个Backlog进行估时,并取某个中间值或者团队都可接受的值为最终的估算工时。一般拆分的依据如下:

1、 每个拆分出来的Task都是可单独验证并上线的;

2、 每个拆分出来的Task都是可以在单个迭代内完成的;

每日站会可以跟踪需求实现的进度,检查每天的工作进展是否按照迭代计划在进行,永远确保资源投入在高优先级的Backlog上;该完成而未完成的任务有哪些以及是什么原因?及时识别出对迭代中后续问题的影响,并根据风险和应急方案努力规避;遇到的问题应该由谁来负责解决以及何时必须解决,否则会影响后续计划中哪些条目?尤其是那些有前后依赖关系的条目;开发过程中会出现对原有需求的进一步细化,可能会和迭代计划时讨论的结论有一些差异,那么变更的内容是否会对既定的业务需求产生调整?

需求变更一般发生在计划会议之后,既定的Backlog尽可能保持稳定。但是需求变更是很难避免的,若业务或者技术发生变化时,敏捷团队该如何响应呢?一般从需求的紧急程度来考虑,紧急的需要团队内部开发讨论,如果能在缓冲时间内完成的就完成掉,如果不能则需要从已安排的任务当中挪出一部分到下个迭代。

产品的敏捷测试

有人说敏捷测试是顺应敏捷开发方法,是力求达到质量和效率平衡的一系列测试实践,其实并不是一定要敏捷开发了才敏捷测试,其他开发模式下也可以采用敏捷测试。敏捷测试只是测试的一种,强调从用户的角度,即从使用系统的用户的角度来测试系统。重点关注持续迭代的测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。

所以在敏捷开发模式下,开发人员不是等整个迭代的任务都开发完了才送测,而是做完一个送测一个。前面也讲到Backlog拆解成Task时要求每个Task都是可以单独验证的,也就是说每个Task都是可以单独测试的,这样测试人员可以对每个已开发完成的Task进行测试,及时发现问题,及时改进。这种模式下,效率高的话可以精确控制到每天的开发结果验证,这样可以确保产品需求都是按照计划来进行的,并且不会偏离需求本身。

测试人员也是从迭代计划会议开始参与到每个迭代当中,对本次迭代中安排的所有需求清单编写测试用例,最后形成一份汇总后的《测试用例及测试报告》。在每天的站会上,测试人员可以及时告知每天的测试进展和测试的问题,及时帮助开发人员修正。这样测试人员就可以持续测试、持续反馈,整个测试的阶段性会比较模糊,主要强调测试的速度和适应性。

测试团队工作计划范文第6篇

[论文关键词]任务驱动 项目导向 案例教学 多元整合

一、引言

软件工程课程是高职软件专业类学生的专业核心课,是理论和实践紧密结合的典型课程,主要培养学生软件开发能力和项目管理能力。但在实际教学过程中,因为缺乏明确工作任务并涵盖课程理论知识的综合项目,学生对软件工程理论感到十分抽象,对实践操作也只是囫囵吞枣,根本体会不到软件工程在企业项目开发中的宝贵作用。

针对软件工程课程,国内职业教育课程在借鉴外来职业教育课程开发理论的基础上,也有自己的创新。有一部分学校已经在这方面进行了改革和探索,但大多是单一的、松散地进行,这一状况的形成,一部分是因为现实客观条件的制约,另一部分还在于职业教育课程理论研究的不全面、不深入所致,因此重视和加强高等职业教育课程多元整合是提高高职职教课程开发质量的一个中心环节。

本文将以高职软件工程课程为例,将“任务驱动、项目导向、案例教学”多元整合的创新教学理念引领教学过程,强调动手能力,将工作过程的职业环境融入学习过程中,将学生对知识、职业能力的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中。

二、多元整合创新教学理念

软件工程课程涉及软件项目计划、软件需求分析、软件设计、软件测试、软件配置管理、软件项目管理等软件开发过程中的各种问题。浙江商业职业技术学院(以下简称“我院”)所在浙江省高新中小企业众多,发展主要依靠技术进步以及科技来推动,对人才的需求也明显高移。经调查发现,目前浙江省软件行业在软件设计、软件测试和软件维护方面的人才缺口大,供不应求。因此,我们将教学重点放在了软件设计、软件测试和软件维护方面。以一个典型、完整、实用的项目“学生选课管理系统”为载体,将软件工程项目开发中用到的各项工作技能按照工作过程分布阶段任务,将项目分解成一个个案例,以任务驱动的方式完成技能的案例教学,同时也体现了工作过程的完整性,将“任务驱动、项目导向、案例教学”多元整合的创新教学理念贯穿于教学过程。

(一)明确工作岗位,分析工作任务,任务驱动学习

任务驱动学习是让学生完成教师精心设计的培养职业能力的工作任务,构建真正属于自己的知识和技能,提高分析和解决问题的能力。如何确定软件工程课程的工作岗位和工作任务是进行任务驱动学习首先要解决的课题。

为此,我们邀请软件行业专家、专业教师参照国家相关职业标准一起分析、论证软件工程工作岗位的工作过程和技能要求。在进行分析论证过程中,根据我院所在浙江省高新中小企业发展实际,结合高职学生学习特点,将软件工程课程培养的人才方向定位在软件设计、软件测试和软件维护三个岗位。我们明确了这三个岗位的典型工作过程,并详细分析了典型工作过程中的典型工作任务。

1 软件设计岗位的典型工作过程主要包括软件项目计划、软件需求分析、软件设计阶段。这些工作过程的典型工作任务有:(1)软件项目计划包括:软件项目计划内容的描述;度量项目的成本、规模、工作量和开发周期;确定项目开发过程模型;制订软件项目计划;(2)软件需求分析包括:定义需求工程过程模型;采用UML获取项目需求;采用UML分析项目需求;编写项目需求规格说明书;(3)软件设计阶段包括:策划项目的设计阶段;应用设计模式,执行系统的架构设计。

2 软件测试岗位的典型工作过程主要是软件测试阶段。其典型工作任务包括:软件项目单元测试用例设计;执行软件项目单元测试;软件项目功能测试用例设计;执行软件项目功能测试;软件项目性能测试用例设计;执行软件项目性能测试;软件项目压力测试用例设计;执行软件项目压力测试。

3 软件维护岗位的典型工作过程主要包括软件配置阶段和软件项目管理阶段。这些工作过程的典型工作任务有:(1)软件配置阶段包括:创建软件项目配置管理计划;对软件项目实施版本控制;(2)软件项目管理阶段包括:对软件项目进行项目估算;对软件项目进行风险管理;对软件项目进行质量管理。

(二)设计教学项目,培养职业能力,项目导向教学

项目导向教学是指通过一项完整的项目工作而进行教学活动的教学方法,它以项目导向、任务驱动,引领教学过程,强调实训环节,将工作过程的职业环境融入学习过程中,将学生对知识的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中,使学生在学习过程中培养工作岗位职业能力。

我院软件工程课程定位的软件设计、软件测试和软件维护三个岗位有不同的职业能力要求,通过与专家分析论证,我们明确了三个岗位要培养的职业能力:

1 软件设计岗位。要求要培养的职业能力有:理解、实施软件项目计划的能力,编写、制定软件项目计划文档的能力;获取、分析软件项目需求的能力,编写软件项目需求分析文档的能力:理解项目数据模型、项目的架构设计的能力;编写软件项目设计规格说明书的能力。

2 软件测试岗位。要求要培养的职业能力有:设计和实施单元测试用例、功能测试用例、性能测试用例、压力测试用例的能力;撰写测试计划、报告的能力。

3 软件维护岗位。要求要培养的职业能力有:实施软件项目配置计划、管理的能力;实施软件版本控制的能力;估算项目成本、规模、进度的能力;预测、监控、计划、管理软件风险,实施软件质量保证计划的能力。

为了与岗位工作过程相适应,能够在项目教学过程中培养学生的职业能力,在设计教学项目的选择上我们从以下几个方面进行了探索:第一,项目必须包含上述岗位的基本工作过程,能够培养学生职业技能;第二,项目难度适中,符合高职学生的知识、技能结构特点;第三,项目开发周期相对较短,能够在教学时间内完成;第四,项目内容容易理解,贴近学生经验,以便学生集中精力完成软件工程工作过程的学习。

为此,我们精心设计了“学生选课管理系统”来进行项目教学,引入企业真实项目“网上书城”系统来进行模拟训练。这两个项目背景高职学生易理解、掌握和操作,并且包含了上述三个工作岗位职业能力。通过几个学年的教学实践发现,学生基本能掌握三个工作岗位的职业能力,并根据自己的兴趣有所侧重,完全达到了我们项目导向教学的目的。

(三)分解教学项目,激发学习兴趣,典型案例教学

案例教学实际上是一种“做中学”的形式,在经验和活动中获取知识和技能,增进才干。软件工程案例教学的实践反映出,案例选择是否合适、案例运用是否科学将直接影响到案例教学作用的发挥。

对于软件工程这样一门理论和实践都比较注重的课程来说,案例教学就显得特别重要。我们在案例教学中进行了以下探索和实践:第一,案例贴近学生生活,删繁就简,能适应课程教学时限要求;第二,案例有代表性和针对性,能基本涵盖基本的工作任务;第三,案例能让学生参与并易于模仿实践。如讲解软件项目计划时,针对学生选课管理系统这个项目,由老师描述项目计划应该要确定的内容,并引导学生分组讨论确定项目中角色一人员责任矩阵,利用甘特图等工具制订初步软件项目计划。这样学生不仅仅是去强记那些固定的原理、规则。学生通过案例更深刻地理解了工作过程中需要掌握的技能。

三、多元整合教学的探索与实践

任务驱动、项目导向、案例教学的教学方法各有特色,如何将这些教学方法整合在一个具体的教学项目中并让各种教学方法发挥其优点是我们要重点解决的问题。按照软件工程项目开发中典型的工作过程,我们将“学生选课管理系统”项目分解成一个个的小项目,每一个小项目对应着一个具体工作过程。对每一个小项目我们分成六个步骤进行项目教学:

第一步,确定每一个小项目的工作任务。不同的小项目对应的工作任务不同,有的工作任务比较独立、花费时间少,可以在—个教学单元中完成,我们称之为小任务;有的工作任务需要多个教学单元的综合实践才能完成,我们称之为大任务;在教学过程中,对大任务我们又将其分为若干小任务,并在各个小任务完成后进行分析总结,以便学生系统全面地掌握相应的职业能力。

第二步,教师进行案例场景描述,并通过典型案例演示项目中的具体任务。教师先对案例进行场景描述,让学生明白真实工作过程中这个小项目要做什么。然后通过典型案例的演示让学生体会到这个小项目要怎么做。

第三步,学生分组讨论,明确项目分工。软件的开发过程是一个团队合作的过程,将学生从成绩、性格、表达能力等方面进行分组,让不同的学生组合成一个团队进行项目的开发,既培养学生团队合作的精神,又让学生能发挥各自特长,调动学生积极性。在此步骤中,教师可以根据实际教学班组从整体上对团队的组合进行优化调整,对于一些比较难分工的项目,教师可以对团队进行指导,帮助团队进行分工。

第四步,学生根据不同分工完成典型案例的工作任务。通过项目分工,团队中每个学生有了明确的任务,可以根据教师典型案例的演示进行工作任务的模拟练习。通过这一步,让学生对工作过程和工作任务有真正的感性认识,有利于培养学生的职业能力。

测试团队工作计划范文第7篇

 

 

0引言

 

如今,软件产品被广泛应用于各个领域,如航空、机械、电子产品等,软件产品质量成为软件开发中重点关注的方向。在一些对于安全性要求较高的领域,对软件产品的质量要求更高。例如,在2011年温州发生的7.23动车追尾事故,导致212人伤亡;1996年阿里亚娜5型火箭发射39秒后爆炸,直接经济损失3.7亿美元;2002年首都机场电脑系统出现故障,导致6000多人滞留机场等。软件中存在的缺陷是造成这些严重后果的根源。因此,软件测试的重要性不言而喻。

 

传统的软件开发流程越来越无法满足当下软件需求的频繁变动,如传统的瀑布模型,测试人员在一定的控制点之前不能测试,所以在此之前无法找到缺陷。等到所有开发完成,即过了该控制点后再进行测试,缺陷数量会急剧增加,同时任何缺陷的修复都需要对一连串代码进行变动,修复时间难以确定,软件迟迟不能,损失将难以估量。

 

敏捷软件开发是基于一种更接近人类活动现实情况的方法论,采用以人为本、迭代、增量的开发过程,逐步满足软件不断变更的需求[1]。敏捷主要提倡个人为团队所作的贡献,注重各个职位的权利下发,发挥个人的主观能动性,保证随时都有可供交付的软件产品。敏捷开发更容易在项目早期控制缺陷数目。软件测试是保证软件质量与可靠性的重要手段,敏捷开发能充分发挥软件测试的重要作用。

 

1敏捷开发思想

 

敏捷开发是以用户的需求进化为核心,采用逐步迭代、循序渐进的方式进行软件开发。在敏捷开发模式中,软件项目在开发前,先将整体项目切分成多个子项目,迭代过程中根据需要可以对子项目进行拆分或同时进行多个子项目,每一个子项目都要经过测试,保证项目能运行成功。换言之,就是把一个大的软件项目分成许多小项目,每个项目独立完成,但相互之间又有联系,在该过程中软件始终处于可用状态。

 

敏捷开发本身更多的是一种概念,它是一种循序渐进的迭代开发方式,强调团队成员间的沟通。2001年,敏捷开发创始人了敏捷宣言:个体和交互胜过流程和工具,可用的软件胜过完备的文档,客户协作胜过合同谈判,响应变化胜过遵循计划[2]。也即,虽然后半部分的条目也具有价值,但是更看重前半部分的条目。他们希望这将成为成功的软件开发的基础。敏捷开发的方法很多,主要包括快速应用开发(RAD)[3]、极限编程(XP)[4]、动态系统开发方法(DSDM)[5]与Scrum[6]。本文构建的测试模型借鉴敏捷开发过程中的迭代思想,以渐进的方式完成测试工作,不仅可使测试工作具有更好的灵活性,同时也能更好地适用于现有的敏捷开发过程。

 

软件是一种非常特殊的产品,开发出的软件通常会存在一些缺陷,而有些缺陷会造成非常严重的损失。软件测试则成为保障软件质量的一种重要手段[7]。根据不同标准有多种测试方式,如集成测试、单元测试、系统测试、验收测试和回归测试。传统的V测试模型和W测试模型成为指导人们进行测试的方法,而不同于这两种测试模型的H模型,则强调测试的独立性。另外目前很多开发团队已经开始使用敏捷开发方式,敏捷开发方式非常注重客户的交互以及团队中的沟通,同时开发过程中会有许多迭代过程。本文提出的测试模型借鉴敏捷开发中的迭代思想,测试流程是一个渐进的过程。然而,即使有成功的敏捷开发方法,开发人员和测试人员依然要寻求最适合的敏捷方法,并将相关技术融入到自己的敏捷方法中。

 

2敏捷开发中的软件测试

 

2.1敏捷测试

 

敏捷测试没有已经确定的唯一定义,原有的测试定义“通过在规定条件下对程序进行操作,发现错误,衡量软件质量”仍然适用,核心思想可以理解为“遵循敏捷开发的宣言,接纳敏捷核心价值观,基于敏捷开发的软件测试”。敏捷开发宣言中提到敏捷开发的4个核心价值观:简明(Simplicity)、沟通(Communication)、反馈(Feedback)、勇气/决断(Courage)。符合敏捷核心价值观的测试实践活动都可以称为敏捷测试,敏捷不仅是一种过程,更多的是一种理念[8]。

 

2.2敏捷测试方法

 

图1为敏捷开发测试流程,此流程是一个结合了Scrum和XP方法,并加上一些基于计划性流程原则后的产物。虚线箭头两端是开发过程中与软件测试相关的部分,敏捷开发的测试人员全程参与完整的迭代开发。

 

(1)需求分析:测试工程师可以根据测试经验以及需求的测试难度对需求列表提出问题或意见,以期团队能共同提供建议或方案,在之后的实际测试过程中有助于提高测试效率。

 

(2)迭代计划:包括对需求的详细分析以及任务表等,软件工程师和测试工程师对需求进行讨论。

 

(3)迭代启动会议:项目经理、产品经理、软件工程师、测试工程师对此代计划进行讨论、完善。

 

(4)测试计划:测试工程师根据需求以及测试经验完成详细的测试计划书,团队对测试计划进行研讨并确认验收测试。

 

(5)测试驱动开发:测试工程师相当于软件的第一批用户,测试过程中要重视反馈,这也是敏捷开发的原则之一。

 

(6)验收测试:测试工程师对此次迭代的所有功能进行演示,测试产品功能是否合格。如果产品合格,则此次验收通过,可以进入下一环;如果产品不合格,则此次验收失败,重新返回开发阶段,找出失败的原因及bug并解决,并确认下一次验收测试。

 

(7)提交与验证:由测试工程师为产品负责人与参与项目的人进行演示,包括此次迭代的主要功能、产生的未解决bug,然后由产品负责人核准迭代成功。

 

(8)迭代后的研讨:对此次迭代过程中产生的问题进行讨论,对于亮点可以进行表扬,错误要分析原因。

 

从流程图和测试人员参与项目的简单描述中,可以总结出敏捷测试的方法主要有两种:与传统软件测试相似的测试和测试驱动开发(TDD,Test-DrivenDevelopment)。

 

图2展示的是测试驱动开发流程,开发人员在编写产品代码之前,要先编写单元测试代码,在进行单元测试后才能进行产品代码的编写,以保证产品代码能完全符合要求。产品代码编写完成后进行单元测试和集成测试,测试代码和产品代码都要进行代码审查,保证代码的简洁、统一,方便以后维护。在敏捷测试中,测试驱动开发的重要目的不仅仅是测试软件,同时在开发过程中帮助客户和程序员确定需求。测试驱动开发应该运用于每一个迭代中,逐步开发完成所有软件功能。

 

传统软件测试的种类非常多,在敏捷测试中应当根据当前迭代的需求进行测试[9]。某车削软件有这样一个需求,能支持直径40mm的刀具路径生成。该需求一定配备了相应的刀具路径生成方法,然后只需确定刀路生成中的一些参数,然后设计数量足够的不同表面形态的圆面即可。由于TestPart数量过多,可能会用到自动化测试,也有可能会用到一些特殊的TestPart,如圆面面型变化大,甚至不是圆面等。迭代最后一定有整体的性能测试,在整个项目进行过程中,传统的软件测试方法同样适用于敏捷开发。

 

2.3敏捷测试特点

 

在瀑布开发模式中,要求流程规范、文档齐全,测试进行时再根据软件需求总结、测试所有功能点,直到软件中没有明显bug。在传统的软件测试开始时,软件的缺陷会达到顶点,同时如果有需求变化,则需要重新编写文档,可能必须将之前的工作推翻重来,费时费力。而在敏捷测试中,一切都发生了改变。

 

敏捷开发模式中测试不是一个单独阶段,它和编码一样是软件开发的重要组成部分。敏捷开发使用一个“完整团队”的方法来保证软件产品质量。敏捷团队中的测试人员从客户需求中提炼要求,然后与开发团队合作,把这些要求变成可执行的规范,用于指导代码编写。随着测试和编码的逐渐进行与交互,将建立一些产品特性,直到提供足够的产品价值。

 

敏捷测试包括以下几个主要特点:①周期性的迭代开发方式。不同于传统测试的一次性集成或功能测试,敏捷测试在迭代进行过程中要通过及时响应客户反馈来修正软件测试策略,以此修正软件的质量指标;②每日立会,密切沟通。传统测试提供了大量文档描述产品需求,并通过文档进行测试。敏捷测试则需要团队每天进行交流,测试人员与客户持续沟通,以保证产品质量符合客户预期,并与开发人员沟通来确定需求认识的统一;③测试方法多样,贯穿整个项目开发过程。敏捷测试包括测试人员对软件的自动化测试、集成测试、功能测试等,还包括开发人员对代码的单元测试、代码评审等工作,从最底层和基础的测试来保证软件整体质量;④确保客户需求圆满实现。客户需求是敏捷开发中最核心的内容,敏捷测试同样需围绕客户需求实现。

 

2.4敏捷测试优势

 

目前大多数软件项目的共同特点是用户需求变化快、风险高,同时还能快速抢占市场,这刚好是敏捷开发能够解决的。

 

(1)良好的持续沟通可减少缺陷产生,降低风险。在敏捷开发模式下,测试人员的沟通尤为重要。一个迭代从开始到结束,测试人员都需要参与。迭代开始时,所有人都要对该阶段软件的成型有统一认识,满足用户需求的同时还要符合一次迭代的时间要求;迭代进行中,测试对开发人员的反馈非常重要,软件开发初期,测试工具十分缺乏,对测试工作的进行造成很大阻碍,这时需要和开发人员持续沟通,必要时可共同开发一些辅助测试工具,在此期间要把握好迭代进行的时间;迭代后期,也可以作为bug反馈期,测试人员不但要站在用户角度考虑需求,同时能和开发人员站在技术角度讨论问题,达到沟通的目的。

 

(2)合理的测试用例。敏捷最直接的特点就是快速,如果涉及的用例粒度太细,很难开展敏捷测试。一个合理的测试用例不仅能包含所有可能产生缺陷的地方,同时还能快速地响应需求变化。

 

(3)更多人参与测试。敏捷测试中的测试人员不再是一个独立的测试个体,研发人员、产品负责人、用户都可以参与测试。研发人员的测试可以减少编程中的bug,产品负责人的测试可以更好、更全面地把握产品现状,用户的测试则可以提供来自真正用户的反馈,以更好地促进软件开发。

 

3敏捷开发中的软件测试实例

 

本章结合一个具体的软件项目,详细介绍项目中的敏捷测试。

 

3.1项目介绍

 

针对3轴超精密加工车床,提供针对光学自由曲面进行加工的刀路轨迹计算的CAM(ComputerAidedManufacturing,计算机辅助制造)软件。该软件的目标是比UGNX中的相同功能有更快的计算速度和更高的精度。

 

3.2需求分析和项目规划阶段

 

项目经理和产品经理根据客户给定的需求进行分类,包括框架、加工方式、加工质量、刀具选择、仿真等需求,并对项目可能产生的需求进行判断和规划,形成项目计划书。项目计划书包括项目背景、、需求以及预期完成时间。项目计划书完成之后即可开始进行第一个迭代,并以第一个迭代为基础不断进行下去,直到完成所有需求。由于整体项目过于庞大,这里只对第一个迭代进行介绍。

 

项目实例:第一个迭代中有2个需求,同时根据工作量分配任务天数以及每个需求的参与人员,如表1所示。

 

3.3迭代进行阶段

 

迭代开始时,项目经理制定迭代的具体开发任务和测试任务。在迭代启动会议中,每个人都要对此次迭代任务有统一认识,并且能够承载相应的任务量,在需求确定完毕后进行任务分配。

 

.

 

开发人员进行编码时,测试人员的工作重点包括:编写测试计划、测试用例、验收测试以及提交和验证。测试计划和测试用例的编写同时完成,且在迭代初期完成。验收测试一般是在迭代后期进行集成测试,迭代过程中也可以协助开发人员进行单独的功能测试。

 

3.3.1编写测试计划和测试用例

 

测试计划需要具体的操作步骤以及相对完善的测试用例来涵盖需求,因此需要测试人员有比较丰富的测试经验。

 

项目实例如下:

 

表2和表3中的TestParts需要填写测试工件名称。测试计划编写完成后要经过开发人员和项目经理确认,保证开发人员认同并能够达到计划的目标。敏捷开发是不断迭代的过程,对于一些比较简单的功能,尽量设计简洁的测试用例。如果TestParts比较多,可以采用自动化测试,而对于一些比较复杂的功能,可以先采用手动测试,在功能更加完善后再考虑自动化测试。

 

3.3.2验收测试

 

验收测试要严格按照迭代前期写好的测试计划进行,在开发人员开发完此次迭代所有功能后,测试人员对所有功能进行集成测试、功能测试、自动化测试等,完成所有测试工作后形成测试报告。报告内容包括此次迭代基本功能完成情况、缺陷产生情况以及测试过程中的一些详细数据。

 

3.3.3提交和验证

 

团队全体成员参加验收会议,由测试工程师对迭代成果进行演示,产品经理和项目经理进行验收,项目需求全部完成则此次迭代成功,然后再对此次迭代中的不足之处进行讨论和改进,或者提出创新之处。如果项目需求未达标,或产生了过多缺陷,则此次迭代不予通过,全员讨论延后验收或将缺陷完善延后到下一个迭代。

 

项目实例:针对需求R1、R2的基本功能测试达到了计划的标准,框架的视图操作和显示功能以及CAD模型输入功能均正常运行且无缺陷。虽然框架本身存在一些缺陷,仍能满足迭代的基本需求。经过讨论此次迭代成功,产生的bug在下一个迭代进行完善。

 

3.4迭代后研讨和下一次迭代讨论

 

迭代完成后要对迭代过程进行回顾,测试人员需要对bug进行总结,包括测试过程中产生的问题,以及需要改进的地方,然后对下一次迭代的需求进行初步讨论,决定下一个周期的工作内容。

 

4结语

 

敏捷开发中的软件测试应当遵循敏捷开发的基本原则,面对不同的开发方法和应用环境,软件测试方法也不同。敏捷测试作为从敏捷开发中成长起来的测试方法,与敏捷过程密不可分,本文对敏捷开发中的软件测试特点和方法进行了详细描述。然而,真正在面对软件测试时,测试用例的生成与覆盖标准、测试的充分性和有效性、不同阶段的测试关系等,以及如何将传统测试中的一些方法应用到敏捷测试中,需要探讨的问题及方法仍然很多。

测试团队工作计划范文第8篇

关键词:敏捷管理;软件开发;应用

随着信息技术的发展,用户对软件的需求也逐渐提高,这就对软件开发者提出了更高的要求。由于传统软件开发理论的不足,软件开发一般耗时较长,用户从中的收益较小,而敏捷管理方法以实践为基础,为软件开发提供了新的思路,充分提高了软件的适应性,有效地满足了用户的需求。

一、敏捷管理方法概述

软件开发的难度随着用户的需求在逐步提高,市场竞争的激烈化也刺激着软件开发者必须使用新的软件工程管理理论。目前,敏捷管理方法包括极限编程、自适应软件开发等,这些方法都以用户的需求为中心,减少了所需要的文档,提高了软件的灵活性。敏捷软件开发主要有一下几条原则:要尽早、持续地交付有价值的软件供用户使用;即使到了开发后期也能够满足客户的需求,为客户的利益着想;经常性的交付可工作的软件;在软件开发期间,开发人员要和业务人员积极沟通;为软件开发者提供他们所需要的环境,给予充足的支持;在开发团队内部,要面对面的交流,以提高信息传递效率;软件开发必须保证可持续的、恒定的开发速度;积极关注技能的创新;从最简的工作开设等。这些原则涵盖了敏捷管理的核心思想,颠覆了传统的重载软件的过程,显示了以人为本、以技术为支持、注重实效的思想,国内外的实践也证明了敏捷管理方法在软件开发中的重要作用。与传统的管理方法比较,敏捷管理主要有以下几个优点:

①较强的灵活性。敏捷管理方法较为灵活,以现有的事物为基本管理职责,由市场驱动竞争力的储备,能够有效地满足用户需求的变化。

②错误率低。敏捷管理方法将设计工作与编码工作融合到了一起,能够及时发现错误。

③项目风险较低。敏捷管理方法提高了有价值、可运行软件的速度,使用户能够尽早地使用软件。

④能够提高人员的能动性。敏捷管理为员工提供了充足的资源,对客户的个性需求有较强的应对能力。⑤降低了成本。敏捷管理方法降低了文档的维护成本,面对面的信息交流也较低了交流成本,同时轻快开发过程也降低了时间成本。

二、敏捷管理方法在软件开发中的应用

1、团队管理

软件开发不是由个人单枪匹马就能够完成的,它需要团队的合作,因此,“以人为本”是团队管理的基本原则。团队管理需要以项目为中心,为开发人员提供必要的环境和技术支持,同时还要给予积极的鼓励。一方面,要“恩威并济”。团队管理需要融入一定的纪律,保证软件开发的标准性,同时也要容忍一定的个体变化。在传统的管理方法中,严格的纪律保证了很多行业的高生产力,但在软件开发中,如果项目负责人单从自身的角度出发制定严格的标准,而忽视了员工的独特思想,则很可能造成很多不利的影响。另一方面,促进团队合作。敏捷软件开发需要促进人与和人之间、小组和小组之间的合作,不再以命令的形式调节他们之间的关系,而是以互信为基础。第三,提高开发人员的荣誉感。团队管理的困难之一在于提供适应性强的奖励机制,如果单纯以奖金的形式进行奖励,长时间也会影响团队的动力,因此,需要以更好的形式激励团队。为员工提供一定的荣誉感,能够让员工真实感受到自己劳动成果的价值,能够更加有效地激发员工的主动性、积极性和创造性。第四,提高信息的反馈效率。敏捷管理方法较为灵活,但评估起来较为困难。国内外的实践表明,在管理过程中实施积极的、经常性的反馈,并认真分析评估反馈结果能够及时地、清楚地了解团队的精神状态和项目进展情况,从而为项目负责人优化管理方法提供了科学的参考。反馈方法较多,如检测用户故事的完成数、验收测试通过率等,另外也包括每周的评估等。启动团队是软件项目开发的重要步骤,每一个团队的启动都需要一定的时间和过程,是工作关系的构建,只有做好启动团队工作才能够有效地促进项目开发目标的实现,确定团队和员工的工作目标。一般的,从组建团队开始,调查员工的基本情况,如工作能力、人际关系等,然后分配责任,最后在启动项目前,召开团队会议,制定团队目标、做动员等。

2、开发管理

在敏捷软件管理中,多以迭代开发为主,但对管理人员的缺乏可操作性的指导,同时也缺少开发方法的阐述,缺少了单元测试、验收测试。由于项目团队的规模、人员构成、项目目标等方面的不同,软件开发项目没有统一的开发策略,只有结合具体情况制定开发策略才能够满足实际的需要。敏捷管理方法指导下的开发策略需要注意以下几个问题:第一,努力实现软件的可运行。从阶段性设计看,可运行的软件代表了团队的开发成果,为团队带来了成就感和信心;从用户的角度出发,只有给用户展示了可运行的软件才能够让他们真实地看到自己的需求是否得到了满足。第二,制定周密的开发计划。传统的软件开发在项目进度方面的掌握程度较低,系统正式完成的时间不确定,因此,敏捷开发要求将开发进度可衡量化,将每一个任务制定一定的点数,将所有任务的点数相加就是本次开发所需要的工作量,用所完成的任务点数比上总任务点数就是开发进度百分比。第三,尽量减少文档的数量。在开发时要根据实际需要增减文档的制定,降低项目的风险。第四,加强交流。敏捷开发要求开发成员之间要加强交流,保证数据采集、团队合作、软件设计的效率。第五,积极考虑客户的需要。敏捷开发要积极满足用户的需要,让用户直接参与软件开发的过程中,让客户亲临现场,与其探讨软件开发中的各种问题,提高软件的实用性。

3、需求管理

需求管理以掌握用户对软件的需求为目的,是项目启动的第一步,是一支指挥棒,以灵活的变动将“用户故事”和“现场客户”结合起来,表达了用户真正的、迫切的需求。“用户故事”是一种较为简单的搜集客户需求的新方式,独立表达了用户的需求,用户可以随时删除也可以随时加入,是一种概述性的描述;“现场客户”是指让用户代表亲临开发现场给予指导。用户故事与现场客户两种方法的结合,让客户对团队开发软件的细节有更加深入地了解,同时也能够给予必要的指导,节省了交流时间,提高了开发的效率。

4、规划

在对用户故事进行轻重排列后,从业务和技术方面逐一制定实现计划。在业务方面要积极考虑业务价值加大的用户故事;在技术方面,技术小组从技术难度及风险的角度出发,划分功能区,要将所存在的问题说明给客户,让客户做出选择。

5、迭代规划

敏捷开发要求尽可能为客户提供可工作的软件,因此,要尽量缩短迭代的周期,一般为1~4周。迭代的优先级由技术组确定,但其价值又客户决定。在第一次迭代中,小组要建立基本的开发设施,另外,要避免技术迭代,减少耗时。对团队开发来说,在历经几个月甚至几年的时间才有所突破,每一次的迭代都是一次成就,是一种较好地员工激励形式。

6、任务分配

在客户将用户故事提出后,开发团队商讨如何分界为几个任务,然后分配给开发人员。第一步,客户提出用户故事。客户将用户故事宣布告知给开发团队,团队成员可以提出问题,以充分理解客户故事。第二,讨论任务。开发团队在讨论过后将用户故事分成多个任务,做好接受任务的准备。第三,选定任务。团队成员选定合适的任务,做好估算工作。

7、软件设计管理

在敏捷设计中,迭代开发的过程要力求减少文档,另外,敏捷管理要努力实现全局视图和软件源代码一起演化,从当前的系统需求出发构建所需的基础结构,保持结构的简洁、干净,病富有表现力,同时还要提高其灵活性。在分配给开发人员任务之后,要测试代码,提高源代码的质量,让开发人员有更加充足的信心,同时,测试也能够迫使程序员从不同的角度观察所要编写的程序。软件开发都是由结对的程序员使用同一台电脑实现的,由一位出入代码,另一外观察代码及其需要改进的地方,两者可以交换角色,最后所生成的代码成果由两人共享。结对关系每天至少要改变一次,以减少两者的压力,提高编码质量,同时也能够促进他们编码技术的提高。

8、跟踪

跟踪能够让程序员、客户及管理者明确工作进度、质量等问题,同时也能够发现潜在的问题等。一方面,要跟踪资源,即计划和实际的对比、团队成员的人数、客户参与次数、测试人员数量、参与开发的计算机数量等,这些是软件开发的必要条件。另一方面,跟踪范围,即跟踪故事的变化情况。第三,跟踪质量,即测试表所显示的通过测试数及未通过测试数。第四,跟踪团队成员,即观察开发成员的问题、开发成员之间人际关系问题,看其是否全身心地投入等。

9、测试验收管理

当一个迭代完成后,用户会与团队商议下一步的需求。测试验收过程中,越早的发现问题,就能够缩短程序投入运行所需的时间,期间,客户需要提供验收测试,所提供的测试越多,项目进展速度就越快,价值也就越高。客户可以通过制定的形式采集所需要的素材,通过自动的脚本根据客户的需求运转。一旦某项测试通过需求,则决不允许该测试再次失败,随着测试的不断累积会形成一个测试集合,它能够测试系统的运行,一旦测试失败,系统的创建也就失败。因此,要保证需求的实现,避免其遭到破坏。

三、结语

敏捷管理方法渗透于整个软件开发过程中,是一个长期的信息构建原则,而不是某一个独立的事件它,适应了复杂软件开发的要求,同时也适应了软件技术发展的需要。随着客户对软件要求的不断提高,敏捷开发适应了复杂的环境,并且尽可能地保持软件开发的简单化和系统化,适合团队型的开发项目,它能够及时反馈信息,有效提高客户的满意度,也能够保证系统的质量。

参考文献:

[1]沈成莉.敏捷项目管理在软件开发中的实践应用[D].复旦大学2009

[2]唐俐威.软件开发的敏捷管理方法应用研究[D].哈尔滨工业大学2006

测试团队工作计划范文第9篇

(中国人民银行南京分行营业管理部,江苏 南京 210000)

【摘要】敏捷开发可以应对客户快速变化的需求,它强调以人为核心、采用迭代的方式、循序渐进地开发软件。笔者所在的政府机关小型开发团队近年来对敏捷开发方法有选择地进行了应用,在测试驱动开发、小版本、任务投票等方面取得了一些经验。

关键词 敏捷开发;政府机关;应用

作者简介:邱明明(1982—),男,汉族,江苏阜宁人,硕士,中国人民银行南京分行营业管理部副主任科员。

1敏捷开发的出现和特点

1.1敏捷开发的出现

传统的软件开发方法定义的过程往往大而笨重,降低了软件开发团队的开发效率和响应变化能力,形成了过程膨胀即“过程泥潭”。2001年初,由于看到许多公司的软件开发团队陷入了过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则:个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划,这就是“敏捷宣言”。

敏捷开发的方法很多,有极限编程、Scrum、特征驱动开发、自适应软件开发等。敏捷开发可以应对客户快速变化的需求,它强调以人为核心、采用迭代的方式、循序渐进地开发软件。在敏捷开发中,软件项目被切分成多个子项目,各个子项目的成果都经过测试并可以随时投入运行。敏捷开发要求项目团队全体成员之间形成更加有效的合作关系,使其灵活性更高,以适应不断变化的需求。

1.2敏捷开发的特点

与传统的软件开发方法相比,敏捷开发主要有两个特点。

1.2.1敏捷开发是面向人的而不是面向过程的

敏捷开发认为,人是软件开发中最重要的因素,而且人工作的环境很复杂。它强调软件开发应当是一项令人愉悦的活动,因此更加注重调动人的积极性、主动性和创造性,并培养人在工作中的自豪感。敏捷开发的理念就是信任项目团队能够很好地完成任务,所有的管理都是围绕这个理念展开的。敏捷开发的目的是建立起一个项目团队(包括客户、需求分析人员、设计人员、开发人员、测试人员等多种角色)全员参与到软件开发中。只有这样,软件开发流程才能在项目团队中得到最广泛的接受。敏捷开发还要求开发人员在技术上进行自主决策,因为开发人员是最了解什么样的技术是需要或不需要的。

1.2.2敏捷开发是“主动适应的”而不是“预先设定的”

传统的软件开发方法试图对一个软件项目在很长的时间跨度内做出详细的计划,并形成详细的文档,然后依照计划进行开发。这类方法在计划制定完成后往往拒绝变化,后期的需求变化将会花费极大的代价。敏捷开发则乐于迎接变化,其实,它的目的就是成为更适应变化的软件开发流程。

据统计,很多软件产品提供的功能中,客户常用的功能只占20%左右,其他大部分功能是客户很少使用甚至基本不用的。在这种情况下,采用传统的软件开发方法所设计出的功能,其实很多是不必要的,也将浪费很多资源。敏捷开发则要求客户始终参与整个开发过程,这使得项目团队可以不断地获得客户反馈,不断地适应需求的变更,从而使最终的产品充分符合客户的要求,也极大地减少了资源的浪费。

2敏捷开发在政府机关的应用探讨

由于条件所限,笔者所在的政府机关从事软件开发的技术人员较少且大多不是专职,往往身兼系统运维、科技管理等其他工作,因此政府机关的软件开发往往具有团队规模微型化、开发时间碎片化、项目文档简单化等特点,瀑布模型、RUP等传统的软件开发方法已不能适应政府单位软件开发的需要。笔者所在的小型开发团队近年来对敏捷开发方法有选择地进行了应用,在测试驱动开发、小版本、任务投票等方面取得了一些经验。

2.1测试驱动开发

作为敏捷开发最重要的组成部分,测试驱动开发要求实现的每一个业务功能都是从测试开始。开发人员首先对需求进行分析,将需求分解为一个个用户故事,然后根据用户故事,从需求的角度来编写测试代码(主要是单元测试、功能测试),最后依据测试代码来编写业务功能代码。

如果没有测试代码,就不能编写业务功能代码。先写测试代码,能够让开发人员明确目标,就是业务功能代码通过测试。当然通过测试并不是结束,测试覆盖率分析工具还可以直观地显示测试未覆盖到的业务功能代码。在测试没有100%覆盖业务功能代码之前,尽快完善测试代码显得十分必要。

测试驱动开发还方便了代码的重构。重构是在不改变系统外部行为的前提下,对程序代码的内部结构进行整理优化,使得代码尽量简单、易读、可扩展。值得注意的是,敏捷开发中的重构对代码的每一次改变要尽可能小,并用单元测试来验证重构是否引起冲突,并且要求不仅对业务功能代码进行重构,如果测试代码中有重复,也要对它进行重构。

刚开始推行测试驱动开发时,我们的开发人员觉得花费了不少时间在编写测试代码上,项目开发进度不是很快,还不如多花些时间在编写业务功能代码上。不过随着项目开发的不断深入,开发人员发现如果一个业务功能的测试代码写的比较完善,业务功能代码往往不容易出现缺陷,开发人员花在缺陷修复上面的时间比较少,在对代码进行重构时也很容易验证。

2.2小版本

在敏捷开发中,不会出现拿到客户需求以后就闭门造车,直到项目开发完成了绝大部分甚至最后才将产品交付给客户的情况,而是多次小版本产品。这样,客户每隔一段时间就会拿到的小版本产品进行试用,项目团队就可以从客户那里得到更多的反馈来改进产品。

在推行小版本后,很多时候我们发现客户提出的需求往往不那么全面,一些新的需求往往是在试用的小版本产品后才反馈给项目团队。因此,小版本在一定程度上有利于发现新的需求。而对于开发人员,正因为多次小版本产品,每一个版本新增的功能简单清晰,不需要很复杂的设计,也在很大程度上简化了设计。

2.3任务投票

在敏捷开发中,每次迭代都要求项目团队在一次迭代期间(一般两到四周)内,完成本次迭代计划里的任务。此时,选择哪些任务加入本次迭代计划需要项目团队的全体成员投票决定。

在投票会议上,项目管理人员列出下一步需要完成的任务,要求项目团队的每个成员对每个任务完成所需要的时间进行现场投票。如果出现不同成员投票结果相差很大的情况,项目管理人员要求相关成员说出理由,再由全体成员商量决定该任务完成所需要的时间。在确定每个任务完成所需要的时间后,项目管理人员根据本次迭代的截止时间要求,选择合适的任务加入本次迭代计划,保证迭代计划里的所有任务完成需要的总时间不能超过项目团队全体成员可用于开发的时间。

在推行任务投票时,我们的开发人员对于一个任务完成所需要的时间进行投票,往往会出现投票结果相差很大的情况。这主要是因为每个开发人员的经验和能力存在一定的差异,对一个任务完成所需要的时间会从自己的角度做出估计。敏捷开发要求,不管是哪个开发人员都要尽可能在项目团队全体成员投票决定的时间内完成该任务。在完成任务的过程中,开发人员充分调动了自身的积极性、主动性和创造性,也培养了在工作中的成就感和自豪感。

3需要改进的地方

测试团队工作计划范文第10篇

【关键词】Scrum 敏捷开发方法 软件开发 实训教学 应用

【中图分类号】 G 【文献标识码】 A

【文章编号】0450-9889(2014)12C-0059-03

一、问题的提出

1970年温斯顿・罗伊斯在软件开发中提出了著名的“瀑布模型”。该模型将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本阶段,各阶段工作必须按次序自上而下开展,每个阶段要撰写大量文档,并对工作结果进行严格验证,只有上一阶段工作结束,才能开启下一阶段工作。这种开发模式应对上世纪60年代出现的软件危机问题,是一种很好的解决方案,成为了软件开发模型的经典。

当前,随着软件开发技术的进步,人们发现“瀑布模型”灵活性差,不适用于需求不明确的软件项目,很多软件企业已不再使用“瀑布模型”,但它作为软件开发模型的经典仍广泛应用在高校软件开发实训课堂中。实际上,应用“瀑布模型”进行教学的高校计算机软件开发相关专业学生毕业时的动手能力远远达不到企业的要求,这说明该教学方法和实训模式存在问题。为了提高学生实践能力,很多高校与计算机软件开发培训机构或企业进行联合办学,以弥补学校实训教学能力的不足。

二、“瀑布模型”实训教学存在的问题

应用“瀑布模型”进行的实训教学中主要存在如下问题:

首先,学生把握项目需求的能力差,难以达到“瀑布模型”对开发者的要求。“瀑布模型”适用于需求明确的项目,要求开发者具有很强的整体把握能力和前瞻性。但是对于初学开发的学生来说,需求再明确的项目,他们也不能很准确地把握细节,导致实训进程不能按计划正常开展,影响了实训效果。在实际教学中,虽然很多实训项目在以往的教材中有类似的解决方案,但是区别还是存在的,学生看不到软件在实际应用中可能出现的问题,到了项目开发后期才发现错误,导致实训项目失败。

其次,在“瀑布模型”开发的每一个阶段,都要求撰写细致准确的文档,这大大占用了学生的实训时间。据统计,如果严格按瀑布模型的要求来撰写文档,消耗的时间至少是整个实训时间的1/5。本来实训课堂留给学生实训的时间就不多,对一些效率低的学生来说,文档还没写完实训期就结束了,整个实训过程变成了纸上谈兵的演练。

最后,“瀑布模型”实训方式过时,学生不能学以致用,实训技能与企业要求脱节。当今的软件开发中,已经很难看见完全实施“瀑布模型”的企业,大家都已对“瀑布模型”进行了改进或者实施其他更先进的开发方法。教育部曾多次指出,高校教育应服务地方和行业,密切与行业、企业合作,为企业提供人才培养和技术服务支撑。这要求我们必须改革过时的实训模式,使教学与行业结合,与企业接轨。

三、Scrum敏捷开发方法概述

近年来,很多先进的软件开发模型在实际应用中得到了推广,这里要特别提出的是敏捷开发。著名IT组织VersionOne在2013年进行的敏捷现状调查结果显示,在全世界收集的3501份调查报告中,使用敏捷开发方法的占88%,其中使用Scrum敏捷开发方法或Scrum变种开发方法的占73%。这个调查数据充分说明了敏捷开发方法在行业中的主导地位。

敏捷开发(Agile development)是一种以人为核心、迭代、循序渐进的开发方法,它把项目分割分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。敏捷开发方法包括Scrum、Crystal和极限编程(XP)等,是一组开发方法的总称。它也是软件开发的一个过程管理框架,遵循了敏捷开发的主要价值观:个人与交互重于开发过程与工具;可用的软件重于面面俱到的文档;与客户的合作重于对合同的谈判;响应变化胜过遵循计划。

Scrum敏捷开发过程是迭代的增量开发,整个开发过程由若干个短周期的迭代组成,每一个迭代周期称为Sprint(冲刺),每个迭代实现不同的特性,迭代中重大的、优先级高或风险高的特性优先实现。Scrum敏捷开发方法重视软件的可用性,强调与客户的沟通,开发过程能够快速响应用户需求变更,尽早处理风险问题。

四、Scrum敏捷开发方法在软件开发实训教学中的优势

相对于“瀑布模型”,Scrum敏捷开发方法具有更多适合软件开发实训教学的优势,主要表现在如下方面:

第一,能够快速响应需求变更。与实际开发相似,学生的实训项目都是在重复多次的修正需求、修改设计后才交付实现的。Scrum敏捷开发方法中的Sprint都很小,即使需求变更很大,也可以在短时间内修改设计完成开发。而“瀑布模型”希望需求是稳定的,但不变只是愿望,变化才是永恒。如果在软件设计后期提出需求变更,那会是一种灾难。这种影响小则使实训进度不可控,重则导致实训项目失败。

第二,Scrum敏捷开发方法要求尽早编码,尽快开发出系统原型,尽早使客户见到可运行的软件,暴露项目的技术风险,从而提出优化意见。这恰好迎合了学生开发实训时急切渴望进行编程实现的心理,激发了学生学习的积极性。而“瀑布模型”要求推迟实现,要尽可能把需求分析透彻,设计完整,完成文档编写后才能进行编码实现。这个过程对急切渴望编程的学生无疑是一种打击。

第三,Scrum敏捷开发方法不要求文档面面俱到,更注重于软件可用性设计。在敏捷开发中,很多文档只是一个草图,大部分文档在集成测试阶段产生,而且只写有必要的文档。所以实训团队不需要安排专人撰写完备的开发文档,从而使学生有时间专注于开发实训工作。

第四,Scrum敏捷开发方法能更全面地培养学生的软件开发技能。在Scrum项目中,每个开发成员主动认领开发任务,开发过程涉及的设计、编码和单元测试全部是个人独立完成,实际上一个人承担了传统开发模式中系统架构师、程序员、测试员和产品构建经理等角色工作。这种实训方式有助于提升学生软件开发的单兵作战能力,从而快速适应企业软件开发工作的各个环节。

五、Scrum敏捷开发方法在软件开发实训教学中的实施

综上所述,在软件开发实训教学中使用Scrum敏捷开发方法,可以更好地促进教学,提高学生实践能力,实现教学与行业结合,与企业接轨。具体实施方法如下:

(一)组建开发团队,实行双教师教学

在实训中,可将教师和学生按Scrum敏捷团队角色分组,主要有以下三类角色:一是Product Owner(产品负责人)。该角色可安排熟悉产品需求的教师承担,负责产品需求的提炼、条目化和优先级排序。二是Scrum Master(团队负责人)。该角色可安排熟悉Scrum开发流程的教师承担,负责整个Scrum团队的协作运行,并协作解决非技术问题。三是Team团队成员。Team团队由Team小组长和3~5名小组成员组成。小组长由开发能力较强的学生担任,其他成员根据开发能力强弱穿插分配。每班学生可分为若干个Team团队,每个开发实训项目由一个或多个开发小组的学生在老师指导下完成开发任务。

在实训开发课堂中,之所以要实行双教师教学,一是开发团队角色需要,二是为了让教师能在实训过程中相互讨论,取长补短,弥补高校教师在实践经验上的不足,提高实训教学的整体质量。

(二)约定开发规范,精简开发流程

实训开始前,开发团队应约定统一的开发规范和流程,以便学生掌握团队开发方法,并养成良好的编码习惯。图1为经过精简的Scrum实训开发过程模型。

图1 Scrum开发过程模型

图1是Scrum开发的一个迭代周期。其中,Product Backlog为软件产品总的需求条目,这些需求多以用户故事(User story)的形式展现,Product Owned负责维护;Sprint Backlog是Product Backlog的一部分,通过计划会议(Planning Meeting)讨论选定,是需要在当前迭代(Sprint)中完成的需求条目;圆环为迭代开发(Sprint)的过程,一般周期为2~4周,迭代过程包含分析―设计―实现―测试等工作。迭代开发过程中,Team成员每天进行15分钟的站立会议(Daily meeting),主要汇报昨天做了什么、今天要做什么和遇到了什么问题。Scrum master每天负责绘制任务燃尽图(Burn Down Chart),以曲线展现当前Sprint任务的剩余量,这对团队开发有很大的鼓舞作用。每一次迭代开发完成后,教师要组织Team团队成员召开评审会议(Review Meeting),一个可执行的软件版本(Release),并让相关人员和团队成员提出优化意见。

(三)结对编程,以强带弱,相互促进

学生的学习能力和实践能力是强弱不一的。在实训过程中,教师的指导作用固然重要,但师生间的沟通往往没有学生间的沟通那么自如。因此,可以安排一个能力强的学生与一个能力弱的学生结对编程,充分发挥先进学生的带头作用,让后进学生有机会学习别人优秀的学习方法和实践经验,互相监督,互相促进,最终实现实训目标。

(四)持续集成,交换测试

在我们的实训中,并没有设立专门的软件测试小组,开发团队只是对软件进行了简单的单元测试。如果整个项目都要等到软件开发后期才进行集成测试,项目失败的风险就会很高。Scrum要求团队开发要尽可能频繁地进行集成测试,也就是持续集成。持续集成可以尽可能快地发现集成错误,通常每个成员每天至少集成一次,也可能进行多次集成。每次集成都通过自动化的构建(包括编译、、自动化测试)来验证,减少开发团队进行集成测试的时间消耗。实践基础好的团队可尝试实施测试驱动开发(TDD),即先编写测试代码,后编写功能代码,用测试代码驱动功能开发,这可以降低自动化测试的出错率,提高软件运行质量。如要进行人工测试,可安排各个开发团队进行交换测试,因为他人测试比自己测试更容易发现软件存在的错误。 (下转第87页)(上接第60页)

总之,Scrum敏捷开发方法是一种新兴的软件开发方法,很多实践方法和理论还在不断地研究中。实训教学终究是以传授技能为主,不需要拘泥于Scrum开发的全部形式,教师可对Scrum开发方法进行修剪和优化,从而更好地实现教学目标。自2013年起,柳州师范高等专科学校在软件开发实训教学中实施Scrum敏捷开发方法,现已成功开发了教学质量监控系统、科研工作管理系统两个真实项目,用户对软件的满意度很高,实训教学取得了良好的效果,但相关管理制度和实训措施还需要进一步探索和优化。

【参考文献】

[1]VersionOne Inc.8th Annual State of Agile[R]. VersionOne Inc,2013

[2]Mike Cohn. Scrum敏捷软件开发[M].北京:清华大学出版社,2010

[3]Freder ick P.Brooks,Jr.人月神话[M].北京:清华大学出版社,2007

[4]陈国栋,罗省贤. Scrum敏捷软件开发方法实践中的改进和应用[J].计算机技术与发展,2011(12)

[5]Henrik Kniberg. Scrum and XP from the Trenches[M]. C4Media Inc,2007

[6]商惠华.计划驱动下敏捷开发过程的软件质量管理[J].汕头大学学报(自然科学版),2011(4)

【基金项目】广西高等教育教学改革工程项目(2013JGB301)

测试团队工作计划范文第11篇

关键词:软件测试;测试策略;测试用例;测试件

中图分类号:F426.6 文献标识码:A文章编号:1007-9599(2012)05-0000-02

一、引言

随着计算机技术的迅猛发展,计算机软件已渗透到各个领域。人们对计算机软件质量的要求越来越高,要开发出高质量的软件产品,利用传统的软件测试方法已不能适应现在的要求,这使得软件的开发规模和复杂程度呈螺旋状递增。为了尽可能多地测试出程序的错误,开发出高质量的软件产品,势必加强对测试工作的组织和管理。

二、设计软件测试,排除“近忧”

(一)测试策略设计

软件测试策略主要考虑如何把设计测试用例的技术组织成一个系统的、有计划的测试步骤。在测试的各个阶段应选择适宜测试方法,由软件开发人员和一个独立的测试小组共同完成测试任务。对小项目做大测试和对大项目做小测试都是不应该的。通常,对于工作量小于5个人月的普通软件,应全面测试,重点进行功能测试、性能测试及验收测试等。而对于一个工作量接近30个人月的中型软件而言,不仅要注重系统测试,还应该认真完成单元测试、集成测试及验收测试等。

设计测试策略时应注意如下几个方面:1.测试成本与测试预期效果之间应达到最佳平衡;2.测试需求与测试活动安排之间应达到最佳平衡;3.设计策略形成的技术路线可行与否,有无设计依据;4.该的技术路线在工程实际与企业质量承诺之间应达到最佳平衡。

(二)测试方法设计

测试方法是对测试策略设计形成的技术路线的逐步细化,主要包括要测试的功能,准备输入的数据及其对应的预期输出结果。设计测试方法时,应考虑以下几个方面:测试成本与测试产生的效益是否处于最佳比值;每个测试活动是否描述清晰;测试手段是否可行;测试产生的结果能否改进产品质量。

具体设计测试方案时,最常见问题的就是测试人员少,而测试工作枯燥、繁重。加强测试人才专业技能、行业知识和个人素养,并建设高效测试团队是解决这一问题的根本途径。然而,远水解不了近渴。那么,可以寻求其他途径来解决。比如软件外包和外协、自动测试工具等都是解决问题的办法。

(三)测试用例设计

测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,是对测试方法实现技术部分的更细致、更具体的描述。由于不可能进行穷尽测试,因而设计测试用例时要选用少量的、高效的测试数据,尽可能找出更多的潜在错误,尽可能完善地进行测试。

等价类划分法(EP)是黑盒测试中典型的一种方法。等价类是输入条件都是等效的输入域的集合。EP法把程序的输入数据集合划分为互补相交的子集,即若干个等价类,包括有效等价类和无效等价类。在每个等价类中,作为代表的这组数据测试程序并发现错误。经验表明,大多数错误都发生在输入的边界值上。为此,专门引入边界值分析法(BVA),把它最为EP方法的补充。

白盒测试根据程序逻辑结构进行通路测试。要想穷尽路径测试往往做不到,但是尽可能选取有代表性的通路,对各种通路测试是可以做到的。这里值得指出的是,在不同的测试阶段,黑盒测试法与白盒测试法可发现不同类型的错误。因此,两种方法缺一不可,相辅相成,灵活运用,事半功倍。

三、管理好软件测试件,消除“远虑”

测试件是指在测试团队知识库中的所有输入和输出数据,并且这些数据必须受控于或者必须划入一切手工测试和自动测试活动中。测试件像其他软件一样,需要被管理和被工程化。

(一)测试用例管理系统

一个中等规模的待测软件,需要设计的测试用例往往有数万个之多,如果不进行专门的管理,测试人员很快就被淹没在测试文档及测试用例的海洋中。测试用例设计人员需要了解目前已经为哪些模块设计了测试用例?为哪些部件设计了测试用例?还需要完成哪些设计工作?而测试执行人员则应该清楚的知道“今天要测试什么?需要执行多少个测试用例?”等等。测试用例管理系统就是基于这些需求而开发的,其目的是为了提高测试活动的效率,统一管理该项目测试用例的设计、执行及执行结果等。

(二)配置管理

测试件可以使用配置管理的方式进行管理,但除了测试用例、测试缺陷报告之外。现提供两种配置管理方式。一种方式是把每一个的测试件作为配置项,每个测试件有各自的版本信息。这种方式适用于比较完善的配置管理体系,因为该方式基于一个或多个测试件组进行基线化。如若使用不当,可能导致使用的测试件版本错误。另一种方式是在配置库中将测试件组作为配置项进行保存。每个测试件组有各自的版本信息,而组内的各个测试件成员没有相应的版本信息。这种方式适用于不成熟的配置管理体系,因其操作简单,所以出现版本错误的可能性较小。

(三)测试件的复用与迁移

测试件可被复用,因此测试件中包含的知识和经验可被他人获取并应用到适合的项目中,这是管理测试件的又一个重大意义。测试团队内部人员之间能够有效地、充分地、完全地传递知识,这将从很大程度上提高团队的整体水平。各项目中所使用的大量的测试技术和获取的丰富的知识经验都记录在测试件管理库中,这些不仅对于团队中的新人而言,即使是参加测试工作多年的老手来说,都是非常宝贵的财富资源。因为测试件的复用与迁移能把人们从大量的、繁重的、复杂的、重复的、枯燥的劳动中解放出来。此外,测试团队负责人还应提倡团队内部成员在深入了解和学习测试件库的同时多提改进意见,让测试件库能长久地为人们服务。

参考文献:

[1]钱坤.层次化测试在银行系统的设计与实现

[2]郭群,卢海燕.软件测试基本技术

[3]侯海霞.基于软件测试技术的软件质量保证研究

[4]姜春强.浅析软件测试

测试团队工作计划范文第12篇

摘要:软件测试是由人工或计算机验证软件是否满足规定的需求,是保证软件质量的重要手段。本文从软件测试设计和软件测试件管理这两个方面,阐述了如何解决软件测试的“近忧”和“远虑”的问题,以及如何在软件测试阶段提高软件的质量应采取的措施。

关键词:软件测试;测试策略;测试用例;测试件

中图分类号:F426.6 文献标识码:A文章编号:1007-9599(2012)05-0000-02

一、引言

随着计算机技术的迅猛发展,计算机软件已渗透到各个领域。人们对计算机软件质量的要求越来越高,要开发出高质量的软件产品,利用传统的软件测试方法已不能适应现在的要求,这使得软件的开发规模和复杂程度呈螺旋状递增。为了尽可能多地测试出程序的错误,开发出高质量的软件产品,势必加强对测试工作的组织和管理。

二、设计软件测试,排除“近忧”

(一)测试策略设计

软件测试策略主要考虑如何把设计测试用例的技术组织成一个系统的、有计划的测试步骤。在测试的各个阶段应选择适宜测试方法,由软件开发人员和一个独立的测试小组共同完成测试任务。对小项目做大测试和对大项目做小测试都是不应该的。通常,对于工作量小于5个人月的普通软件,应全面测试,重点进行功能测试、性能测试及验收测试等。而对于一个工作量接近30个人月的中型软件而言,不仅要注重系统测试,还应该认真完成单元测试、集成测试及验收测试等。

设计测试策略时应注意如下几个方面:1.测试成本与测试预期效果之间应达到最佳平衡;2.测试需求与测试活动安排之间应达到最佳平衡;3.设计策略形成的技术路线可行与否,有无设计依据;4.该的技术路线在工程实际与企业质量承诺之间应达到最佳平衡。

(二)测试方法设计

测试方法是对测试策略设计形成的技术路线的逐步细化,主要包括要测试的功能,准备输入的数据及其对应的预期输出结果。设计测试方法时,应考虑以下几个方面:测试成本与测试产生的效益是否处于最佳比值;每个测试活动是否描述清晰;测试手段是否可行;测试产生的结果能否改进产品质量。

具体设计测试方案时,最常见问题的就是测试人员少,而测试工作枯燥、繁重。加强测试人才专业技能、行业知识和个人素养,并建设高效测试团队是解决这一问题的根本途径。然而,远水解不了近渴。那么,可以寻求其他途径来解决。比如软件外包和外协、自动测试工具等都是解决问题的办法。

(三)测试用例设计

测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,是对测试方法实现技术部分的更细致、更具体的描述。由于不可能进行穷尽测试,因而设计测试用例时要选用少量的、高效的测试数据,尽可能找出更多的潜在错误,尽可能完善地进行测试。

等价类划分法(EP)是黑盒测试中典型的一种方法。等价类是输入条件都是等效的输入域的集合。EP法把程序的输入数据集合划分为互补相交的子集,即若干个等价类,包括有效等价类和无效等价类。在每个等价类中,作为代表的这组数据测试程序并发现错误。经验表明,大多数错误都发生在输入的边界值上。为此,专门引入边界值分析法(BVA),把它最为EP方法的补充。

白盒测试根据程序逻辑结构进行通路测试。要想穷尽路径测试往往做不到,但是尽可能选取有代表性的通路,对各种通路测试是可以做到的。这里值得指出的是,在不同的测试阶段,黑盒测试法与白盒测试法可发现不同类型的错误。因此,两种方法缺一不可,相辅相成,灵活运用,事半功倍。

三、管理好软件测试件,消除“远虑”

测试件是指在测试团队知识库中的所有输入和输出数据,并且这些数据必须受控于或者必须划入一切手工测试和自动测试活动中。测试件像其他软件一样,需要被管理和被工程化。

(一)测试用例管理系统

一个中等规模的待测软件,需要设计的测试用例往往有数万个之多,如果不进行专门的管理,测试人员很快就被淹没在测试文档及测试用例的海洋中。测试用例设计人员需要了解目前已经为哪些模块设计了测试用例?为哪些部件设计了测试用例?还需要完成哪些设计工作?而测试执行人员则应该清楚的知道“今天要测试什么?需要执行多少个测试用例?”等等。测试用例管理系统就是基于这些需求而开发的,其目的是为了提高测试活动的效率,统一管理该项目测试用例的设计、执行及执行结果等。

(二)配置管理

测试件可以使用配置管理的方式进行管理,但除了测试用例、测试缺陷报告之外。现提供两种配置管理方式。一种方式是把每一个的测试件作为配置项,每个测试件有各自的版本信息。这种方式适用于比较完善的配置管理体系,因为该方式基于一个或多个测试件组进行基线化。如若使用不当,可能导致使用的测试件版本错误。另一种方式是在配置库中将测试件组作为配置项进行保存。每个测试件组有各自的版本信息,而组内的各个测试件成员没有相应的版本信息。这种方式适用于不成熟的配置管理体系,因其操作简单,所以出现版本错误的可能性较小。

(三)测试件的复用与迁移

测试件可被复用,因此测试件中包含的知识和经验可被他人获取并应用到适合的项目中,这是管理测试件的又一个重大意义。测试团队内部人员之间能够有效地、充分地、完全地传递知识,这将从很大程度上提高团队的整体水平。各项目中所使用的大量的测试技术和获取的丰富的知识经验都记录在测试件管理库中,这些不仅对于团队中的新人而言,即使是参加测试工作多年的老手来说,都是非常宝贵的财富资源。因为测试件的复用与迁移能把人们从大量的、繁重的、复杂的、重复的、枯燥的劳动中解放出来。此外,测试团队负责人还应提倡团队内部成员在深入了解和学习测试件库的同时多提改进意见,让测试件库能长久地为人们服务。

参考文献:

[1]钱坤.层次化测试在银行系统的设计与实现

[2]郭群,卢海燕.软件测试基本技术

[3]侯海霞.基于软件测试技术的软件质量保证研究

[4]姜春强.浅析软件测试

测试团队工作计划范文第13篇

关键词:软件项目;生命周期模型;选择

中图分类号::TP311.52 文献标识码:A

正确的选择生命周期模型是软件开发成功的第一步。 软件项目经理在对项目进行策划时,首先需要考虑选择适用的软件生命周期模型。合适的项目周期模型使得项目开发过程流程化、易于管理,同时能够提高开发速度和产品质量,更好的满足客户的要求。

1软件项目生命周期模型介绍

1.1标准生命周期模型

1.1.1标准生命周期模型将项目分成5个阶段,分别为构思阶段、计划阶段、开发阶段、稳定阶段和部署阶段,每个阶段定义了主要的工作目标和活动,每个阶段的结束以完成各自的里程碑为标记。

1.1.2模型图

图 1 标准生命周期模型图

通过使用分阶段和里程碑驱动的方式,使整个项目过程的可预见性和可管理性增强,项目质量可以得到有效的控制和提高。每个阶段的结束包括一个里程碑,里程碑表示某个时间点,在这个时间点上,应该完成一组预先指定的交付成果。里程碑的设立,可以帮助团队成员定期同步工作成果;产物经过正式评审,还可以确保项目进展方向的正确性,保证不偏离预定的业务目标。

在模型图中定义的里程碑为阶段里程碑(也称为主里程碑),在每个阶段的进行中,也可以在阶段内部定义其他中间里程碑(也称为次里程碑),如完成系统架构设计的里程碑等。中间里程碑将一个阶段内的工作分成便于管理的几部分,由项目组根据项目情况制定,生命周期模型中对中间里程碑不做硬性要求。

此外,标准生命周期模型还是一个迭代方法,通过把一个大项目分为几个版本将风险减至最小。

在软件项目开发中,一般可先开发、测试和部署那些核心的、基本的功能,然后在后续的版本中添加其他功能。使用多版本的方法,可以将复杂的大项目分解成几个较小的项目,使它们更便于管理。由于缩短了交付时间,使项目组能更快地从用户那里得到产品的反馈,并在该产品的下一个版本中做及时地更正,能更早地给客户带来更多的业务利润。由于项目组有不断的功能增加和持续的产品推出,使项目组员的目标更加清晰明确,可以鼓舞团队士气。

1.1.3各阶段的主要工作目标和里程碑产物等内容见下表:

阶段

名称 主要

目标 里程碑

名称 主要

驱动角色

构思

阶段 确定项目的目标和前景,在限定条件下定义项目范围 前景/

范围确定 产品

经理

计划

阶段 给出详细需求和设计方案,以及构建和部署的计划、与各项任务和资源相关的进度表 项目

计划确定 程序

经理

开发

阶段 构建项目中所要求的各种功能和交付成果,其中包括代码、组件、基础架构以及和用户及运营相关的文档等交付成果。 完成

产品范围开发 开发组长、

用户教育组长

稳定

阶段 提高项目质量,使产品达到稳定,满足到生产环境的质量标准

就绪认可 测试组长、

部署组长

部署

阶段 把产品实施到生产环境之中 部署

完成 部署

组长

1.1.4构思阶段

构思阶段的主要工作是组建项目团队,建立项目前景,确定项目范围,开始风险评估。

当项目产生时,应及时确定项目的涉众,确定所需的团队技能,组建项目团队,并制定初始的项目计划。项目团队除了项目各角色成员外,还应包括质量保证人员。

为使团队有一个共同的目标和前景,应在本阶段确定业务问题和机会,收集项目需求,开发项目的前景,并在给定的假设和限定条件下,确定项目范围。

在本阶段,还应完成初步的风险评估。

此外,还应在本阶段建立配置和变更管理。

重要里程碑产物都必须经过相应的评审,以保证产物的质量。

构思阶段的主里程碑为“前景/范围确定”,要求前景和范围文档经过评审,得到关键涉众的认可。

1.1.5计划阶段

计划阶段的主要工作是开发详细的软件需求、进行逻辑设计和物理设计,制定主项目计划和其他附属计划,并准备开发和测试环境等。

为制定出一个高效的计划以降低项目风险,项目组必须仔细分析用户需求和业务需求,定义系统的详细需求。在基本确定需求时,项目组可以进行系统的逻辑设计和物理设计。

在计划阶段应将目标和初始计划转变为项目计划,并使每个角色对项目计划负责,注意项目计划不只是单纯的一个时间进度表,它应该包括一个主项目计划和一系列附属计划,如培训计划、测试计划、沟通计划等。

此外,在计划阶段还应按照开发和测试计划中设置的标准配置来建立环境,为开发和测试做好准备。

计划阶段的主里程碑为“项目计划确定”,要求关键涉众对要交付的组件、主要项目里程碑日期及如何构建达到一致意见。

1.1.6开发阶段

开发阶段的主要工作是编写代码、创建文档和培训课程、进行测试等。

通过每日构建实现内部,可以帮助团队把一个复杂的项目分解为多个易于管理的任务。

开发阶段的里程碑为“完成产品范围开发”,表示所有功能和交付成果都已完成。

1.1.7稳定阶段

稳定阶段的主要工作是解决发现的问题,使产品稳定运行,提高项目质量,并完成项目。

为达到产品稳定,应进行有效的测试和试运行,进行每日构建和测试。

在稳定阶段的后期,项目组应开发候选版本,准备相关文档,并完成。

稳定阶段的里程碑为“就绪认可”,表明项目代码和文档的产物通过评审,可以正式。

1.1.8部署阶段

部署阶段的主要工作是将产品部署到用户环境中,最终交付运营,项目组进行总结收尾。

要将产品平稳地部署到用户环境中,部署完成得到用户认可后,要将项目交付给用户进行运营,同时相关产物应交给技术支持部门进行后续维护工作。

在合同项目中还应得到客户的确认,进行客户验收。

此时,项目组可以进行项目回顾和总结,将项目数据、经验和教训存放在过程财富库中。

部署阶段的里程碑为“完成部署”,表明产品在客户环境中已能稳定运行,项目得到客户认可,项目团队的工作基本结束。

1.1.9在项目中运用标准生命周期模型时,可以根据项目的不同情况进行裁剪。

1.2原型生命周期模型

1.2.1原型是指为需求调研和演示使用的软件产品,原型生命周期模型是指为这些产品而定义的过程模型,它对过程的要求比标准生命周期模型简单,并且由于不是提交给用户的产品,因此,基本上都不包括稳定和部署的阶段。

1.2.2模型图

图表 3 原型生命周期模型图

原型生命周期模型和标准生命周期模型类似,都是采用分阶段和里程碑驱动的方式,但它通常只包含三个阶段,同时,对每个阶段的流程控制要求也相对较少一些。但原型生命周期并不表示稳定和部署阶段肯定不存在,在有必要的情况下,也可以包含这两个阶段或其中之一。

同样,原型生命周期模型也是可以迭代的,如下图所示。

1.2.3各阶段的主要工作目标和里程碑产物等内容见下表:

阶段

名称 主要

目标 里程碑

名称 主要

驱动角色

构思

阶段 确定项目的目标和前景,在限定条件下定义项目范围 前景

/范围确定 产品

经理

计划

阶段 分析需求,制定出项目进度计划表 项目

计划确定 程序

经理

开发

阶段 构建解决方案中所要求的各种功能和交付成果,其中包括代码、组件、基础架构以及和用户及运营相关的文档等交付成果。 完成产品

范围开发 开发组长、

用户教育组长

1.2.4构思阶段

构思阶段的主要工作是组建项目团队,建立项目前景,确定项目范围。

当项目产生时,应及时确定项目的涉众,确定所需的团队技能,组建项目团队,并制定初始的项目计划。

为使团队有一个共同的目标和前景,应在本阶段确定业务问题和机会,收集项目需求,开发项目的前景,并在给定的假设和限定条件下,确定项目范围。

此外,还应在本阶段建立配置和变更管理。

构思阶段的主里程碑为“前景/范围确定”,要求前景和范围文档经过评审,得到关键涉众的认可。

1.2.5计划阶段

计划阶段的主要工作是开发详细的软件需求、制定主项目计划和其他附属计划,并准备开发环境等。

为制定出一个高效的计划以降低项目风险,项目组必须仔细分析用户需求和业务需求,定义系统的详细需求。在有些原型项目中,项目组还应该进行系统逻辑设计和物理设计。

在计划阶段应将目标和初始计划转变为项目计划,并使每个角色对项目计划负责。

此外,在计划阶段还应建立好开发环境。

计划阶段的主里程碑为“项目计划确定”,要求关键涉众对要交付的组件、主要项目里程碑日期及如何构建达到一致意见。

1.2.6开发阶段

开发阶段的主要工作是编写代码、创建文档等。

原型项目也应采用每日构建的方式来实现内部构建和测试。

开发完成后,产品就可以提供进行需求调研和演示使用,有些特殊的原型产品可能还包括稳定阶段或部署阶段的相关工作。

开发阶段的里程碑为“完成产品范围开发”,表示所有功能和交付成果都已完成。

1.2.7原型生命周期模型也是可以裁剪的。

2 两种模型比较

3模型选择

4定义项目特征

在项目立项后,程序经理要组织项目组组员、质量保证人员等人员根据项目的具体情况,定义项目特征,并填写在项目生命周期模型确认表中。

5选择合适的生命周期模型

根据项目特征和生命周期模型特点的比较,选择相应的生命周期模型、裁减项目过程并确定项目的产物。程序经理将选择的结果和原因记录在项目生命周期模型确认表中。

6确认结果

程序经理将项目生命周期模型确认表提交给EPG进行审核。EPG审核通过后,项目按照相应生命周期模型进行开发;如果审核不通过,则程序经理应组织重新进行选择。

注:EPG全称为Engineering Process Group,即工程过程组,是软件行业负责对质量管理体系进行改进和重大改进活动的组织;

7结果归档

EPG审核通过后将项目生命周期模型确认表归档到过程财富库中。

结语

项目生命周期确定了将项目的开始和结束连接起来的阶段,目前还没有确定项目生命周期的最好办法。本文引用行业的通用做法和约定俗成的项目生命周期,阐述软件行业项目生命周期的两种模型和选择要点,有助于项目经理有效选择和对项目进行管控。

参考文献

测试团队工作计划范文第14篇

在工程的实施过程中,无论是建设方、监理方还是施工方,一个项目部内部的团队建设情况,对项目是否能顺利进展,无疑有着巨大的影响和至关重要的意义。

在此,本文将结合西南某石化项目监理项目部的工作实践和体会,就进度检测系统建立、使用、修正过程中,对项目团队建设的促进做一些概略的探讨。

[关键字:进度检测系统协作沟通监理项目部团队建设]

进度检测系统的建立过程中

进度检测系统涉及专业多、工程量大、工序复杂,在本论文案例所涉及的项目监理部所负责区域,按专业就分为了:土建(又可分为桩基、基础、主体)、给排水、钢结构、工艺管道、动设备、静设备、电气、仪表、电信、暖通等多个专业;各专业又可划分为各自不同的工序;而且各专业工程量巨大,其中工艺管道首次到场A版蓝图就达15000余页。

如果仅依靠计划检测人员,对横跨多个专业的各专业工序进行准确、恰当、合理的划分,并对各专业工程量进行准确计量,无论是精力还是专业限制,完成难度都比较大。

因此必须依靠项目监理部这一团体内各专业的共同参与和努力,将进度检测系统的建立融为团队工作的一部分,而不是某个人的个人或者专业行为,才能建立一个专业/工序划分合理、数据准确的进度检测系统。也只有这样,才能使检测系统更贴合实际,具有更好的操作性和实用性。

为顺利准确的完成进度检测系统的建立,并借以有效促进项目部的团队建设,就应该根据团队建设步骤进行工作的逐项展开。

确定共同目标

具体目标的确立

本论文引用的西南某石化项目监理项目部案例,在建立进度检测系统之初,项目部总监、计划工作人员进行了沟通、对接,根据建立进度检测系统所面临的实际情况和技术要求,确定了当期的目标。

为使各专业监理人员能更准确的了解工作目标,该监理项目部在确立目标当中,并未采用“建立监测系统”这一命令式的目标,而以“各专业核算准确的工程量”这一更为具体、清楚的目标,为整个监理项目部团队提供了清晰的指导。

目标的分享

该监理项目部在通过上述方式建立了具体、清楚的目标后,为使团队成员能更好的完成这一目标,项目监理部及时将这一目标与项目监理部全体成员进行了分享、沟通,使所确立的目标成为这个团队的目标,并使这个团队明确了完成目标的意义和要求。

根据长处分配工作

在完成第一步即“确定共同目标”后,项目监理部即根据项目部各成员的长处(即专业)进行了工作的分配,由各土建监理人员负责土建图纸工程量的计算、设备专业监理人员负责设备专业图纸工程量的计算、电气专业监理人员负责电气图纸工程量的计算等,既确保了各团队成员利用所具有的专业优势和技能更好的完成工作,又将巨大的总体工作量拆分为了多个相对较小的工作单元,有效的促进了目标需求工作的执行和完成。

获取反馈

在根据团队内各成员各自具备的技能优势划分、确定了各自的工作职责之后,为确保工作的准确、及时完成,项目监理部还通过定期和不定期举行沟通会的方式,听取团队成员各自的反馈,以确保各成员对目标、工作的理解无误。

通过面对面的沟通,更加有效的提高了团队内各成员的注意力和向心力,及时的向项目部成员传达了准确的信息,有利的促进了信息沟通的准确和工作的完成。

沟通结果

在团队实施计划过程中,实时对计划的进展情况进行核对,以随时就进度情况与团队成员沟通,了解目标完成情况,及时根据反馈情况进行目标或者过程的优化。

在该项目中,原土建专业的工序划分将土建(基础)划分为了“基坑开挖、基础垫层、钢筋绑扎、模板支设、基础砼浇筑、模板拆除、其他”7个步骤。通过过程中的信息反馈和沟通,在与项目部专业人员进行讨论后,一致认为为便于操作和具有适用性,宜将以上7个步骤缩减为了“基坑开挖、基础垫层、钢筋绑扎、基础砼浇筑”4个步骤。通过以上的改进,将有效减少进度检测系统建立的工作量,又能更好的反映现场实际形象进度。

相互协作

由于工程量巨大,以及各专业间的局限性,项目监理部内各专业之间的日常交流是较为有限的,而通过建立检测系统过程中的计量过程,将有效促进团体内各专业间的了解和认可。

本论文引用案例中,仅工艺管道专业A版到场蓝图数量就达15000余份,如果仅靠计划工程师或者工艺专业人员进行计算统计,是无法及时、准确的进行计算统计的。为此我项目监理部发动全体项目部成员,及时对所到图纸进行了集中统计,经全体项目部成员二十余天的共同努力,终于得使工艺管道工程量得到了较为准确、及时的统计。

通过这样的共同努力,使得各现场专业人员对计划工作有了一些初步的了解,也促进了各专业间的相互了解,有效的促进了项目部内各成员的团队意识和协作精神。

通过上述各专业间对建立进度检测系统从目标确立到相互协助直至检测系统的完全建立,这一整个过程的参与,将有效提高团队内各专业人员对检测系统的理解能力和填报质量,减少检测系统填报中失误和偏差的发生,使检测系统的检测值能真实的反映现场客观进度。

进度检测系统的使用过程中

进度检测系统建立后即进入了进度检测系统的使用阶段。

由于现场存在施工面广、专业和工序多等客观情况,如果仅依靠计划工作人员现场对每个专业各个工序进行一一跟踪,是不现实也是不可能完成的。为确保进度检测系统检测的准确性,就必须依靠团体内各专业负责现场检查具有的跟踪、熟悉优势,与计划专业进行协作。

本论文引用案例中,仅动设备和静设备数量就近2000台,而且因设备不同,也分为多种工序,其中,静设备中的冷换设备,就分为了“进场检验、安装就位、找正、抽芯检查、劳动保护安装、试压、保温(冷)”等数道工序,而动设备中的泵类设备则又分为了“进场检验、安装就位、精平找正、电机单试、单机试运”等多道工序。

现场设备分布广,各设备因到货和施工等原因又处于不同的施工工序,如果仅依靠计划工作人员进行现场核对,一是无法全面跟踪现场设备情况,二是无法具体分辨各设备工序完成情况。而根据工程质量管理程序要求,现场动静设备监理人员因施工单位的报验和检查等原因,对现场设备具有无以比拟的优势。

在该项目实施过程中,进度检测系统的填报就采取了由各专业监理人员填报为主,计划人员现场测量、查验为辅的检测系统填报方式。通过填报过程中的相互交流和意见反馈,不但促进了计划人员和专业监理人员对现场的跟踪了解和配合,而且也促进了对进度检测系统的优化,还有效的促进了项目部内的团队建设。

进度检测系统的修正过程中

进入施工后期,由于现场主要施工任务基本结束,因此进度检测系统内大部分工序基本结束检测,面临根据现场实际情况,对进度检测系统进行调整修正的工作。

测试团队工作计划范文第15篇

中国移动通信研究院(以下简称移动研究院)是中国移动通信集团公司网络技术研究基地及业务产品的开发中心,从2007年开始逐步形成小、中、大规模的团队从事产品开发工作,移动研究院云计算系统部总经理助理钱岭所在的云计算系统部便是其中一个。据钱岭介绍,云计算系统部开发的是标准化产品,很像软件工程中面向对象中的“基类”,供开发人员使用,如云计算产品、大数据产品等。每一个产品不作为单独的项目来管理,而是统称为大云项目集中化管理。

组织方式

移动研究院属于大型国有企业,是传统的组织结构,以基于职能的划分方式设立部门,每一职能部门对应一种专业分工,或者对应一条产品线。一般来说,跨部门的协调工作通常在各部门领导之间进行,没有专职的项目经理。比如钱岭,既是云计算系统部的总经理助理,同时又是大云项目的负责人。

但在这种基于职能的组织模式中,一样存在着项目管理。据钱岭介绍,产品经理、开发经理、质量经理,和总负责人一起共同组成了大云项目管理团队。由于有持续不断的需求,因此大云项目的产品经理更像是职能经理,负责需求收集、产品规划和设计,研究产品的发展趋势等,除此之外,对于每一个具体版本的开发,要负责里程碑点的进度,负责产品的最终完成。

开发经理则管理开发队伍,保证开发队伍顺利开展工作及跟踪应用中的错误,负责开发进度和质量。

生命周期模型

项目生命周期是按顺序排列,有时又是相互交叉的各项目阶段的集合。大云项目总体采用“敏捷和瀑布协作模型”,即采用瀑布前端、瀑布收尾,在中段采用敏捷开发。

瀑布前端。采用传统的瀑布方式,进行需求收集需求确认架构设计。大云项目的需求有很多种,带有通信行业和云计算大数据行业的特点。比如中国移动有很多标准规范,产生了规范性需求;比如云计算大数据行业,开源基本上主宰了一切,产生了开发性需求。开源还往往会面临结构的调整,要决策是用以前的架构还是新的架构,选型要进行大规模测试,这些需要较长时间。

中段敏捷。需求和架构设计完成之后,项目工作转到开发团队,采用短周期(一般不超过1个月)的迭代开发模式,可以在很短的时间内调整工作范围,同步调整每个开发人员的进度和状态,保持高度统一。钱岭提到,2013年减少项目外包,就是因为难以对外包团队实施敏捷项目管理,项目的可控性较差。敏捷开发非常依赖“人”的主观能动性,而对项目外包团队不能管理到个人。

瀑布收尾。在项目收尾阶段,尚有大量工作,如产品交付、文件齐套、组织验收、质量审计、项目总结汇报等。中国移动有严格的项目验收程序和标准,这个过程需要较长的时间。

进度、质量、成本

大云项目的进度管理是产品经理管理里程碑点,月底检查交付物。开发阶段的详细安排则由开发经理负责。据了解,很少出现开发进度严重延迟的现象。这也许得益于前期需求和设计阶段做了比较细致的工作,也或许得益于计划的协商、确认和承诺过程。

项目的质量管理包含两个含义,即产品质量和过程质量。产品质量一般有标准可循,比如软件的缺陷率等,在大云项目中,自动化测试比例高达70%以上。当然,自动化测试并非全部,仍然有一些人工测试,测试人员由开发经理负责管理。大云有独立的团队开发自动化测试工具。

项目的过程质量从某种程度来说就是指项目管理的质量,同样交付产品,但是在所花费的时间周期、资源成本、各方面的满意度等管理方面,不同项目之间存在着差别,这种差别就是过程质量的差别。这项工作由移动研究院统一来做,开展第三方质量审计工作。除此之外,移动研究院对项目的考核指标,如产出情况、应用情况、产品质量、完成进度、项目获得的效益等也都反映了项目的过程质量。

在中国移动云计算战略的背景下,大云项目的设备等物资投入有保障,人力资源也会相对宽松,只是不容易招聘到合适的人选。钱岭认为大云团队和其他企业的产品团队一样要讲效益,只有产品的用户多了,才能收回投入的成本,而团队也才会有成就感和凝聚力。据介绍,移动研究院的项目在2013年有个明显的变化,就是由合作开发变为自主研发,目的是为了实现更好地控制项目进度、产品质量、技术架构,以及资源利用情况。