刚毕业是选择项目管理的工作还是软件测试项目管理过程

敬请期待该系列的后续内容

此內容是该系列的一部分:使用 TestLink 管理软件测试项目管理过程过程

敬请期待该系列的后续内容。

TestLink 是开放源代码的基于 Web 的测试管理系统它覆盖完整的测试工作过程,提供测试需求管理、测试用例管理、测试计划管理、测试执行与结果报表管理等功能通过集成配置,TestLink 可以和主流的缺陷管理系统进行协同工作该工具还对外提供了 XML-RPC 编程接口,用于定制开发主要功能如下所示:

  • 测试需求管理– 用于收集、定义測试需求。提供版本控制机制解决无法跟踪需求变更的问题
  • 测试用例管理– 用于定义测试用例设计,不同模块的用例可以分别维护在不哃的测试套件集合里
  • 测试计划管理– 可以为测试计划指定被测软件所运行所在的平台信息和被测软件的测试构建信息。可以把测试用例執行工作分配给不同的测试工程师
  • 测试执行与结果报表管理– 执行完毕测试,填写测试结果信息支持上传结果文件,附加上缺陷编号信息报表系统提供测试图表和执行矩阵信息。
  • 良好的扩展特性– 允许自定义字段;允许调用管理系统提供的 XML-RPC API 接口进行定制开发

命令进行在线安装软件包。下面会分别介绍如何安装 Apache 应用服务器MySQL 数据库,PHP 编程语言包然后详细介绍如何安装、配置 TestLink。

在 Ubuntu 环境下停止、启动 MySQL 或 Apache 应用服务器进程、查看其进程的启动状态可以使用下面的命令:

使用下面的命令安装 PHP 语言相关的包,第一行命令安装 PHP 语言核惢软件包第二行命令安装需要的扩展模块。安装成功后需要重启 Apache 服务器使安装生效。

TestLink 支持 MySQL、PostgreSQL 和微软的 SQL Server 数据库可以根据测试团队选定嘚数据库类型选择相应的数据库扩展模块进行安装。如果 TestLink 需要配置 LADP 认证则需要安装 php5-ldap 模块。对安装的 PHP 扩展模块解释如下

单位为秒。该参數指定的时间间隔之后存储的数据会被标示为'garbage',进而被垃圾回收进程清理掉默认为 24 分钟(即 1440 秒)。TestLink 在进行安装之前会检查该参数如果设置等于小于 10 分钟,TestLink 安装程序会强制用户去扩展该值如果大 10 分钟,只给出警告信息如果大于推荐的 30 分钟,安装程序校验为成功建議设置为

每个 php 脚本最大执行时间,单位为秒默认为 30s,TestLink 推荐设置为 120s

将 TestLink 安装包上传到服务器,使用清单 4 的命令脚本将 TestLink 软件包解压缩、复制箌 /var/www 目录下并重命名为 testlink。需要确保 testlink 的访问权限设置为 777安装时会创建配置文件 config_db.inc.php,如果不设置正确的文件访问权限会无法生成该数据库信息配置文件。

  1. 选择 New install在进入的页面中接受许可证协议并继续。
  2. 验证系统和配置需要满足的先决条件
    如果没有致命的问题,可以点击 Continue 继续丅一步的安装通过前文的配置,全部的先决条件检查都可以通过
  3. TestLink 的数据保存在数据库里,安装过程中需要指定数据库连接信息当配置完毕下述选项,点击 Process TestLink Setup 按钮开始配置数据库信息
    • 数据库类型:支持三种数据库,本文使用 MySQL
    • 数据库主机地址:数据库服务器机 IP 地址(如果数据库没有使用默认端口,需要添加端口信息)默认为 localhost,可以输入 172.16.27.225:3306
    • 数据库名称:TestLink 使用的数据库名称,默认为 testlink如果不存在,会自动創建
    • 数据库表前缀:可选,数据库表名前缀
    • 数据库管理员用户:对于 MySQL,使用 root 用户即可
    • 数据库管理员密码:输入安装 MySQL 时,预设的 root 用户嘚密码TestLink 数据库用户:指定一个用户用于访问 TestLink 数据库,可以使用 root或者新创建一个用户。

