敏捷项目的开展—软件测试流程设计(10)

发表于:2020-4-14 11:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing教研团队    来源:51Testing软件测试网

  5.2  敏捷项目的开展
  敏捷是一个统称,不同的项目在实施敏捷开发会根据软件项目和软件企业内部的特点选择更适合自己的敏捷实施方法,如Scum、极限编程(eXtreme Programming,XP)、测试驱动开发(Test Driven Development,TDD)等。
  5.2.1 敏捷的框架及生命周期
  敏捷方法是一种试图通过小型的、自我管理的团队采用短的发布周期来促进迭代式软件开发的方法。软件的质量贯穿敏捷软件开发的每一个阶段,且非常重要,并提出很多关键的方法来保证在每一个迭代周期内及早发现且及时采取措施消灭开发过程中出现的错误。
  在敏捷方法提出的理念下,衍生出了很多不同的敏捷软件开发方法,如下面提到的Scrum、极限编程、测试驱动开发、重构和持续集成。
  Scrum是目前敏捷方法里最出名并且敏捷开发团队最熟悉的方法之一。
  敏捷管理项目所使用的框架就是Scrum。Scrum不是一种流程或一种技术,而是一个框架,是迭代式增量软件开发过程。框架包括一系列的预定义角色,人们可以应用各种流程和技术,解决复杂的自适应问题,同时也能高效并有创造性地交付高价值的产品。
  1986年,竹内弘高和野中郁次郎在“New Product Development Game”文章中首次提到将Scrum应用于产品开发。他们指出:传统的“接力式”的开发模式已经不能满足快速灵活的市场需求,而整体或“橄榄球式”的方法(团队作为一个整体,在团队的内部传球并保持前进)也许可以更好地满足当前激烈的市场竞争。
  Scrum框架包括Scrum团队及其相关的角色、事件、工件和规则。框架中的每个模块都有其特定的目的,对Scrum的成功实施和运用都至关重要。
  Scrum是轻量级的、容易理解的、难以精通的;Scrum能使产品管理和开发实践的相对功效(relative efficacy)显现出来,以便进行改进;Scrum的影响已经远远超出软件开发,成为零售、风险投资甚至学校完成各项任务的创新方法,正在改变着世界。
  既然Scrum是敏捷的框架,那么在敏捷项目中Scrum周期是如何执行的?
  图5-1是一个Scrum周期的执行过程。
  ▲图5-1 Scrum周期的执行过程
  把整个项目分解为若干迭代,即若干Scrum项目周期,而每个迭代称为一个迭代。迭代是一个时间概念,该时间周期是完成一组功能开发所需要的时间。
  迭代从Scrum团队打算把精力放在一组功能上开始,即着手开始实现该组功能开始。而这组功能是由Scrum团队在计划阶段从产品待开发功能列表中选择的。产品待开发功能列表是指一张关于软件开发所有可能的功能列表,该列表中的功能均设置了优先级。
  计划阶段结束后,所有从产品待开发功能列表里选出来的功能都会被加入Sprint待开发功能列表中,Scrum周期内会根据Sprint待开发功能列表中的功能列表进行跟踪。Sprint待开发功能列表体现的是团队要开发的具体功能的细节,或者是需求内提取出来的功能点,一旦Sprint待开发功能列表定义完成,就开始整个迭代周期。
  通常一个迭代周期会持续30天。在迭代期间,团队成员会聚在一起检查工作进展并确保每一个队员的工作效率。而在这个迭代周期的末尾,在Sprint待开发功能列表里定义的功能点将全部执行完成。
  完整的Scrum流程举例如下。
  (1)需要确定产品待开发功能列表(按优先顺序排列的一个产品需求列表),这是由产品责任人(Product Owner,PO)负责的。
  (2)Scrum团队根据产品待开发功能列表,进行工作量的预估和安排。
  (3)有了产品待开发功能列表,需要通过迭代计划会议来从中挑选出一个用户故事,这从用户的角度对系统的某个功能模块进行的简短描述。一个用户故事描述项目中的一个小功能,以及这个功能完成之后将会产生什么效果,或者能为客户创造什么价值。作为本次迭代完成的目标,这个目标的时间周期是1~4周,然后把这个用户故事进行细化,形成一个Sprint待开发功能列表。
  (4)Sprint待开发功能列表是由Scrum团队完成的,对于每个成员,根据Sprint待开发功能列表再细化更小的任务(task)。
  注意:细化到每个任务的工作量在两天内能完成。
  (5)在Scrum团队完成计划会议上选出的迭代产品列表的过程中,需要进行每日站立会议,每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么任务,承诺你今天要完成的工作,同时不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的迭代燃尽图(burn down chart)。
  (6)做到每日集成,也就是每天都要有一个可以成功编译并且可以演示的版本。很多人可能还没有用过自动化的每日集成,其实TFS(Team Foundation Server)就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译。如果通过,则马上执行单元测试代码。当全部通过时,就发布该版本。这时一次正式的签入操作才保存到TFS中,中间的任何失败,都会用邮件通知项目管理人员。
  (7)当所有用户故事(也就是Sprint待开发功能列表)完成时,表示一次迭代完成。这时,我们要进行演示会议,也称评审会议,产品负责人和客户都要参加,每一个Scrum团队的成员都要演示自己完成的软件产品。
  注意:本公司总经理最好也参加演示会议,这个会议非常重要,一定不能取消。
  (8)回顾会议(也称总结会议)以轮流发言的形式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮迭代的产品需求中。


查看《软件测试流程设计 从传统到敏捷》全部连载内容>>
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号