岁月如梭,时光飞逝,一转眼我已经在测试这一行业摸爬滚打7年了。作为一个工作7年的tester,我想说说成长,说说我在搜狗的成长,说说我在测试人生的成长。

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

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

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

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

故事之一:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

故事之二:

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

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

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

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

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

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

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

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

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

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

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

2008入搜狗,见证搜狗浏览器的诞生!说说我在搜狗做测试这些年…相关推荐

  1. 打造高速浏览器,逐鹿搜索市场,搜狗高速浏览器2.0值得期待

    输入法给搜狗带来的是口碑和认可.因为输入法的成功,sogou软件的品牌被确立,在这个前提下,2010年4月8日,搜狗高速浏览器2.0正式版发布.搜狗浏览器是国内首个真双核引擎浏览器,完美融合全球最快的 ...

  2. 搜狗服务器页面找不到了怎么办,处理搜狗浏览器提示“无法解析服务器的DNS地址”的方法...

    搜狗浏览器是市场上的主流浏览器之一,很多用户对于搜狗引擎一直是很喜欢的,因此在电脑中就会安装这款软件的客户端版本.小编也是搜狗浏览器的忠实粉丝,但是最近在使用浏览器的时候频频出现"无法解析服 ...

  3. 打开html就自动到搜狗网扯,今天一打开IE浏览器,页就一直是搜狗网址导航,怎么改也改不掉,...

    今天一打开IE浏览器,页就一直是搜狗网址导航,怎么改也改不掉,现在非常怀疑你点开的IE图标就是一个流氓快捷方式 所以你给桌面上的图标给删除了 然后在开始或者IE文件夹里面找到IE 在点击下 看看恢复没 ...

  4. 新的浏览器的诞生,你会选择哪个?

    新的浏览器的诞生,你会选择哪个? 前言 目前为止最好的选择--Edge Chrome--习以为常 Firefox(Waterfox_x64)--最安稳 IE11--无助的时候 前言 到了Windows ...

  5. 腾讯或于本周正式宣布合并搜狗?官方回应:看点招聘及搜狗合并均正常进行...

    近日,据相关媒体报道称,腾讯或将于本周正式宣布合并搜狗.按照规划,腾讯看点将吸收绝大部分搜狗业务和员工.双方官宣合并之后,搜狗大部分业务及产品将被关停,不再以独立品牌方式运营,而是整合进腾讯看点,双方 ...

  6. SpringBoot将数据放入Excel里面通过浏览器直接下载到本地

    SpringBoot将数据放入Excel里面通过浏览器直接下载到本地 说明 依赖 代码 效果 说明 以前做java方面的导出下载的时候,都是先把数据导出到linux服务器里面的某个目录,然后才是通过浏 ...

  7. 搜狗喜欢收录什么页面?如何实现批量搜狗收录

    搜狗搜索引擎是全球第三代互动式搜索引擎,支持微信公众号和文章搜索.知乎搜索.英文搜索及翻译等,通过自主研发的人工智能算法为用户提供专业.精准.便捷的搜索服务.任何一家企业或者站长,都希望获得更多的流量 ...

  8. 搜狗PR是什么?怎么查看网站的搜狗PR值

    搜狗PR是什么?怎么查看网站的搜狗PR值? 搜狗PR是什么? 搜狗PR值全称为搜狗PageRank(网页级别),是搜狗用于用来标识网页的等级.重要性的一种方法,是搜狗用来衡量一个网站的好坏的重要标准之 ...

  9. Kingpin Private Browser - 隐私保护浏览器,隐身模式、广告拦截做你的私人浏览器

    Kingpin Private Browser - 隐私保护浏览器,隐身模式.广告拦截做你的私人浏览器 Kingpin Private Browser 是一个功能齐全的浏览器,隐身模式和广告拦截总是启 ...

最新文章

  1. 弹出窗口以及关闭窗口
  2. python解析html模块_Python HTMLParser模块解析html获取url实例
  3. 十进制网络,你也可以
  4. python数据分析师工作内容_数据分析师日常工作是什么?
  5. Swift3.0中如何完成不同View Controller之间的切换
  6. 通过ProGet搭建一个内部的Nuget服务器
  7. 二级测试-简单注册tmp1904
  8. 平安夜福利,送3本《从0到1搭建自动化测试框架》
  9. Android用户界面设计:使用片段
  10. Arduino与墨子号 BC26 4G模块的对接开发
  11. CVPR 2021 | 基于模型的图像风格迁移
  12. java去掉边框_java swing怎么去掉边框
  13. 【密码术】openssl椭圆曲线密钥对生成
  14. 【修真院“纯洁”系列之十九】驱逐令
  15. pythoneducoder苹果梨子煮水的功效_【苹果梨子煮水喝的功效】_苹果好处_作用-大众养生网...
  16. 福州师范大学计算机专业导师简介,黄欣沂_福建师范大学研究生导师信息
  17. Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示
  18. 非常实用FPGA实现CRC校验介绍和代码生成工具
  19. Day644.Spring框架开发双刃剑 -Java业务开发常见错误
  20. Oracle数据库学习笔记——数据完整性(下)

热门文章

  1. 航模基础知识之电机,电调,电池的选择
  2. java rsa sha1_将SHA1和RSA与java.security.Signature和MessageDigest和Cipher结合使用
  3. SugarCRM 自定义选择按钮
  4. 如何使家里wifi信号增强一倍
  5. 超定线性方程组Ax=b极小L1范数求解——MATLAB/Python实现
  6. Cheat Engine 小白教程(大白话教学)上篇
  7. Prolific PL2303 usb 转串口Win8 Win8.1驱动
  8. No such file or directory处理
  9. 永无乡 HYSBZ - 2733
  10. LaTex案例——制作三线表