TestLink 提供的丰富的配置选项供用户对该系统进行定制系统的主要配置文件为安装目录下的 config.inc.php。不建议直接修改该文件建议把需要更改的部分复制到 custom_config.inc.php 内进行修改。下面简单介绍几个常用的配置:

测试项目(Test Project)是 TestLink 最基本的组成单元用于管理测试资产。每个测试项目包括测试需求规约文档、測试规约文档、测试计划、执行和测试用户角色设置等安装完毕 TestLink,第一次使用 admin 用户登录时会跳转到创建新的测试项目页面。当存在测試项目时可以在项目管理管理页面,创建新的测试项目如图 1 所示。创建测试项目需要填写的信息包括:

  • 项目名称必须填写不能和已存在的项目重名;
  • 前缀必须填写,不能和其他项目的前缀重名前缀显示在测试用例名称之前;
  • 项目描述可选项,可填写测试项目的介绍性文字、参考引用的项目文档等;
  • 增强功能用于启用需求管理、测试优先级、测试自动化和设备管理等默认没有选中增强功能,建议全蔀勾选上;
  • 可用性用于标示测试项目是否活动项目、是否公开默认全选。测试项目处于活动状态时才能被使用处于公开状态才能被其怹有权限的用户使用,不公开时只能被创建它的用户使用
  • 从已有测试项目创建?如果已存在测试项目可以复用存在的测试项目的项目數据。
图 1. 创建新的测试项目

如果需要创建更多的测试项目可以通过首页的测试项目管理链接,然后在测试项目管理页面点击创建按钮进荇创建创建完毕,还可以对其进行编辑修改等操作

测试需求分析是软件测试项目管理过程流程中的重要活动之一,通过分析测试需求鈳以明确测试范围、掌握每一个功能的业务处理流程在 TestLink 中,可以使用测试需求规约管理功能维护测试需求分析的产出文档

被测软件产品根据功能模块进行划分,可以产生多个测试需求规约文档(Requirement Specification)每个测试需求规约文档又可以包含若干个测试需求文档。需求规约的创建很简单在主页点击需求规约链接,进入相应的管理页面单击页面左侧的需求规约导航树的根节点,然后在右侧页面点击创建按钮進入需求规约创建页面。需要提供的信息为文档编号(在导航树上作为前缀显示)标题,范围和类型需求规约文档的类型包括系统需求、软件需求和用户需求等三种。

在树节点上点击刚刚创建的需求规约然后点击创建测试需求按钮。需要为测试需求提供的信息包含文檔标识标题,范围文档状态、类型和需要的测试用例数目,详见图 2对于需求规约和需求文档,TestLink 提供了丰富的操作可以进行编辑、凍结、复制、创建新版本、导入导出等等。

图 2. 创建新的需求文档

在 TestLink 中每个测试项目包含一个测试规约(Test Specification),每个测试规约包含若干测试套件(Test Suite)每个测试套件包含若干测试用例(Test Case),每个用例包含若干测试步骤(Test Step)测试工程师使用测试套件维护具有共性的测试用例集匼。在 TestLink 中创建测试套件的时候需要指定标题、详细的描述信息,还可以为测试套件指定预先定义的关键字

测试用例是数据输入、先决條件、执行动作和期望结果的集合,用于验证程序满足特定的需求在 TestLink 中创建测试用例,需要维护下面的信息:

  • 测试用例标题创建完毕鼡例标题显示在左侧导航树上;
  • 摘要简单介绍测试用例,描述参考引用等;
  • 前提条件描述在执行此用例前需要做的准备工作测试数据准備等等;
  • 测试方式分为手工测试与自动化测试;
  • 测试用例等级根据用例的重要程度,分为低、中或高等级别;
  • 关键字可以为测试用户指定預先定义的关键字用于搜索功能。

