测试经理必知必会:敏捷XP

提到XP想到什么?Windows XP ?(配音:晕倒死叉P)?

敏捷开发里面,也有一个XP,这里要按照英语字母发音,分开念。老司机就不示范发音了。

敏捷开发里提到的XP是eXtreme Programing的缩写,翻译过来是:极限编程。不是福报,不是编程累到极限的意思…

敏捷XP是对测试小伙伴、QA团队最有利,最友好的一个方(tao)法(lu),没有之一!

敏捷XP是Kent Beck等大牛在20世纪90年代发明的一种软件工程方法,是一种强调团队工作的工作方式。

之前文章说的Scrum是一种工作方式的框架,从组织到团队的设计,而XP关注的是具体的工程技术实践。换句话说,Scrum指明谁,去扮演什么角色,干什么活儿,多长时间,产出什么。

XP指导工程狮、程序猿怎么用什么姿势工作,怎么CP搭配提高效率。

官方说法 

XP旨在通过工程实践的合理搭配使用,使开发者们能够自信地响应客户需求。强调反馈环机制,客户与研发团队之间的反馈环,测试与开发的反馈环,具体代码实现跟单元测试之间的反馈环,结对之间的反馈环。

极限编程认为在软件研发过程中,变化是无所不在的,人们不应回避变化,而应该适应变化,通过对反馈的检视,去适应变化。具体反馈环见下图:

测试经理必知必会:敏捷XP

就这样吧,估计这种定义没多少人真的看-_-||

敏捷XP提出的具体编程姿势或者实践思路,很值得测试小伙伴们实践并推进,我们一一列出来,测试小伙伴们就明白了:

  • 测试驱动开发(TDD)
  • 接受测试驱动开发(ATDD)
  • 持续集成、持续发布(CI/CD)
  • 结对编程

之前文章里,老司机已经给各位小伙伴们科普过TDD、ATDD,多数公司里已经有了Jenkins等工具构建的CI/CD流水线,此处不再赘述。

结对编程(Pair Programming),即两个人一起编写代码,共用一套显示器及键盘,一位担任的是navigator的角色,另一位是driver的角色。即:一个人写代码,另一个人直接审查,看着不爽直接接过键盘继续编程。

正经的结对编程看起来像这样
 

Kent Beck等技术大牛表示:结对编程的前提是代码集体所有制(Collective Code Ownership),即代码为团队所共有,团队为代码的质量共同承担责任。而且,Kent Beck等大牛认为,结对编程好处还包括:

  • 及时完成结代码审查,减少代码缺陷率
  • 帮助人员的能力提升
  • 便于讨论,帮助攻关
  • 可以提高编程工作的专注度

对于敏捷XP的测试相关三条实践,即:TDD、ATDD、CI/CD,表示完全同意。

对于结对编程,老司机觉得,编程是个苦差事,需要鼓励,所以跟谁结对很重要…此处请不要自行脑补…

敏捷XP虽好,但是在很多领导看来,TDD、ATDD增加了代码量,花费了时间但是工程进度并没有有效前进。

结对编程,更是让领导们觉得人力成本直接下降50%,是可忍孰不可忍。基于此,我们常见的“敏捷开发”模(tao)式(lu)中,几乎看不到Scrum + XP的真正组合。

最后,下次在看到敏捷XP不要念成“叉P”,跟Windows没半毛钱关系。

老司机强调:所有把极限编程(XP)说成是极限加班的,100%是耍流氓…

源自公众号 自动化软件测试



留言