敏捷开发模式下的质量管理_第1页
敏捷开发模式下的质量管理_第2页
敏捷开发模式下的质量管理_第3页
敏捷开发模式下的质量管理_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、敏捷开发模式下的质虽管理前几天,笔者与一位在大型互联网公司从事质量保证的朋友交谈,作为互联网产品质量和测试的负责 人,他最近负责的质量管理方面遇到了很多困难。主要有:1) 测试团队在敏捷开发模式下的价值非常有限;2) 开发人员只顾自已写代码,没有任何文档,测试人员无从下手,3) 由于进度的原因,测试人员测试的时间非常有限,上线后出现很多问题;4) 由于测试人员得不到开发团队的认可,离职率非常高;5) 质量部门无法收集到数据,不能进行质量度量;6) 测试团队也有一批自动化测试专家,但派不上用场。这些问题可能很多开发团队都会遇到,总结一下,大致是这几个方面:1、 越来越多的企业希望采用,但没有把握

2、2、 习惯于传统的瀑布式产品开发流程已不满足快速发展需要,但大规模改动不现实3、 缺少敏捷软件开发专家和人才4、 技术人员需要观念的转变和方法培训5、 缺乏相应的质量控制方法6、 需要经常的和及时的质量度量、测试、决策7、 自动化测试不能落到实处,每日构建仍是纸上谈兵在现在行业中,需求变化太快,不管我们怎么努力去做,发现还是不能满足客户的需要,不管需求搞 得多么细,到交付产品给客户的事情,总是有这样那样的问题,这个时候就不得不去修改我们的软件,这 是目前很多企业尤其是互联网公司面临的一个挑战,如何解决这个问题?笔者先后在华为、阿里巴巴软件质量部门任职,最近也深入研究了腾讯敏捷开发平台TAPD

3、(腾讯敏捷产品开发)和 IGD(集成游戏开发)一些资料,对国内敏捷项目的质量管理有很多独到的见解,结合汉 捷咨询公司多年的项目经验,总结如下:1) QA 角色的转变QA 要从警察的角色转变到一个教练的角色。在以前,团队实施CMM 的时候,QA 更多的是一个警察的角色,他整天拿着一个 checklist、报告什么的到处去团队里面看,你是否 ok ,不 ok 就要怎么怎么样, 整天就干这个活,但是引入敏捷之后,QA 就觉得有点失落,都敏捷了,我都不知道该怎么下手了,在著名的通信企业华为的做法是将 QA 转变了一下,将 QA 更多的充当教练的角色,充当 SCRUMMaster 的角 色,他去指导项目

4、团队该如何去开这个站立式会议,该怎么去做迭代的计划等等指导性的工作,这样QA也觉得挺好,这样他能参与到在不同的团队中去,QA 的角色更多的偏向于全过程的敏捷活动指导,以提高产品开发效率和质量。QA 在这个过程中也能得到一些数据,如代码缺陷率,版本的不良率,上线遗留问题数,团队成员配合度等等。2)要使敏捷团队整体参与QA 和测试人员也是敏捷团队的一部分,作为敏捷教练,要向他提供支持和训练,以使作们适应开发 的快节奏。比如,如果你是敏捷团队中的测试人员,并且计划会议和设计讨论没有邀请你,或者业务用户 正在独立定义故事和需求,那你应该主动站出来和团队的其他成员交流,并偿试兰方协作”,即测试人员、开发

5、人员和业务专家。腾讯公司把业务专家称为BA,即 BussinessAnalyst , BA 和开发人员 DE、测试人员 TE 组成了敏捷开发团队,这些成员不仅仅把都在忙着最终的交付而努力,他们还乐于收集和分享信息, 与客户或者产品负责人协作以帮助他们充分展示自已的需求,从而得至他们的需要的功能,同时向所有人 提供项目进展的反馈。3)自动化回归测试敏捷团队没有自动化会成功吗?可能也会成功,但我们所知道的成功团队都依赖于自动化回归测试,如腾讯和支付宝公司的 Selenium 框架,阿里巴巴和淘宝网的QTP 框架。汉捷咨询认为,敏捷开发利用测试来指导开发,为了编写的代码使测试通过,需要快速而简单地运

