微信公众号编辑部的小伙伴们找我约稿,希望我来讲讲作为一个工作7-8年的”老人”,在搜狗印象最深的一件事是什么,有什么感悟,对新人有哪些要说的。

我想讲两个故事给大家。

讲故事前先做一下自我介绍,我叫诸葛东明,31岁,搜狗浏览器测试组Leader。2006年开始北漂生活,2008年加入搜狗,见证了搜狗浏览器的诞生,然后陪着它一起走到今天。

7年之间,我已经记不清上线了多少个版本、运行了多少遍测试用例、提交了多少个BUG、奋战了多少个通宵达旦,但是还是忘不了每次战友离开时那淡淡的忧伤。

曾经多次有人问我,为什么你还不跳槽?

因为一份坚持,从我的leader、从我的BOSS身上学到的那份坚持。也许它听起来有点冠冕堂皇,但请听我慢慢道来。

故事之一

时间大概是在2009年。在浏览器各项指标中,项目组上下一直极为重视浏览器的稳定性指标,也就是需要测试浏览器的崩溃率。为了改善这一崩溃率,只是通过常规的手工测试手段是保证不了的,这需要使用自动化技术。

起先,我们使用了BHO技术来完成浏览器内核的自动化测试,自动化脚本可以使得浏览器自动地进行前进、后退、导航和刷新等操作。但是这一技术的缺陷是无法进行浏览器内核以外功能的自动化操作,所以随着新功能不断地增多,BHO技术已经无法满足。

之后,我们尝试使用业界比较成熟的QTP进行自动化测试,通过控件识别+键盘快捷键等方式,内核之外的功能也逐步纳入到稳定性测试之中。但是随着浏览器2.0版本的发布,内核变为Trident+Webkit双内核,QTP无法有效识别Webkit内核的控件。

此外,更多的困难也随着项目的行进不断地暴露出来:

1.QTP软件体积庞大,随着测试机由两台不断扩充到几十台,每次部署到新环境非常耗时间。

2.QTP自动化脚本日积月累,已经庞大到几十个组合动作,脚本维护成本巨大。

3.QTP所使用的VBScript脚本无法支持多线程等功能,这使得自动化脚本所能操作的对象比较有局限性。

4.我个人的测试工作已经忙得没日没夜,同时还要维护自动化脚本。

5.更为致命的一点,自动化脚本的作用受到质疑。每次浏览器上线前,自动化测试没有发现什么问题,但是上线后仍然有大量的崩溃问题,这些崩溃问题在测试环境没有被提前发现。

诸多的困难之下,我逐渐对自动化丧失信心,开始质疑这一方法的可行性。在我的学习经历中,所接受到的知识是自动化技术是用于解决重复性的、有预期结果的测试用例回归,我们只能让机器按照我们提前设定好的步骤去执行,然后对比实际结果是不是符合预期。而使用自动化技术进行随机性的操作去发现未知的问题,这行不通。

因为这个问题,我和我的老大鲁剑争论了多次,我坚持认为自动化发现不了未知的问题,过去一年多的实践就是最好证明。而鲁剑始终坚信自动化可以发现影响浏览器的稳定性问题,未来可以作为评估浏览器上线的标准。

我放弃了,但是鲁剑没有放弃。

他后来做了两件事:第一,让测试开发林飞使用python重写稳定性自动化脚本,以此来克服QTP的诸多问题。第二,让林飞每天查看浏览器的崩溃栈,根据栈信息分析可能的操作路径,然后将这些操作路径转化为自动化脚本。这项工作大概持续了一个月之久,林飞通过每天不断地动作补充,建立了三百个庞大的浏览器动作组合脚本。基于python面向对象的特性和更为高效的随机算法,稳定性脚本在效率、问题发现能力和脚本可维护性上都取得了进步。

通过这个脚本,我们多次在测试阶段就发现了潜在的崩溃问题,避免了问题的遗漏。这一通过随机算法自动化测试浏览器的方式,已经成为国内浏览器厂商必备的评估方法。