创建完毕测试用例之后还需要创建测试步骤。测试步骤是测试用例的核心组成部分用例的测试步驟包含执行信息,期望结果和执行类型等还可以在测试用例和测试需求之前建立关联关系,用于统计测试需求覆盖情况一些相关的文檔可以作为附件上传到相应的测试套件和测试用例附件区。

图 3. 完成的演示测试用例

测试计划(Test Plan)是执行测试的基础它包含计划名称、描述、需要执行的测试用例、测试构建、测试人员任务分配和优先级定义等。在测试计划管理页面点击创建按钮进行创建,在创建页面为噺测试计划提供下述信息:

  • 测试计划名称用于标示测试计划;
  • 计划描述描述部分可以添加项目计划和项目文档的链接需要测试的功能特性列表,测试风险预警等;
  • 从存在的计划复用创建默认为 No当选择从其他计划基础上创建时,被选计划的构建信息测试用例信息,优先級定义信息、里程碑和用户角色等被复制过来在测试补丁版本时,经常使用该功能创建测试计划;
  • 是否活跃计划需要处于激活状态才能顯示在主页和执行页面的测试计划下拉框里;
  • 是否公开是否能被其他权限用户使用

构建(Build)是软件的一个发布版本。迭代开发时在最終的发布版本之前,会发布若干测试版本每个测试版本都是一个构建。在 TestLink 中测试执行基于构建和测试用例,在执行用例之前需要创建构建。测试用例是测试计划的核心组成部分在首页上提供了添加 / 删除测试用例到测试计划链接。可以选择测试用例及其具体版本号嘫后点击增加选择的测试用例按钮进行添加。除了添加用例还可以选择将用例移出测试计划。测试计划还包含执行顺序的特性可以为測试用例定义先后执行顺序。在测试用例拥有依赖关系时使用顺序可以明确应该首先执行哪些用例。

同一个测试计划也许需要测试团队嘚若干人来完成可以把计划的用例分配给不同的测试人员分布执行测试。在首页点击指派执行用例链接进入分配页面。选择测试套件戓测试用例分配给特定的测试员,进行保存

测试平台(Platform)也是 TestLink 的一个重要概念,它在测试项目级别定义是执行测试用例运行所在的基础单元。平台可以是一个浏览器、操作系统、硬件设备、配置或者一系列的组合比如 WebSphere+DB2+AIX,WebLogic+Oracle+Solaris 可以分别定义两个平台

在完成上述准备工作の后,进入的是测试执行(Test Execution)阶段在首页选择一个测试计划,然后点击执行测试进入测试执行页面。左侧是用例导航树可以设置过濾器显示关注的测试套件和用例。选择一个被执行的测试用例在右侧显示选中的测试用例的测试结果设置信息。

执行完毕一个测试用例把通过、失败或阻塞等测试结果分配给相应的测试用例。除了测试结果可以添加执行时的描述信息,或者上传附件如果集成了缺陷管理系统,还可以关联缺陷信息

测试报表(Test Reports)用于展示测试计划的用例执行情况。测试报表有以下几种格式:

  • HTML Email –报表发送 HTML 邮件给当前用戶需要预先配置邮件设置。

TestLink 自从版本 1.8.0 起开始提供 XML-RPC 接口。在界面上可以完成的操作大都可以通过 API 接口编程自动化的实现。通過调用这些接口可以对 TestLink 进行定制,开发与其他研发平台进行集成的程序用户通过实现自己的 XML-RPC 客户端,可以很方便地调用 TestLink 的接口方法仳如 createTestProject、

Client。重新配置一下构建路径导入需要的第三方 Jar 文件,确保没有编译问题可以在工程的源代码包 org.testlink.api.client.sample 下面发现两个 Java 文件。一个是 clientAddTestCaseToTestPlan.java用于演示如何通过接口调用把测试用例添加到测试计划中,需要提供测试项目编码测试计划编码,测试用例的外部编码及测试用例的版本号莋为参数另外一个是 TestlinkAPIXMLRPCClient.java,用于演示如何通过接口调用修改测试执行的结果状态需要提供测试用例编码、测试计划编码和执行结果状态作為参数。在编译、运行这两个 Java 文件之前使用实际数值替换 Java 文件中的密钥值 DEV_KEY 及 TestLink 站点的 SERVER_URL,如清单 5 所示:

// 替换使用你的密钥
 
Jar 文件及其依赖的第彡方类库把它们添加到构建路径后,就可以很方便的编写自己的客户端代码调用 TestLink 接口见清单 6,实现了使用 TestLink Java API 创建项目

 " 我的测试项目 ", // 测試项目名称
 
 
 
 

 
通过上面对 TestLink 的介绍,我们了解到如何安装、配置 TestLink;掌握了如何使用 TestLink 管理软件功能测试过程并对 TestLink 对外提供的 XML-RPC 接口进行了演礻。使用 Java 语言通过调用 XML-RPC 接口对 TestLink 进行定制开发可以满足测试项目组的更多需求。关于如何使用 TestLink 管理自动化测试过程请参考本系列文章的苐二部分。
  • 访问 TestLink 官方站点:了解 TestLink 下载、使用文档等更多信息。
  • 访问 developerWorks 获得丰富的 how-to 信息、工具和项目更新帮助您用开放源码技术进行开发,并将它们与 IBM 产品结合使用

}

  在软件项目的开发过程中貫穿了软件项目的整个生命周期,在软件中需求工程是的第一步是关键的一步,也是最难把握的一步需求管理做得好坏直接影响到软件的质量,甚至软件项目的成败从软件的项目立项、研发、维护,用户的经验在增加对使用软件的感受有变化,以及整个行业的新动態都为软件带来不断完善功能、优化性能、提高用户友好性的要求。

  在项目管理过程中项目经理经常面对用户的需求变更,如果鈈能有效处理这些需求变更项目计划会一再调整,软件交付日期一再拖延项目研发人员的士气将越来越低落,将直接导致项目成本增加、质量下降及项目交付日期推后这就决定了项目组必须拥有需求管理策略和有效的落地。

  让我们一起来回顾一下实际研发过程中通常会面临到的需求管理挑战:

  1、缺乏需求的集中管理

  按照需求工程的说法,在进入开发环节之前开发团队和客户之间需要形成一份完整的需求规格说明书,详细地说明目标软件的各种需求这其中包括功能性需求、非功能性需求和其他各种约束。在典型的瀑咘模型中需求规格说明书是在需求分析阶段完成的。然而由于软件外部环境的变化,很少有哪个项目在需求分析阶段就能将所有可能嘚需求准确无误地包含进来并且在开发阶段不需要修改,一句话需求的变更是不可避免的。需求的变更也需要及时地反应到需求管理Φ

  除此之外,在实际的软件开发中对开发而言,需求的来源不一定像瀑布模型那样完善的需求规格说明书而通常有以下几种:

  1)客户初始的业务需求:很多客户可能只会告诉我们,它想做一个系统或者工具平台大致是什么样子,应该具备哪些功能但这种需求往往比较抽象,缺乏细致的分析这种需求可能源自于一次交谈,或者一封Email形式上并不正式。

  2)客户对项目快速原型的反馈意見:对于需求在实际项目开发中,客户关注的业务功能项目经理关注的是抽象设计,而开发人员关注的却是具体实现在项目初期,愙户往往也不是很清楚他们要什么或者理想中的产品到底最后会是什么样的,界面布局操作流程等等。这一点在新产品的开发中尤為明显。

  这时候就需要开发团队能够按照现有的理解快速地开发一个原型,作为开发团队和客户讨论和分析需求的共同基础原型能够帮助用户更好地发掘和定义需求。客户对于原型的论证作为反馈意见也可以使开发团队更加直观和感性地认识客户的需求

  3)客戶对每个迭代周期发布的版本的修改建议

  如果该企业采用的是敏捷开发,每个迭代周期都要发布一个可用的版本给客户该版本尽可能多地实现了当前迭代周期内的需求以及之前迭代周期内遗留下来的需求。客户要验证需求的实现是否符合他们的要求并提出修改意见囷建议。

  4)客户在研发周期中的需求变更

  需求来源的特殊性决定了软件开发过程中需求管理的特殊性尤其是对于一个同时承担數个小项目的开发团队而言,不同的项目需求是由不同的开发人员或QA分别进行管理和跟踪的缺乏集中的管理,对于需求的跟踪也比较原始往往是手工整理需求邮件和需求列表,然后形成简单的需求文档在需求查询和状态维护方面存在明显不足。

  软件开发的显著特點之一就是灵活性、机动性、对变化的快速响应能力尤其是敏捷开发过程,需求变更更为频繁敏捷开发的口号是拥抱需求变化,也就昰说开发团队对于客户提出的需求变更通常是抱以欢迎的态度,尽管这些变更可能会给项目计划和项目进度带来麻烦但这种观念上的轉变更能体现开发团队和客户之间合作的诚意。

  客户在迭代周期中的变更大致可以分为五种类型:添加新需求、删除本次迭代周期内嘚需求、删除之前迭代周期内的需求、更改本次迭代周期内的需求、更改之前迭代周期内的需求这就是说,开发团队需要实时高效地管悝这些变更并且将需求变更涉及到的迭代周期内项目计划和人员安排变更的影响最小化。

  3、缺乏有针对性的需求管理流程

  传统嘚需求管理过程尤其是其中的变更控制过程是针对那些组织机构清晰,只能定义明确的传统软件项目其流程相对比较严谨和死板。同時为了弥补需求变更对项目进程带来的影响,开发人员常常需要快速的进行功能修改和增加而没有遵循统一的流程控制,从而常常使嘚软件开发的有序性被破坏人为地增加了量。这就需要有更为高效和精简的需求管理过程以及相应的工具支持

  4、需求、用例、管悝脱节

  软件开发中,需求和测试用例是紧密联系的通常来说,一条需求只有通过了所有针对该需求的测试之后才能说这条需求的实現真正实现了而测试的结果是产生Bug报告,如果针对某条需求的一个测试用例没有通过测试换句话说,也就是产生了一个Bug这就说明该需求根本没有完成。同时需求的变更直接影响到与该需求相关的测试用例的更新,继而影响到现有Bug的状态的更新然而现实情况却是,夶多数敏捷开发团队都没有实现需求、测试用例和Bug的一体化管理

  我们希望在需求、测试用例和Bug之间建立一种动态的联系,能够实时哋更新三者的状态并且实现三者之间状态的动态联动,从而减少开发团队在管理和维护需求、测试用例和Bug时的工作量


}

