「飞行课堂第二期」刘晓光:互联网公司需要测试么?

编者按:fir.im「飞行课堂」旨在为开发团队提供更多移动开发和测试分发的技术经验和教训,分享最新最 IN 的技术观点与干货。感谢这些对技术执着的飞行导师接受我们的邀请,和大家面对面展开最直接的交流,希望我们的这次沙龙为你们带来技术思想层面新的突破。

雪球测试主管刘晓光@skytravelerfir.im 「飞行课堂第二期」北大孵化营站,发表了主题演讲。作为有3年开发、7.5年测试经验的coder,他总结了目前测试的相关工作,Top公司的测试实践,以及为不同开发团队需求提出了N条策略。以下为要点总结。

Top公司的实践

fir.im
TOP的公司现在是什么样的这种趋势?Facebook“号称”没有专职的QA。GoogleQA也非常少,Mircosoft、Amazon比较少用QA。2013年左右,微软砍掉了很多原来称为测试开发的工程师。这是一个趋势,国内互联网公司也在做去QA化的事情。

测试

fir.im
可以看到,传统的软件开发过程,基本上就是需求分析、设计,然后设计分两步,编码Coding、集成、实时交付。相应的测试也会有对应的工作,比如在需求阶段,可能会有针对需求的Review,以及确认。验收测试的设计,到设计阶段,有针对于集成测试的设计。到了coding阶段,单元设计测试,并不是测试人员来完成,基本上是由开发人员来完成的。到产品真正做出来后,这一部分又没测。

集成测试、系统测试、验收测试,是由测试人员来完成。需求、设计、代码、集成还有部署、运维这些阶段,可能测试工程师哪块都会参与一些。例如各种Review,然后配置管理,功能测试,到最后打包发布。

测试直接相关的工作
(图:测试直接相关的工作)

刘晓光的建议:

fir.im

1、如果公司比较小,不需要急速扩张,并且没有遇到明显的质量瓶颈,建议尝试不雇QA。
2、不用从思想上抵触QA,要考虑你真正想要的东西是什么?
3、Facebook一百多亿收购的WhatApp,团队有30多人,有QA测试系统。

具体建议:

一、建立质量文化

拆掉工作范畴的围墙

每个人要为自己的产出负责

持续学习团队

持续改进团队

你的上层建筑支持这些么?

二、选择好的架构

简单,可测试。

大规模降低使用和维护的复杂度。

质量特性:可靠,可维护,可拓展,可移植,可重用,可安装,安全。。。

三、选择好的开发模型

Scrum

看板

XP

其它各种好的实践

四、大规模有效自动化

测试金字塔

持续集成、持续交付

五、质量前移:实例化需求,UT,Lint,CR,TDD,ATDD。。。

六、质量后移

完善的监控系统(快速反馈)

完善的日志(定位,分析,挖掘问题)

灰度

快速上线

dev-op,test-op

砸钱去填坑

七、质量外包:众测、专项测试外包。

最后,在实际工作中,每个人都忙着自己的那一部分。在团队合作的过程中是否遇到过质量缝隙?需要有一个人像“串珠子”一样,将每部分工作串联起来。


以上是 fir.im 「飞行课堂第二期」刘晓光@skytraveler 的技术分享,特此整理,希望对你有用。

fir.im

fir.im - Meng

尺度中蕴含本质