故事之二

时间大概也是在2009年,距离搜狗浏览器第一个版本上线后的半年。有一天,公司突然发全员邮件,告知王小川已不再管理搜索团队,只负责桌面团队的管理工作。这意味着什么,小川管理的团队拦腰砍半,原因可能是老张Charles和小川意见不合,不支持研发搜狗浏览器。

一般人遇到这种情况,自己努力工作却不被上级老板支持,也许就此放弃收拾收拾就走人了,但是在我眼里的小川是这样的:

他不但没有消极应对,反倒在浏览器上加大了精力投入。他那时每天会花2小时对浏览器进行测试,经常会报一些路径复杂的BUG给我们。作为测试你会懂那份压力的,你的大BOSS掌管着一个上百人的公司,他不但每天要处理各个产品线的管理事务,而且每天都在测试你测试的产品,发现你发现不了的BUG!与小川共事多年的Better说,从未见过小川在浏览器上投入如此大的精力,他甚至已经不管那时的搜狗音乐盒项目了。

那时候我下班都很晚,基本上是晚上11点以后。工位上已经没有多少人,只剩下浏览器的开发和测试。小川也没走,他有时会走到我们的工位上转转聊聊,自邮件一事之后,我见他嘴角多了不少裂纹,那是着急上火的原因。

隐忍一年之后,搜狗浏览器2.0上线。上线当天还出现了一点小意外,小川在向Charles演示浏览器的时候出现了BUG,我们紧急赶到Charles的会议室来处理,我虽然难忘在大BOSS前处理BUG的窘境,但是更加难忘小川紧坐在Charlse旁,不断地讲解着浏览器的作用和价值,眼神中流露着那份渴求得到认可的期望。

最终浏览器被老板认可,小川重新执掌搜索部门,搜狗得到新生,分拆独立之后,从200人的搜狐研发部门,一路扩充为今天3000人的搜狗公司。

逆境之下,坚持不懈,不忘初衷。这就是我在搜狗最大的收获。

最后,我想分享一段摘文来结束今天所讲的故事,希望对各位小伙伴们有所启发。

“未来的某一天,他们会回顾这段共同度过的时光,对于那些痛苦的时刻,只是过眼云烟,或者付之一笑,他们会把这段时光看做人生中奇妙的巅峰时刻。”

--摘录自: [美]沃尔特·艾萨克森.“史蒂夫·乔布斯传

图为搜狗浏览器周年纪念徽章

听完了成长故事,有木有感觉画面感特强犹如身临其境呢,有木有特别感动,想问问我们的Leader更多的问题呢?请将您的问题回复给我们,我们会在之后的推文中选出具有代表性的问题一一作答哟~

欢迎回复“177:您的问题”到“搜狗测试”公众号和我们一起交流~