6、行测试,没有短期反馈周期和安全的回 归测试,团队将很快陷入技术债务,缺陷不断增加,速度越来越慢。4) 提供并获取反馈反馈是敏捷的核心价值,敏捷的短期迭代可以提供持续的反馈以帮助团队正常运转,测试人员则通过 自动化测试结果、探索性测试的发现和系统实际用户的观察结果的形式帮助提供支馈。如你怎么知道客户 手里拿到了预期行为的正确示例?你怎么知道编写的测试用例正确地反映了这些示例?开发人员通过查看 测试用例能够理解应该编写什么代码吗?QA 和测试人员应该询问开发人员是否得到了足够的信息以理解需求并是否能够指导编码,询问客户是否理解质量标准,应花时间参与迭代计划会议和回顾会议以讨论这 些问题并提出改进方

7、案。5)构造核心的敏捷实践活动软件行业有一名老话是:软件质量是设计出来的。对于敏捷开发也是如此,汉捷咨询认为没有一些基 础的实践活动,无法产生出高质量的软件。1持续集成。持续集成(CI)是一项软件开发实践,其中团队的成员经常集成他们的工作,通常每人 每天至少集成一次,每次集成通过自动化构建完成。利用持续集成可以让缺陷在引入的当天就被发现并解决,降低缺陷修改成本;将集成工作分散在平时,通过每天生成可部署的软件;避免产品最终集成时爆发 大量问题。2灰度发布。这是互联网产品的一个特点,说白了,就是对用户一个逐步放量的一个过程,而且不要求团队要尽早的将产品包发布出来,也就是不要求马上发布给所有用户,而

8、是会分批的去发布,比如按号段发布,比如在公司内部先体验。发布的时候也有策略,比如发布时如何放量,对用户有些什么样的实验,技术上怎样做一些后台开关,运营上怎样跟进,怎样保证4 小时人员的留守,发布完后怎样收集用户反馈等等都会有一些统一的规则。比方实验室某 WEB 产品的发布,可以同时有多个版本,1.1 版可能会有 100%的用户在用,1.2 版可能只有 1%的用户在用,它们是一个交叉升级的过程,目前腾讯采用了该活动。3每日晨会:每个团队每天大概花 15-30 分钟,回顾昨天做了什么、昨天有些什么问题、同时也会介 绍每个人今天计划做些什么工作(特点:是站着开会)。笔者在阿里巴巴工作时,就经历过每日

9、晨会,一般主持人由敏捷团队的成员轮流担任,这个时候可以了解每天发生的问题。4结对编程:两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;操作键盘和鼠标的程序员被称为驾驶员”,负责实时评审和协助的程序员被称为领航员”;领航员检视的同时还必须负责考虑下一步的工作方向,比如可能出现的问题以及改进等。有助于提升代码设计质量;研究表明结对生产率比两个单人总和低15% ,但缺陷数少 15% ,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高,同时结对编程能够大幅促进团队能力提升和知识传播。5用户故事。用户故事是站在用户角度描述需求的一种方式;每个用户故事

10、须有对应的验收测试用例;用户故事是分层分级的,在使用过程中逐步分解细化;典型的描述句式为:作为一个XXX 客户角色,我需要 XXX 功能,带来 XXX 好处。用户故事的好处是:用户故事站在用户视角便于和客户交流,准确描述客户需求;用户故事可独立交付单元、规模小,适于迭代开发,以获得用户快速反馈;用户故事强调编写验 收测试用例作为验收标准,能促使需求分析人员准确把握需求,牵引开发人员避免过度设计。6迭代回顾会议。在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步;围绕如下三个问题:本次迭代有哪些做得好?本次迭代我们哪些方面还能做得更好?我们在下次迭代准备在哪些方面改进?会议需要Team 全员参加,气氛宽松自由,畅所欲言,头脑风暴发现问题,共同分析根因;会议关注重点是 Team 共同讨论优先级,将精力放在最需要的地方(关注几个改进就够了); 会议结论要跟踪闭环。总之,汉捷咨询认为,测试和质量是整个敏捷团队的职责,团队中的每一个人都应该关注

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论