研发效率破局之道
葛俊
前Facebook内部工具团队Tech Lead
立即订阅
3343 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要关注研发效能?
免费
研发效能综述 (3讲)
01 | 效能模型:如何系统地理解研发效能?
02 | 效能度量:效果不好甚至有副作用,怎么回事?
03 | 效能度量:如何选对指标与方法,真正提升效能?
研发流程 (7讲)
04 | 流程优化:怎样才能让敏捷、精益真正为我所用?
05 | 代码入库前:Facebook如何让开发人员聚焦于开发?
06 | 代码入库到产品上线:Facebook如何使用CI/CD满足业务要求?
07 | 分支管理:Facebook的策略,适合我的团队吗?
08 | DevOps、SRE的共性:应用全栈思路打通开发和运维
09 | 信息流通:让团队高效协同,让产品准确击中目标
10 | 答疑篇:反对996并不是反对奋斗
工程方法 (10讲)
11 | 研发环境:Facebook怎样让开发人员不再操心环境?
12 | 代码审查:哪种方式更适合我的团队?
13 | 代码审查:学习Facebook真正发挥代码审查的提效作用
14 | 质量与速度的均衡:让“唯快不破”快得更持久
15 | 开源:从Phabricator的开源历程看开源利弊
16 | 高效上云:如何用云计算来提高效能?
17 | 测试左移:测试如何应对新的开发模式?
18 | 蓝绿红黑灰度发布:这些五颜六色的发布到底怎么用?
19 | 不再掉队,研发流程、工程方法趋势解读和展望
20 | 答疑篇:如何平衡短期收益和长期收益?
个人效能 (11讲)
21 | 高效工作:Facebook的10x程序员效率心法
22 | 深度工作:聚焦最有价值的事儿
23 | 效率工具:选对用对才能事半功倍
特别放送 | 每个开发人员都应该学一些VIM
24 | VIM:如何高性价比地学习VIM的实用技巧?
25 | 玩转Git:五种提高代码提交原子性的基本操作
26 | Facebook怎样实现代码提交的原子性?
27 | 命令行:不只是酷,更重要的是能提高个人效能
28 | 从工作场景出发,寻找炫酷且有效的命令行工具
29 | 1+1>2,灵活的工具组合及环境让你的工作效率翻倍
30 | 答疑篇:关于价值导向和沟通
管理和文化 (6讲)
31 | 业务目标和技术目标两手抓:怎样打造高效团队?
32 | 从Netflix公开的著名PPT谈硅谷公司文化
33 | Facebook企业文化:工程师文化是创造力引擎
34 | Facebook工程师文化实践三大支柱之一做感兴趣的事
35 | Facebook工程师文化实践三大支柱之二拥有信息和权限
36 | Facebook工程师文化实践三大支柱之三绩效调节
结束语 (1讲)
结束语 | 超越昨天的自己,享受成长的快乐
研发效率破局之道
登录|注册

17 | 测试左移:测试如何应对新的开发模式?

葛俊 2019-09-30
你好,我是葛俊。今天,我们来聊聊测试这个话题。

为什么需要测试左移,测试右移?