#说说成长#搜狗工作感悟相关推荐

  1. 从屌丝毕业生到三次优秀员工(腾讯三年工作感悟)

    本文旨在分享在腾讯近三年的几点工作感悟,都是个人总结的能有效提升自己和工作成效的点,也是做导师时经常和同学分享的内容,其中也会穿插一些实际工作中的例子来说明(可能反例比较多).若能对其他同学,尤其是刚 ...

  2. 抖音张一鸣:我的大学四年收获及工作感悟

    今天分享一篇关于个人成长的文章,字节张一鸣先生在读书.工作以及创业时期相关的文章,从他写的一些文字中确实能看出来是一个很精进的技术控和创业者. 他的一些鞭策自己的方式.思考问题的方式.以及工作感悟都或 ...

  3. Mobvista首席架构师蔡超:工作感悟之失败与成功,我的8点总结

    蔡超 读完需要 9 分钟 速读仅需 3 分钟 蔡超,Mobvista 技术 VP 兼首席架构师,SpotMax 云服务创始人.拥有超过 15 年的软件开发经验,其中 9 年任世界级 IT 公司软件架构 ...

  4. 读《张一鸣:我的大学四年收获及工作感悟》有感

    ===============以下是原文====================== 一.大学里的三点收获 2001年我考入了南开大学,起初大学的生活是让人有点失落的,但慢慢地从安静朴素的校园和踏实努 ...

  5. 抖音CEO张一鸣:大学四年收获及工作感悟

    来自:Datawhale 在生活工作当中,我们经常会发现:为什么有的年轻人创业越做越大,有的年轻人创业却越做越小? 为什么同时进入职场的年轻人,两三年后达到的高度可能相差甚远? 一个优秀的年轻人,和一 ...

  6. 工作感悟之撤掉分公司的断臂之危

    一个人的力量毕竟有限,也许你和你团队所做的努力终不能挽救一个公司,那么它的败亡势必然的,管理者的不作为是不能让项目进行下去的最重要的一个原因.一堆人在一起满怀欣喜信心百倍地干了,结果未必就令人满意,那 ...

  7. 头条CEO张一鸣:我的大学四年收获及工作感悟

    作者:张一鸣 在生活工作当中,我们经常会发现:为什么有的年轻人创业越做越大,有的年轻人创业却越做越小?为什么同时进入职场的年轻人,两三年后达到的高度可能相差甚远?一个优秀的年轻人,和一个普通的年轻人之 ...

  8. 张一鸣的大学四年收获及工作感悟!网友:我们不一样...

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]点击领取全栈资料:全栈资料 最近看了不少关于字节张一鸣先生在读书.工作以及创业时期相关的文章,从他写的一些文字中确实能看出来是一个很精进的技 ...

  9. 四年收获及工作感悟。

    最近看了不少关于字节张一鸣在读书.工作以及创业时期相关的文章,从他写的一些文字中确实能看出来是一个很精进的技术控和创业者. 他的一些鞭策自己的方式.思考问题的方式.以及工作感悟都或多或少对于我们也许有 ...

最新文章

  1. Win7碎片整理在哪?
  2. 关于安装nagios make all时出现问题的解决方法
  3. SQL查询语句大全集锦(一)
  4. sigsuspend的理解
  5. android xml文件操作类,android操作xml
  6. 【专栏】好Leader和差Leader的8个区别
  7. 前端ui框架_跨屏建站发布同名响应式前端ui框架
  8. java spring框架怎么学_JAVA学习之路~spring框架(一)
  9. Mysql5.7后的password加密和md5
  10. ICCV 2019 | 清华等联合提出高精度、高效率点云3D重建网络框架PointMVSNet
  11. 【操作系统】—操作系统的概念 目标和功能
  12. 下一站,人到三十而立之年有感!
  13. ASP.NET Google Maps Javascript API V3 实战基础篇一检测用户位置
  14. 2017-09-16
  15. 关于iOS6应用中第三方类库不支持armv7s的问题解决
  16. [Markdown] Markdown使用 - 持续更新
  17. php文件代码格式化,php代码格式化工具(phpCodeBeautifier)
  18. Jsp jsp实现原理
  19. 使用 Docker 部署 MediaWiki
  20. 231313132131

热门文章

  1. 搭建Jenkins+Jmeter+Ant自动化集成环境
  2. 通讯工程项目管理软件
  3. 会议技术发展与高清视频会议系统
  4. c语言中strtok函数详解,手把手教你自主实现字符串切割函数,内附详细代码。
  5. matlab数学建模作用,matlab数学建模基础
  6. excel序号怎么自动排序(序号自增,序号高度不一致或占有的单元格数量不一致)...
  7. MacOS卸载自带软件
  8. 阿尔法大蛋智能机器人功能_科大讯飞阿尔法大蛋人工智能机器 真的很智能吗...
  9. “货运版滴滴”货拉拉又获巨额融资,同城货运市场生变?
  10. 360万数据解压出错