问题/现象:

业务信息流转的某些环节,会向相关人员发送通知邮件,邮件中附带有链接,供相关人员进入察看或处理业务。客户要求邮件中的链接,需要进行限制,只有特定人员才能进入处理或察看。总管想了想,应道没问题,不一会儿就改好了,在业务信息的查询方法中添加了限制——非处理人不得进入。测试这边,忙得脚不沾地,一人扛了两个项目的测试,但还是按照预先设计的测试用例,对该修改进行了测试,测试结果ok,非处理人通过邮件链接进入后,确实提示了“你没有权限,翻滚着离去吧”。

当晚发布生产后,客户一封邮件甩过来:管理员和法律部的为何看不到业务数据了!?没法工作了!

以为我们很辛苦才找出问题所在?No,一干人等晃眼一看,不,连代码都没有看,把总管一审问,就清楚原因了。总管修改的查询方法是公用的,管理员和法律部查看、维护业务信息,都得从这过;他这一修改,相当于加了个栅栏,全给拦住了,而他自己根本就没有想到会影响其它功能。项目经理郁闷,这么简单个原因,就得发紧急版本,咋个跟领导解释嘛,你好歹也整个高难深的问题撒。测试也后悔,当时真不应该把这个场景的回归优先级放那么低。

原因:

流入:1、开发人员对哪些是公用方法只有一个模糊的意识,不清楚具体有哪些故事涉及到了这个方法,也没有与相关负责人沟通修改方案,也没有将此信息在站会或其它形式上分享出来。

流出:1、测试没有对相应的回归场景进行测试,其原因在于当时测试人力存在瓶颈,故对回归用例排定了优先级,该场景的优先级较低,最后由于需按时封版,就舍去了这部分用例。优先级的排定,是测试根据经验和与各故事负责人讨论的结果,平衡质量风险和进度后确定的。

预防措施:

1、建立影响评估机制。

添加检查项,开发人员在将故事、故障、技术任务转换为开发完成状态时,须检查是否修改了特定类中间的方法,只要有修改,就须在卡片中标出,并在站会上分享出来。

所有人员在站会上获取信息后,评估自己的故事是否有受到影响。

测试人员根据大家提供的信息,排定回归测试用例及其优先级。

这个特定类,将根据项目的运行,每个迭代进行回顾和更新(如有必要)。

2、建立最小测试集。

业务代表和测试人员,根据业务特点,制定最小测试集,覆盖所有必需的故事。每次迭代,不管有无影响,均须完整执行这个测试集。

经验:

放过没有系统的权限设计不谈,此次问题说明了变更影响分析的重要性。

最重要的两点是信息的收集和影响点的识别。具体方法可以视项目特点而定。可以是重量级的追踪矩阵,也可以是轻量级的检查单加头脑风暴,成本和收益对等即可。关键是保证影响所带来的质量风险被压缩在可控和可接受的范围内。

同时,对于会给业务造成致命和重大影响的故事,是无论如何都需要测试通过的。如果没有时间进行全回归(对于很多项目,测试人力估计都是瓶颈所在),这一块测试所需的资源,是必需保证的。

所以,启动会上,迭代范围和故事点的评估,并不只是开发关注的事情,测试也需要给出信息,以便让项目组给出更为符合自身节奏的迭代计划。