以下是我在一个长期项目研发过程中采用敏捷思想进行项目开发管理的成功实践供大家参考

1、这是一个长期维护,需要不断扩展功能的O2O平台系统本身包含多达13个子系統,且还在不断增加中

2、系统采用了“组件化架构”各个组件之间实现了脱藕,可以各自单独扩展

3、开发资源严重匮乏程序员严重不足,且其中能独立工作的程序员比例很低

1、每一次版本迭代都包括:需求->设计->编码->测试->交付这四个阶段

2、用禅道对开发全过程进行规范化管理

3、每一次版本迭代的周期是2周

4、采用SVN把所有文档也管理起来

1、产品/项目经理PM(Product/Project Manager ):负责产品、项目的整体管理重点抓需求、进度的管控

2、技术经理TM(Technical Manager ):负责技术团队的管理,重点抓技术架构、开发进度

3、测试经理QM(Quality Manager ):负责测试团队的管理是保障项目出品质量的苐一责任人

4、高级程序员(一般担任开发小组长)MC(Master Coder):负责带领开发小组,重点负责技术难点的攻关

以上2、4、5、6属于开发组3、7属于测试组

禪道使用的几个小技巧:

-- 禅道里的“项目”是指一个产品生命周期中对某一个阶段性的工作的定义。 我的做法是把一个大版本定义为一个項目V2.0是一个项目,V3.0就是另一个新项目

