`
fantasy
  • 浏览: 519391 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【阿里的感悟】质量该如何做?

 
阅读更多

程序员可能都认为质量很重要,但是很多项目质量都不是很高,原因可能是

  • 程序员是乐观的,觉得自己写的程序没什么问题。
  • 程序员不愿意做测试,做测试没有成就感。
  • 程序员没有时间做测试。

我觉得提高质量,最重要的是提高质量意识,只要你肯花时间,零BUG也是很容易实现的,我所在的团队就成功实现了几次零BUG的项目,零线上故障,冒烟测试都是一次性通过。我们一个迭代的周期是两周,通过几个流程来保证质量:

 

需求评审(半小时)-设计评审(1小时)-单元测试(1天)-晨会(每日)-代码审查(1天)-冒烟测试(半天)-项目总结(半天)。 

 

 

1: Code Review(代码审查)

在一次迭代中会进行四种Code Review:

  1. 自我Code Review,自己写完代码,在自测前进行一次Code Review。
  2. 结对Code Review,结对(本文所描述的结对是指两个人一起设计,分开实现代码)的同学使用Tala工具(由我们团队开发的阿里巴巴内部Code Review工具)搜索出你在这个项目中修改的所有文件,然后一个一个审查。
  3. 专家Code Review,可能结对的同学Review存在一定的局限性,所以项目经理会对一些核心功能进行Review。
  4. 主动Review,团队中有的同学提前完成功能,主动去Review其他同学的代码,这也是团队合作的一种表现。

代码审查的时间,按照情况有三个时间:每日(有时间的话),提测前2天(主要是这个时间)和提测后(如果项目比较紧,这个很少会出现,有些问题即时测试了也发现不了,必须通过Code Review)。

 

2: 单元测试

大家都知道单元测试是非常花时间的,所以我们把单元测试的时间主要花在测试业务逻辑上(Service)。在单元测试的过程中,根据不同的情况我们采用了以下四种方式:

  1. 结对单元测试,由结对的人帮助你写单元测试。
  2. 边实现边写单元测试,项目时间比较充裕的时候,自己在实现的过程中写单元测试。
  3. 测试驱动。业务逻辑比较复杂的时候。
  4. 补写单元测试,这出现在项目比较紧的时候,或者因单元测试没有覆盖的流程所引起的BUG。

我们追求的是单元测试的行覆盖率达到70%,目的是希望单元测试能覆盖大部分业务逻辑。

 

3:团队合作

很多时候质量低下,源于没有时间,比如团队中有的同学实现某个功能发生了延迟,那么他肯定没时间开写单元测试,帮别人做CodeReview,那么这个问题就应该在晨会的时候知会团队成员,由其他团队成员帮助你去完成这些事项,因为我们是一个团队。 

 

4:冒烟测试

提测前我们会进行一次冒烟测试,目的是测试核心流程是否正常,因为我们要求冒烟测试必须一次性通过,所以在冒烟测试前,程序员必须按照测试的check List做最后一次检查,这样可以调动大家重视质量的积极性。

 

5:项目总结

在项目总结的时候,针对于BUG我们会做如下分析

  • 如果项目BUG比较多,那么大家一起分析原因一般前端功能比较多的,BUG会多。后端功能,BUG会比较少。有的时候项目比较紧,以上有些流程没有完全走到,会引起很多BUG。
  • 如果某个成员BUG比较多,那么由他自己先分析下BUG产生的原因,然后加到下次Code Review和自测的check List里。
  • 重复BUG的分析,出现重复BUG是比较严重的问题,这一般都是由于重构引起的。
  • 单元测试可避免的BUG分析。

我们使用一套闭环的方式来保证项目质量:

审查(按照checkList进行需求,设计和代码的审查)- 测试(自动化,冒烟和功能测试)-总结(总结出checkList)

那么再回答下开篇的几个问题

  • 问:程序员是乐观的,觉得自己写的程序没什么问题。

      答:通过以上这些流程提高质量意识。

  • 问:程序员不愿意做测试,做测试没有成就感。

      答:通过写自动化测试脚本来增加程序员的成就感。

  • 程序员没有时间做测试。

      答:通过团队合作来弥补某些成员没时间做测试的问题。

 

  • 大小: 21 KB
分享到:
评论

相关推荐

    阿里工程师的自我修养.zip

    这本书由阿里资深专家撰写,汇集了他们在职业生涯中的深刻感悟,旨在帮助技术人在面临中年危机时找到持续成长的路径。以下是对书中的关键知识点的详细解读: 1. 结构化思维:在IT行业中,结构化思维是解决问题和...

    架构设计自我感悟新成

    ### 架构设计自我感悟新成 在信息技术领域,架构设计是确保系统高效稳定运行的关键。通过对历届中国系统架构师大会(SACC)的回顾,我们可以深入理解架构设计的重要性和其发展历程。以下是对给定内容中涉及的核心...

    电子商务实习日记.docx

    1. **电子商务基础**:实习的公司主要通过阿里巴巴和淘宝平台进行销售,说明电子商务在现代商业中的重要性,尤其是B2C模式。实习者在学习电子商务的基础知识,包括网上购物流程、平台操作、客户服务等。 2. **职员...

    学生顶岗实习总结.pdf

    通过对“学生顶岗实习总结.pdf”文件的阅读,我们可以清晰地看到一位学生在实习期间的实际体验与感悟,以及其对国际贸易和教育两个领域的理解。 在顶岗实习过程中,学生首先体会到的是理论学习与实际业务操作的差异...

    风景初三作文3篇.docx

    虽然提供的信息中并未直接包含技术相关内容,但从文件标题和描述来看,文章主要讲述了作者在旅行过程中的见闻和感悟,因此我们可以从信息技术的角度出发,探讨如何利用现代技术手段记录并分享旅途中的美好瞬间。...

    马云创业语录读后感精选.doc

    总结来说,马云的创业语录是对成功哲学的深刻阐释,他以自己的故事和感悟,为当代创业者指明了前进的方向。他的观点和建议不仅适用于商业领域,更广泛适用于人生的态度和方法。阅读马云的语录,我们能够感受到一种...

    weiyuan

    【标题】"weiyuan"很可能是指一个个人博客项目,可能是博主用来分享技术知识、个人经验或者生活感悟的平台。由于没有提供更多的标签信息,我们可以根据"博客"这个概念来探讨一些相关的IT知识点。 博客系统通常基于...

    25种快乐的方法

    9. **心理健康应用**:如Headspace,提供冥想指导,帮助用户放松心情,提高生活质量。 10. **旅行规划工具**:如马蜂窝、TripAdvisor,规划理想的旅行路线,享受探索世界的快乐。 11. **在线游戏**:多人在线游戏如...

Global site tag (gtag.js) - Google Analytics