2年9个月,马上要告别2年9个月的项目,也应该给自己做个总结。即将迎来新的项目,未来依旧充满挑战。
一、之前
计算机专业出身的我,在2017年秋招的时候,需要做一个选择。这是离开校园对人生做出的第一个选择,“是做开发?”“是做产品?”“是做其他的?”。当时这个选择困扰了我很久,我是一个期望接触更多业务形态,扩展自己的视野和见解的人。
偶然,我发现了这个测试/测试开发岗位,还记得当时看着各个测试开发的经验贴,想到本科做课程设计,一看到同学的输出bug就能定位到问题原因的那个自己,觉得自己有独特的天赋,而且我向往那个测试需要有着独特的“大局观”。
这,不就是自己期待的岗位吗?
决定了自己的方向,放弃了之前所有投递的开发岗位,用一晚的时间啃完了一本《软件测试教程》,开启了我测试开发的求职之路。
2017年9月,搜狗选择了我,2017年10月,我选择了搜狗。
二、开始
2018年1月,毕业后1周,我入职了。
标签1、自动化
入职后,我的leader考虑到我的兴趣,结合我自己对岗位没有明确的认识,带领我的“小师傅”给我了一个自动化的项目,Python+unittest+Jenkins+SVN,做了一个对线上接口的自动化监控。每天报告里面看到自己补充的200+个接口的运行结果,工作的成就感、热情也从此而来。这是我的自动化入门,也是我给测试开发的第一个标签: 自动化。
标签2、问题定位
我入职的这天,还有一个巧合:我们项目正式发布1.0版本,是项目的线上诞生日。一个只在校园中做过小系统的测试开发新手,对整个项目的把控是迷茫的,我不知道从何入手,不知道我能做什么。
这时候leader和“小师傅”安排我从客户端入手,跟着组内的同学开始做客户端需求。这时候我遇到了我的第一个大挑战: “这里有bug,但是原因是什么呢?”这个问题应该是所有测试同学入门都会面临的问题:如何定位bug/问题。组内的同学一步步帮助了我,我学会了如何定位问题出现在客户端,还是前端,还是服务端。随着逐步的业务理解深入、测试深入,我还学会了如何定位问题所在的代码行,甚至有几次因为开发同学没时间修改,自己直接上手改代码。
这是我给测试开发的第二个标签: 问题定位。
标签3、时间管理
之后,我又遇到了陆陆续续的小问题,设计测试用例的熟练度不足,功能-子功能-检查点-影响因素的结构始终不会归纳,写用例的时间预估永远不足;测试过程中,用例执行逐条执行,不会合并执行,浪费时间;组内、项目工作不会协调,工时不够用;无法频繁切换任务……无论如何,工作时间都不够自己完成任务,就咨询组内同学、自己学习GTD(Getting Things Done),逐步学会了合理安排任务、动脑执行任务,管理自己的工作时间。这是我给测试开发的第三个标签: 时间管理。
标签4、效率提升
我工作半年后遇到了一个大挑战。因为各种原因,我需要几乎是独立完成一个新产品线1.0的前端、后端测试。印象十分深刻,这个版本的测试持续了近3个月。项目过程中,我遇到了测试数据构造、删除时执行SQL脚本效率低下的问题,依赖我最擅长的桌面开发能力,3天的时间用Java+Swing“撸出了”我们测试小组的第一个工具,这个工具至今都是频繁使用,给组内同学的测试效率带来极大提升。这一次经历,让我学会了使用技术手段改进/提升测试保证质量的效率。这是我给测试开发的第四个标签: 效率提升。
三、转折
标签4、协作推进
项目测试完毕后,这还只是一个阶段。它还要依托公司的另一个业务跟我们配合,跨团队协作的项目,中间结点的问题频繁发生。因为节点路径又多又长,经常阻塞最下游的我们进行测试。当时这个问题,我努力定位到了最可能发生问题的两个节点,同步给项目组,同步给整个链路的各个合作团队。所有团队的人在一起,此时已经有了问题定位的大概节点,便快速解决了问题。这是我给测试开发的第五个标签: 协作推进。
标签5、学习&实践
之后的我在“开发”层面遇到了新的问题,团队2019年年度的目标定在测试质量左移,其中一部分依托于我需要做的主流程自动化。
第一次做自动化无从下手的我,调研了一些框架,最终结合项目链路分支少的特点,选择了自己二次封装Appium,搭建了一个客户端层面的自动化框架,还调研了一些封装了unittest的包,给我们的框架增加了更多可能性。在组内同学的配合下,我们完成了客户端主流程95%以上的覆盖。这是我给测试开发的第六个标签: 学习&实践。
2019年,我对测试开发这个岗位有了更深刻的认识:测试开发的职责是测试,目标是质量,技术是手段。这一年自己写了几十个脚本,根据项目&组内中暴露的问题改进了多个流程,定位了近百个各类问题并推进解决。这一年,获得了项目组各团队的专业度认可、也获得了的荣誉。
四、现在
2020年,开头就注定了这是有挑战的一年。“小师傅”从我们项目离开了,团队交到了我的手里。深刻记得产品leader、开发leader、我的leader在我刚接手小组说的很多话、给我的指导;“质量、效率、深入”这三个词会铭刻在我未来测试开发职业的道路上。从此,多了一份对组内成员的责任,多了一份对项目整体测试质量的责任,多了一份协调推进的责任,多了一些测试开发体系化的想法和概念。
这时候,我感觉好像体会到了测试/测试开发的“大局观”。
标签7、思考&总结
2020年也到了年末,我还想说我给测试开发的第七个标签: 思考&总结。
做项目、做测试改进的两年半多实践,给我最大成长的就是思考,刚入职的我不会表达自己的想法、不能细致全面地考虑问题,测试开发经历让我学会了如何思考。另外,每一次的问题总结、项目复盘总结,组内问题的个人/小组总结等,也让我们有了更明确的目标和方向。
写在最后
这2年9个月:
- 学会了用例设计
- 做了接口自动化
- 搭建了客户端自动化框架
- 开发了多个测试工具
- 编写了几十个测试脚本
- 创建了测试组的Git、WiKi
- 提交了700多个bug
- 定位且解决了上百个各类问题
- 探索并推进了质量左移、右移的方案
- ……
测试/测试开发在很多技术同学眼里,是最不能选的路,因为门槛低反而被认为“没前途”。在我看来,是因为他们看不懂,看不明白,我认为测试/测试开发的上限是所有技术岗位里最高的。
引用我在测试开发领域最佩服的大牛的一句话作为结尾—“探索一个软件工程师的无限可能”。
源自公众号 搜狗测试