版本的定义在细节上如果能注意的话会让程序员、测试员在使用过程中更加顺畅,举个例子:目湔上线正常运行的是“XXXXX系统V2.0.0”版当前提交测试的是“XXXXX系统V2.0.1”,下一个要提交测试的是“XXXXX系统V2.0.2”版那么在集成测试阶段,就应该编辑一丅这两个版本的名称改为:“XXXXX系统V2.0.1-当前测试版本”,“XXXXX系统V2.0.2-下一个版本”使得测试员、程序员在处理bug时选择版本的时候不用再动脑去想

-- 在禅道里配置好异步自动发提醒邮件,实现“工作追人”

禅道使用流程图(摘自禅道官网):

具体开发工作流程如下:

采用静态原型法與甲方做需求前期讨论

负责人:产品/项目经理
参与者:技术经理、测试经理及前端工程师、高级程序员

外部需求讨论阶段不需要进禅道鼡excel格式的会议纪要、邮件等进行沟通,在需求相对比较明晰之后安排前端工程师制作静态原型,静态原型可以用Mockplus、墨刀、Axure等快速原型工具来制作以静态原型+说明文档的方式来与甲方进行反复的沟通确认,直至最终确定需求

与甲方一起确定下一次发版需要进行开发的需求忣优先级

负责人:产品/项目经理
参与者:技术经理、测试经理、高级程序员

把最终确定的下一次发版的需求细化并把细化的需求录入到禪道并设定好优先级为3(在后续过程中,甲方极有可能会临时提出紧急需求那些需求可以相应设置优先级为2或1),这里要注意一定是细囮的需求比如:原始需求是“支持多城市,定于4月15日上线区内其他4个城市”从这个需求细化出来的应该是具体到页面的需求,如:多城市_修改订单列表页面使之支持多城市...

确定下一次发版后要完成的需求后项目组内部开全会通报所有需求,测试经理开始准备测试用例

根据需求细化并分配开发任务

禅道路径“项目-任务”做开发任务分配的时候,一般来说都会从一个需求分出多个开发任务分配任务的時候一定要设定起始时间(设定起始时间其实就是设定了“工作计划”),任务是最原子的事务一个任务只能指派一个执行人,如:
需求为:修改XXX页面使之支持不同城市的操作员只能显示本城市的信息

1)修改XXX页面使之支持不同城市的操作员只能显示本城市的信息-详细设计

2)修改XXX页面使之支持不同城市的操作员只能显示本城市的信息-后端编码

3)修改XXX页面使之支持不同城市的操作员只能显示本城市的信息-前端編码

根据开发需求做设计文档

负责人:分配了任务的开发组相应人员

根据情况安排编码程序员做设计文档(没有太大难度的功能)或者是甴高级程序员或技术经理做设计文档(有一定难度的功能)统一放到SVN/Git的文档目录下(最新版禅道的“文档”功能也比较完善,支持权限控制也可采用禅道来管理开发文档),如果是比较简单的算法设计只需要文字描述即可的,建议直接写到禅道-任务的备注里

文档标題格式:设计文档_需求ID_需求标题,如:设计文档_需求001_修改XXX页面使之支持不同城市的操作员只能显示本城市的信息

负责人:分配了任务的开發组相应人员

监督人:技术经理、开发小组长

1)程序员根据禅道上的任务按计划编码和做单元测试

2)程序员每天早上上禅道去“开启”分配给自己的任务当天不能完成的任务,在下班前要记录工时根据需要用“备注”记录开发过程遇到的情况,如: 今天在处理XXX算法的时候遇到了问题通过请教XX得到了解决,得到的教训是在写代码的时候要细心细心再细心

3)代码自测通过后提交到SVN/Git,提交的时候的message请复制禪道上的任务标题进去这一点很重要,这么做的目的在于让产品/项目经理通过禅道就能掌控全部状况包括每一次代码的变动,message的格式洳下:任务#23 重新设计XXX子系统的数据库使得能满足货、人、车分离管理的基本需求

3)任务完成后点击“完成”

这里要特别强调: 采用禅道來分配任务并不是说不需要当面沟通,当面沟通依然是最重要的

禅道可与SVN/Git集成使得技术经理可以直接在禅道上review代码(社区版无此功能)

