17 年 3 月底,我离开了校园,进入了公司,开始了自己从学生身份到一名职场人的转变。
一切都是未知的,新奇中又带点恐惧,不管怎样,新的旅程开始了。
4 月份刚加入公司时,在师傅的带领下,测一些小的功能。在这期间,慢慢了解自己当前的业务,也渐渐明白了一名测试人员的日常。业务上,了解了测试用例的书写规范,bug 的提交规范,了解了一个功能从开发到测试再到上线的全过程,也了解了一个敏捷开发团队的人员基本构成以及他们之间是如何协作的。技术上,了解了不同的测试环境,了解了如何部署环境,同时一直在学习 git,也第一次听说了 mock、docker 等技术。
这个时间的自己每天都很有干劲,因为不会的东西实在是太多了。一切都很新,自己就像海绵一样,不断地汲取新的知识。
5 月份,我开始逐步接手项目 A,这个项目既涉及到 B 端也涉及到 C 端的东西。项目的难点在于,一是没有任何的测试文档可以参考,二是开发在开发新功能的同时要对原有的底层框架进行重构,需要进行接口自动化测试覆盖以保证原有功能的正常运作。我一方面对项目的业务逻辑不熟,另一方面对接口自动化测试了解甚少,刚开始时自己是有点恐慌的,担心自己做不好,影响整个项目的进度。但还好开发人员有一个将近三周的开发周期,给我留了一定的准备时间。
针对第一块业务逻辑不熟的情况,我通过反复阅读之前的 PRD、请产品经理串讲业务和在测试环境反复使用该产品来熟悉业务。针对第二块接口自动化测试不熟的情况,我通过 charles 抓包来查看具体的 api,postman 来提交简单的 http 请求来增加对 RESTful API 的认识,同时利用内部已有的自动化测试框架和例子来编写自己的自动化测试用例。在这个过程中,我对接口自动化测试有了基本的认识。同时针对原有的自动化测试框架中测试报告不完整的情况,我引入 pytest-html 来生成自动化测试报告,并通过 Jenkins 来进行持续集成。
在这期间,我知道了如何和开发、产品对接,也坚信了作为一名测试一定要保持对自己对测试业务的绝对了解。只有对自己负责的业务保持绝对了解,才能做到针对各种复杂的场景设计出不同的 case,才能知道哪些情况下需要哪些测试数据,才能知道哪些地方可能会出错。技术上,了解了数据库的一些知识,学习了 MongoDB 常用的增删改查的语句,方便自己查数据和造数据。学习了 Nginx,了解了 nginx 如何配置域名,如何通过反向代理进行负载均衡的,并在此基础上将测试环境之前缺少的某个微服务的环境搭建起来了。
在这期间,也熬过几次夜,通宵上线新的功能。印象比较深的,是有两个大的功能必须得赶在某个时间点之前上线。第一个功能第一天晚上上线完成后,第二天一大早开发不放心很早就来公司查看线上问题反馈,当晚还要继续上线,很辛苦,佩服他们。当然这个也为后来的平滑上线的规定奠定了基础,这个就是后话了。
9 月份参与到一个全新的项目 B,但团队的人员组成是没变的,合作起来更愉快。和之前不同的是,在项目的前期,自己会参与到 API 定义,通过 mock 先把接口自动化测试 case 写完,真正做到了接口先行。在项目的中期,通过不断和开发保持沟通,来控制提测和测试时间,从而来保障项目的进度。在项目的后期,针对部分接口,进行了线上压测,学习到了一些压测相关的知识。
在这期间,自己慢慢对项目有了更多的掌控力,知道什么时间该做什么事,定位和描述问题也变得更准确,对不同优先级的 bug 也有了自己的认识。同时也了解了 devops 相关的知识,了解了 CI CD 的流程,也将接口自动化测试纳入到 CD 环节。
过去的九个月,时间过得很快,自己学到了一些东西,算是对测试这一行入了门。感谢我的师傅,感谢遇到的各个开发和 PM,在他们身上我学到了很多。但看到的越多,就越知道自己的不足,有太多的东西等着我去学习和深入了解。2018 年,希望自己不忘初心,继续加油!