Prasad Ramanujam现在印度金奈的高知特信息技术有限公司担任高级项目经理。作为一名有12年IT业经验的前辈及敏捷方法上的公认,他经常在关于成功在组织里实施敏捷测试技术这一话题的业界会议上演讲。他通过为质量保证建立结构严谨、有战略意义的方法,支持了各行各业的许多跨国客户,使他们变成了高绩效的企业。
引言
曾为多个客户分析过一些项目的DevOps做法,根据经验我们发现要让测试社区接受DevOps做法还是有点勉强。这可以归结于几点原因:主要的是因为测试员基本都不知道DevOps会如何影响他们的常规测试工作。但是既然DevOps被定为成“going agile”的下一步,那么测试团队必须克服不安并接受DevOps做法。这一点只有从测试员的角度正确地了解DevOps才能实现,这也正是本文的目标。
DevOps是什么?
“DevOps”一词一般指:推动开发团队间合作关系的上升运动,在这里团队不仅仅指开发者还包括所有参与开发(包括测试员,业务员,PM,Scrum大师等)和运维(包括DB管理员,支持分析师和网络技术人员)生命周期的人员。DevOps是一个让项目团队以可预见的方法提供更快的结果的过程,它是开发和运维的缩写。它给生产带来了计划工作的快速流程。它背后的概念是:让开发者和运维者团队紧密合作,终让企业受益,在速度大化的同时保持质量。
为什么会出现DevOps?
当代码开发出来后却没有立即放到生产中时,IT运维要面对一堆的部署,客户得不到很多价值,部署常常一团糟,没有按本应该的那样组织。敏捷做法使得开发团队可以更轻易更快地做出改变,但是手动程序以及各种流程和工具间的不规则已造成大量错误,以至运维团队不能自信安全地部署生产他们开发的每个改变。他们努力不断部署时要面对的一些问题包括:
部署中昂贵易错的手动流程常常导致重新执行和重新发布。
开发和测试环境的部署过慢使得项目团队没有收益。
测试团队无法跟上所做变化的步伐,而且算他们能,生命周期后面阶段也会不断地发现缺陷。
组织常常无法将业务需求和市场趋势相匹配,以至于无法满足客户需求。
测试和开发过程中自动化的低效使用造成了大笔手动流程开销。
DevOps中在进行着什么?
DevOps包含一套流程,使得一旦开发团队完成代码,随时可以投入生产,然后从生产中将反馈发回应用程序生命周期。
理论上,一旦开发团队完成一个有完善功能的小功能,尽可能快地通过运维团队投入生产。这包含一段不断发展不断集成的代码。但是如果没有平行不断的测试,这些不断集成和交付的过程没有任何意义,这提出了下面的问题。