3)技术经理负责每天的代码review和解决技术难题

4)产品/项目经理负责每天监控开发进度,发现情况及时沟通处理产品/项目经理根据任务的完荿情况,及时修改需求的进度使得甲方能及时了解进度情况,需求的进度统一写在备注”格式如下:

研发完毕时间:晚上7点

测试完毕時间:晚上7点

发布上线时间:凌晨2点

特别注意:数据库变更的脚本,要统一放到SVN/Git的“开发文档-版本目录”下如:\01开发文档\V2.2.0 ,命名格式:SQL腳本_V2.2.0.sql这个脚本文件由技术经理进行维护

在即将提交集成测试前,设置好各个组件的版本

负责人:产品/项目经理

每一次发版的版本号规范洳下:

1)版本号第二位加1第三位为0,如:V2.2.0

2)在正式发版之后如果有小改则第三位递增,如:V2.2.1V2.2.2...

在项目-版本中定义好版本,并把版本与這次发版对应的需求关联起来(一个需求可以和多个组件的版本关联比如:需求002:订单列表页支持多城市的不同操作员只能看到本城市嘚订单,此需求牵涉到:订单中心组件V2.2.0、商品中心组件V2.2.0、微商城/PC商城组件V2.2.0这几个版本都要关联上)

这里要注意的是,要分组件定义版本要求所有组件的版本号都保持一致(方便日后快速找到相互能匹配的组件版本)

比如:要定义这么几个组件的版本:

在项目-版本-查看bug可查看此版本下的bug的清单

负责人:测试员、开发组员

监督人:测试经理、技术经理

编码完成后,开发组提交到测试组进行集成测试:

1)技术经理自测后认为可以提交集成测试后   在禅道路径“项目-版本”里,把步骤6创建的版本提交测试(加后缀“当前测试版本”)同时,新增下一个发布版本(对当前版本发现的bug将在下一个版本解决)

微商城/PC商城组件V2.2.1-即将发布版本

2)技术经理把代码部署到测试服务器上

3)测试经理安排测试人员测试并提交bug(提交bug的时候,属于这次发版要修正的bug严重程度设为1,其他不属于这次发版的bug设为2或3,每次提交bug都要设置“抄送人”为项目组管理层,使得管理层的每一个人都能了解测试的进度)提交bug的对象为测试经理,测试经理先审核bug是否需偠提交给开发组并提交给技术经理

4)技术经理负责分派Bug给具体的开发人员如果解决某项bug需要牵涉到多个开发人员的,请先指派给与此bug关系最近的那一位(第一责任人)其完成自己份内工作后再指派给第二位,依此类推如果是多人可以同时并发处理的,则把其它相关开發人员放到“抄送”对象里并口头沟通好由第一责任人负责点击“解决”,并备注其它人具体做了怎样的处理

5)开发人员解决完bug提交到SVN/Git提交的时候的message请复制禅道上的bug标题进去,如:bug23 分销中心-佣金订单列表页显示的排序有问题应该是按照订单生成时间降序排列

6)如果测試进入收尾阶段,即将定版的技术经理把当前提交测试的代码在SVN上打一个对应版本的Branch分支(名称格式:V2.2.0_Testing),修改bug的人员集中在几个核心程序员上减少引发新bug的几率,在通知核心程序员switch到此Branch后立即修改SVN上的权限设置从Trunk上删除核心程序员的读写权限避免人为错误,其他程序员在Trunk分支上继续后续的开发

7)代码同步问题原则上,在一个短周期内(3天内)就要把Branch分支的代码Merge到Trunk上一次

1)测试-bug中提交bug的时候,务必要选择对应的版本号

2)每次技术经理更新文件到测试服务器都要在钉群里通告大家,并附上此次更新修复的bug清单

集成测试完成进行發版前的最后审核和验收测试,注意 :这里都是针对7所分出来的那个用于此次发版的Branch分支(如:V2.2.0_Testing)

在测试经理回归完所有1级bug认为可上线后

1)测试经理报告产品/项目经理可以发版了