测试可以保证产品质量,重要性不言而喻。但,要做好测试也比较困难,需要克服很多挑战。尤其是,持续交付、敏捷开发等开发模式为传统软件测试方式带来了更大的时间压力。
我们先来看看下面这种熟悉的测试方式都有什么问题:测试人员接到项目后参与需求评审,然后根据需求文档写用例、准备脚本,等开发提测之后正式开始测试、提 Bug、回归,测试通过后就结束了,项目交给运维上线,之后投入下一个项目继续重复这样的流程。
这样的流程看似没什么错,但有两大问题:
测试人员非常被动。当需求质量、开发质量较差的时候,测试人员只能被动接受。
但同时,测试又被认为是质量的责任人。如果因为需求质量、开发提测质量差而导致上线延期,大家通常会首先怪罪测试团队。
这些问题,在新的开发模式下愈发严重。因为这些新的开发模式有一个共同点,就是要缩短产品的交付周期,对自动化的要求越来越高,能够专门留给传统竖井流程中测试环节的时间越来越短,自然更难保证质量。
在极端的情况下,比如在持续部署的模式下,所有测试都是自动化的,已经完全没有留给测试人员专门进行手工测试的时间了。与此同时,测试的能力和质量又是这些开发模式成功的关键。否则,即使可以频繁地构建产品,质量不过关价值也为零。在我看来,《持续交付:发布可靠软件的系统方法》这本关于持续交付经典图书,更像是一本介绍测试的书,也是因为这个原因吧。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《研发效率破局之道》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(10)

  • 张裕
    管理团队理念的改变至关重要,将传统智能团队重组成全栈团队,不然很多实践只能流于表面

    作者回复: 是的。一般来说做事的顺序都是 人 -> 流程 -> 工具

    2019-09-30
    3
  • Jxin
    关于这个所谓的后端全栈。刚好有过思考,分享下。
    从经济学角度看,社会分工可以实现专人专事,进而解放生产力,让总收益更大,所有参与方都受益。但是分工就会有沟通协作的成本,工序多会增加出事故的概率。那么为什么以前强调分工,现在又推崇垂直整合呢(去qa和devops的理念)。我认为是软件稳定性诉求和软件工程开发模式共同决定的。以前,软件的用户体量小,事故和不可用的影响较小,并且开发模式大多是瀑布开发,时间上也比较经得起折腾。而现在,大的互联网公司,用户体量都是千万,亿级别的,系统稳定性诉求就高,往往都要4个9,5个9,且大部分推行的都是敏捷开发或伪敏捷开发,进而对系统稳定性和迭代速度的诉求就有了新的挑战 。而依旧保持分工的模式对接不上这个变化(天时),同时测试运维经过这几年的发展演变,也推陈出新有了很多新技术新框架,开发要学习测试运维技术栈的成本已经可以接受(地利),最后,新技术的轻便学习成本低,加上程序员的高薪,进几年也涌进了大量新鲜血液到互联网行业(人和)。故,这种垂直整合的模式一推出需求(去qa和devops),就有大批技术人员调整技术栈去迎合变化。而在精益开发,企业中台建设的推进中,甚至连产品思维也可能会落到开发的技能树中。

    作者回复: > ...那么为什么以前强调分工,现在又推崇垂直整合呢(去qa和devops的理念)。我认为是软件稳定性诉求和软件工程开发模式共同决定的...

    这种探究深层次原因的思考非常棒!我觉得一个非常重要的原因是交互方式的改变。互联网越来与普遍后,有了快速交付的条件。这个是快速迭代的基础。

    比如,2005年我在微软Windows团队的时候,大家都还是主要使用光盘发布Windows。DVD刻好交付给客户之后,再修改起来代价可就高了去了。所以当时主要用瀑布模式,非常强调在前期的计划,希望一次搞定。

    在有了快速迭代的条件之后,大家逐渐意识到快速迭代对快速、准确交付用户需要的产品非常有效,所以逐渐往这个方向发展。在这种方式下,全栈也就比较自然起来。

    这是我的思考 :)欢饮继续讨论

    2019-10-06
    2
  • 日拱一卒
    1. 测试左移和测试右移是在市场激烈竞争情况下的必然结果,做不到的话,迟早会被淘汰。
    2. 如果项目在用成熟的敏捷开发框架进行项目管理,团队中测试人员的比重会越来越少。
    3. 在做项目计划的时候,尤其是让开发人员给时间评估时,必须要为单元测试和自动化测试预留时间,一个功能可以交付的标准不仅仅是实现功能,对应的测试集也是需要包括的,这部分需要管理层有一个思维转换。
    4. 软件开发团队变为全栈开发全队的趋势越来越明显,全栈开发不止是对传统开发人员你的要求,也是对测试人员的要求,测试人员可以考虑扩展技能,例如自动化测试、运维、项目管理等,不要让工作中的角色限制我们未来的无限可能。

    作者回复: 再一次分析得很全面!赞!

    2019-10-01
    2
  • _CountingStars
    测试左移是 TDD/BDD 能充分发挥作用的地方了。右移大部分时间应该在预发布环境(共享生产环境数据)进行测试。

    作者回复: 是的,TDD的确是一个测试左移的方式,虽然我个人用的并不是很多。

    对于右移,当前情况的确是很多时间在预发布环境进行测试,但是趋势是越来越多的可以在生产环境上做。我在下一篇文章会详细讨论。

    2019-09-30
    2
  • 刘丹
    测试左移和右移,减少了耗时长的功能测试(例如从3个人变成1个人),增加了自动化测试(例如从1人个变成2个人),提升了测试的效率,总体上应该是减少了测试人员岗位数量。
    作为测试人员,要用全栈开发的标准来要求自己,不仅要横向发展,也要竖向发展。例如在学习多种测试技能(功能测试、自动化测试、性能测试、安全测试)、完成本岗位工作任务的基础上,根据个人和公司的情况向运维、开发、需求、项目管理等领域渗透拓展。

    作者回复: 是的。测试人员在这种趋势下,有压力的同时也是有更多的成长机会(无论是主观还是客观情况要求)。

    2019-09-30
    1
    2
  • 大风起兮
    测试左移能否成功,依赖左移的测试工作量是不是能被工具化和研发人员自测消化掉,不然就累死QA了(去QA,哈哈)

    作者回复: 这个玩笑过分啦,哈哈

    2019-11-03
    1
  • 高倩
    测试左移和右移,对于测试来说是好事情,可以掌握整个需求的全面性,来源以及价值。
    但是目前会存在一个问题,就是没办法完全依靠左移来提高原来竖井模式的测试效率,测试既要左移,右移,又要进行测试。比如正在进行一个项目的测试,此时产品又提了几个需求,测试陷入车轮战,会很疲惫。

    作者回复: > 没办法完全依靠左移来提高原来竖井模式的测试效率,但是应该也都提高一些效率。时间花在这个上面比只花在竖井测试环节,对团队的总体效率是提升的。

    另外要加强开发自测。多让他们做左移了的测试。

    2019-10-22
    1
  • 刘晓光
    测试左移可以提高开发测试比么? it depends,它俩没有绝对的因果关系。切记。哈哈。

    作者回复: 听起来是有故事的人 😀 可以分享一下吗?

    2019-10-01
    1
  • 李双
    有学习一新思路
    2019-09-30
    1
    1
  • 沫沫(美丽人生)
    有个问题请教一下 ,现在我们的代码管理有开发分支,测试分支和发布分支 ,如果现在开发左移,让研发参与更多测试工作的话 ,则还需要有一个供研发自测的测试分支吗?因为如果在开发分支上测试的话,代码频繁提交会影响测试的有效性。盼复。

    作者回复: 如果能够减少一个分支当然最好。开发自测最好能首先在自己的环境上测。不行的话定时在master上部署到一个环境让开发自测。 可以参考一下第六篇文章。

    不知道我解释得清不清楚 :)

    2019-11-16
收起评论
10
返回
顶部