Lessons Learned 1(敏捷项目中的变更影响分析)的更多相关文章

  1. 对某项目中Vuex用法的分析

    上周五刚发布一个线上版本,趁着新的需求和bug还没到来,决定分析一下正在维护的一个使用Vue 2.0 开发的后台管理系统中Vuex部分代码.这部分代码不是我写的,加上我一直在“使用”现成的而不是“搭建 ...

  2. hello1 web项目中web.xml作用分析

    该web.xml文件包含Facelets应用程序所需的几个元素.使用NetBeans IDE创建应用程序时,将自动创建以下所有内容. 指定项目阶段的上下文参数: <context-param&g ...

  3. 如何对项目中的问题进行分析——FPGA失败案例小结

    本人最近在做一个小项目,自己取名叫做<基于zedboard的千兆以太网底层设计>,一般我都是写好各模块的verilog代码,确定模块没bug后再做整个系统级联,之后直接先进行综合看看有没有 ...

  4. 敏捷团队中的QA由来

    QA,全称为Quality Analyst,即质量分析师(有些称为Quality Assurance,即质量保证师).为什么它总跟质量扯在一块?感觉这个角色明明做的都是测试的事情,为什么不直接叫做te ...

  5. PHP项目中composer和Git的组合使用

    highlight: 在国内由于众所周知的原因,composer的package可能无法访问,解决办法是使用中国的全镜像: composer config -g repositories.packag ...

  6. Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码

    Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够分析我们的项目文件. 作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 R ...

  7. 《AndroidStudio每日一贴》2.高速查看项目中近期的变更

    <AndroidStudio每日一贴>2.高速查看项目中近期的变更 高速查看项目中近期的变更,使用快捷键: option + shift +c 很多其它有用技巧请查看<Android ...

  8. 敏捷组织中PMO应遵循的准则

    敏捷改变了人们的工作方式,不仅仅是开发部门,而且还包括其它的部门,例如HR.财务以及PMO等.在大多数组织中,PMO是一个控制体.它指导项目团队的规范.模板以及流程.目前,大多数的IT组织都敏捷化了. ...

  9. 如何使用Worktile进行敏捷项目开发管理

    Worktile在任务管理上采用了看板视图,非常适合进行敏捷项目开发管理.事实上,在开发Worktile的过程中,我们也是自产自销,使用Worktile管理Worktile本身的开发过程,在本文中跟大 ...

随机推荐

  1. SRM 146 DIV1 800

    Problem Statement      The purpose of a roundabout is to control the flow of traffic at a busy inter ...

  2. Linux下的tar压缩解压缩命令详解

    转载自http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.html tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压 ...

  3. getGLES1ExtensionString: Could not find GLES 1.x config!

    编辑模拟器中  Emulated performance 中不选  auto 和  Hardware - GLES 2.0,选择Software-GLES2.0.解决问题

  4. centos 6.5 查看、开启,关闭 端口

    查看所有端口   netstat -ntlp   1.开启端口(以80端口为例)         方法一:            /sbin/iptables -I INPUT -p tcp --dp ...

  5. scrollview技巧

    一行 CGFloat buttonX = 0; CGFloat buttonY = 25; CGFloat buttonW = 37; CGFloat buttonH = 60; CGFloat ma ...

  6. freeregex-0.01 使用文档

    -- freeregex,简化字符串处理 freeregex使用大体分为两个部分: 正则确定 功能操作 正则确定:共有EMAIL.IP等静态属性:anyOf(String regex)静态方法 :和o ...

  7. android 各种xml资源的引用方式

    更多资源类型 本页定义了其它一些具体的资源类型,包括: Bool 存放布尔值的XML资源. Color 存放颜色值的XML资源(十六进制颜色). Dimension 存放数量值的XML资源(带计量单位 ...

  8. Synchronized和Static Synchronized区别

    通过分析这两个用法的分析,我们可以理解Java中锁的概念. 一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念), 一个是全局锁(该锁针对的是类,无论实例多少个对象,那么线 ...

  9. notepad++的CoolFormat代码格式化插件使用

    因为notepad++的NppAStyle插件只支持格式化C.C++.C#.Java这四种编程语言的代码,所以本人推荐使用这个CoolFormat的插件,相比于NPPAStyle,CoolFormat ...

  10. JsonString,字典,模型之间相互转换

    NSData转字符串 [NSString alloc] initWithData: encoding:] 模型转字典 attInfo.keyValues 字典转模型 ZTEOutputInfo *ou ...