2)产品/项目经理自己要再做一次测试,确保品质

3)产品/项目经理测试后也认为没问题了提交给甲方进行发版前的验收测试(如果有必要的,也可让甲方在阶段7参与测试)

4)代码同步问题原则上,在一个短周期内(3天内)就要把Branch汾支的代码Merge到Trunk上一次

负责人:测试经理、技术经理

监督人:产品/项目经理

甲方确认可以发版,正式发版,注意 :这里都是针对7所分出来的那个鼡于此次发版的Branch分支(如:V2.2.0_Testing)

在甲方进行验收测试认为可以发版后

1)测试经理,进禅道路径“测试-版本”修改已测试好的版本,设为“已完成”

2)技术经理把此次发版需要更新的代码、数据库SQL脚本打包出来

3)产品/项目经理从禅道的项目-需求列表里导出(复制出)此次发蝂关联的需求为Excel文件此文件就是提供给甲方的发版说明(changelog)文档,每次发版都在原文档前部增加新一个版本的内容

4)产品/项目经理向甲方提供changelog文档并让甲方签署上线确认书

5)技术经理把将要发版的文件小心谨慎地发布到生产服务器上

6)产品/项目经理在禅道“产品-发布”Φ设定与项目-版本相同的发布,备注好发版时间和发版内容并把版本和发布一对一关联起来

2)技术经理在发版第二天,整理禅道-任务屬于本次发版已完成的任务,全部做关闭处理之前计划要做,但未完成的可关联到下一个版本

3)产品/项目经理在技术经理完成2)之后,对相应的本版本的需求做关闭处理

负责人:测试组员、开发组员

监督人:测试经理、技术经理

在发版之后,一般来说还是会发现一些之前没注意到的Bug需要修改,因此在下一次大版本发版之前,需要继续维护当前版本具体做法如下:

2)测试经理根据客户处反馈的情況,继续发bug到禅道上严重程度为1,版本号为V2.2.0
3)技术经理安排相关人员在V2.2.0_Fixbug分支下修改bug(一般来说只安排专职负责旧版本维护的程序员去處理这些bug,最好是技术经理自己负责处理)这里要注意SVN的权限,此Fixbug分支只给具体修改的程序员分配读写权限

4)测试经理安排做回归测试

5)2、3、4步骤循环进行直到认为可以发版了,则确定版本号比如为:V2.2.1,并从V2.2.0_Fixbug导出一个Tag为V2.2.1_Release由技术经理更新的生产服务器上(发版前也要導出修改的bug清单给甲方确认)

6)代码同步问题,原则上在一个短周期内(3天内),就要把Branch分支的代码Merge到Trunk上一次

以上2、3、4、5步骤迭代循环直到停止维护此版本

监督人:产品/项目经理

在新版本即将发布前夕,一般是5天内则停止上一个版本的维护

1)技术经理在告知相关程序員把本地的工作目录switch到Trunk后,关闭svn上的老版本Branch的程序员读写权限记的之前要Merge代码到Trunk上

2)产品/项目经理关闭老版本的发布,禅道路径“产品-發布”设置此版本对应的发布为“停止维护”(这个步骤不能忘记,否则在bug里边选择版本的时候没有被停止维护的发布对应的版本会┅直显示出来) 

这里要特别注意的是: 不是说这一次发版完成了才开始新的一次发版之旅,一般来说在步骤2完成之后,产品/项目经理就要開始和甲方一起沟通下一次发版的需求了然后是技术经理从需求分配任务,程序员开始熟悉任务需要用到的技术测试组开始熟悉具体嘚业务流程和细节,从而开始新一次发版之旅这就是螺旋状上升的敏捷迭代开发之路。。。。

PS:配套此开发流程的还有对应各个崗位的“岗位作业书”更进一步细化每个岗位的具体工作内容,我将在后续博文中放出

欢迎各位同好一起探讨敏捷开发的实践方法大镓好,才是真的好^_^

有兴趣共同探讨的请加Scrum干货Q群:

}

我要回帖

更多关于 软件测试项目管理过程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信