结束语 如何成为一名优秀的测试工程师?

你好,我是陈磊。

不知不觉中,我们已经相伴一起学完了接口测试的全部课程,我相信,你现在已经能独立完成绝大部分接口测试的工作了。在这最后一节课呢,我不想再和你说接口测试乃至测试框架还应该做什么,而是想来和你聊聊如何成为一名优秀的软件测试工程师。

在前面的课程中,我一直在和你说测试工程师是个技术岗位,不是“点工”。在把我们的课程全部都学完后,你现在是不是深有同感?因为就接口测试这件小事我们都可以学习这么久,从接口是什么、如何开始接口测试开始,到后来的用工具和代码解决测试问题,直到最后的参数数据层的封装、外部解耦服务的使用等等。

在我们课程的留言中,有这样一个问题:“接口测试能力的高低体现在哪里?”其实,评价一个接口测试人员的能力水平,主要就是看他解决问题的能力如何, 这也包括了他技术栈的熟练程度,测试用例方法以及业务知识的掌握程度。在专栏的全部课程中,我们一起经历了接口测试从简单到深入的过程,而这个过程呢,其实也说明了测试工程师在各个阶段应该达到的能力。这样,测试工程师就可以划分为初级测试工程师、中级测试工程师和高级测试工程师。

初级测试工程师。他应该懂得接口测试,可以使用接口测试工具完成接口测试任务;他也要有接口测试的思维,能够将这种思维在实际项目中应用落地。

你也许会质疑这个要求:对于一个初级测试工程师,这会不会太难了?但就像我之前说过的,如果你现在去查一些涉及测试工程师的招聘需求,你就可以看到这项要求,现实就是如此,这部分内容也是我在“初级技能篇”中教给你的东西。

中级测试工程师。他要能编写测试代码,可以使用一种编程语言完成接口测试任务。

这短短两句话的要求其实需要很多努力。首先是编码的能力,这在很多测试面前是一个难以逾越的鸿沟,但是如果你跨过这个鸿沟,你就会发现后面会一马平川。

其次,能用编程语言模拟测试协议并完成测试,这确实需要你多了解一下对应编程语言的支持库。

最后,也是最难的要求了,你要能把接口测试思维和技术栈结合一起,并遵从以后的内部编码规范,约束开发的脚本,这其实也是我在“综合技能篇”中给你讲的内容。

高级测试工程师。他必须有能力封装适合团队的测试框架,并能提供给持续集成、持续交付平台调用。

要保持自己高级测试工程师的段位,你需要不断努力,不断学习和总结,时刻保持作为一个测试框架维护者的心。在这里,测试框架封装主要就是我在“进阶技能篇”中教给你的框架的抽象,参数化的设计,不同接口、不同协议的支持等内容。

那么如何使自己不断成长为高级测试工程师呢?

在留言区,我也看到了很多人对测试工作感到迷茫和困惑,有些人困惑于长期的手动功能测试,自己技术上没有提升,有想学习技术的想法却又不知道如何开始学习;还有些人学了一些技术,却不知道如何把这些技术应用到实际项目中,产生了学习和工作之间的分层,不能学以致用。

其实,在工作中有困惑不是一件坏事,这反而说明你是一个在不断成长的人,因为只有发现问题才能去解决问题。

就接口测试来说,学习路线就如同我在专栏中讲解的一样,从整理输入到使用工具,再到封装框架来完成测试任务,这其实也是一个技术的实践路线。如果你不知道如何将这些内容和工作结合到一起,不妨试试我在一开始说过的Postman这类小工具,用它敲开你的接口测试任务大门,随着工作的不断深入,后续你在写测试脚本和封装框架也就慢慢水到渠成了。所谓的高级测试工程师,也就是这样一步步修炼出来的。

与此同时,我也希望你能通过我们这个专栏的学习思路,学会怎么去掌握任何一项陌生的测试技术,因为这些测试工作的内容可能有所不同,但学习的方法和思路却可以是共通的。

我建议你可以通过三步来规划你的学习:

  1. 从实际动手开始学习测试技术。你最好还是从一个实际例子出发开始学习,这就和大部分编程语言都从Hello World开始一样。直击问题,这样才更能激发你的学习兴趣。
  2. 不断遇见问题,不断解决问题。你在实际工作中,肯定会遇见很多问题,你一定要一个一个去解决,并不断地从问题中总结可复用的经验,这样就会形成一套你自己独特的学习思路,以及更适合你自己的技术学习方法,更重要的是,这样学习更不容易遗忘。
  3. 掌握理论知识。我之所以将理论知识的学习放到最后,是因为当你知道如何用一个测试技术解决问题的时候,再去学习理论,就不会出现由于理论枯燥、记不住而放弃学习这样的情况了。同时,实践后再学习理论,每看到一个知识点你就会有“原来是这样实现的啊”这种感觉,你就很容易理解并记住它了。

所以说到这,你完全可以把接口测试看作是你技术学习的起点,而不是终点。

我也希望我的课程设计对于你未来的技术学习有一些帮助,在工作中,你肯定会遇见各种各样的新问题,你完全不必担心,因为任何一门技术都是由于工作中出现了痛点,接着才会推动整个技术向前发展,你只要时刻关注自己在工作中碰到的具体问题,还有阻塞工作的问题点,然后学习用技术手段解决问题就可以了。

那么如何解决新问题呢?我建议你学会从自己熟悉的内容出发,在自己的技术或者实践经验基础上去解决。就如同在接口测试中,即使你没有理想的接口测试文档,你也能借助自己熟悉的工具完成接口分析,然后逐渐封装出自己的测试框架。并由此慢慢掌握一个你不是很熟悉的解决问题的方法,最后通过不断地实践积累,不断增加你自己测试框架的测试能力,让它也和你一样,不断解决测试中碰到的新问题。

我们一起学习了这么长的时间,但终归是要为我们的课程画上一个句号,现在我希望你思考一下这几个问题:

  1. 你最初在留言区立下的目标实现了吗?
  2. 你的测试框架的名字是不是已经有了一个实际的测试框架来承载呢?
  3. 你掌握接口测试的思维了吗?
  4. 你掌握了如何学习一项测试技术的方法,并将它应用到实际工作中了吗?

上面这些问题你只要在心里默默有了答案就好,如果绝大部分问题你都有了肯定答案,那么我要恭喜你并欢迎你走入测试技术的大门,你的未来十分可期。

如果你对接口测试或者其他测试技术还有心得或者问题,那么你要记得,我会一直在留言区等你,这里还有很多和我们一起学习和分享的人,你可以随时回来,和他们分享你的问题和困惑,当然也包括你的成功。

如果这个专栏曾经帮到了你,或正在帮助着你,也欢迎你把它分享给你的朋友和同事,我们一起沟通、探讨。我是陈磊,在前行的路上,记住,你永远也不孤单。

精选留言(15)
  • aoe 👍(13) 💬(2)

    调查问卷隐藏的比较少深,这是对测试的考验吧?我找到入口了! 老师可以推荐几本关于测试的书吗? 期待您后续作品!

    2020-02-21

  • zero 👍(6) 💬(1)

    阅读完毕,也知道了新的测试方法

    2020-02-29

  • 镞砺括羽 👍(6) 💬(3)

    java开发一名,公司没有测试,同时要负责测试。 平时主要用postman测试接口,或者点点页面,但总是不全面,可能跟时间工作量问题有关,反正不知道什么时候就有bug了😂 我想问下mock是怎么用啊,做假数据?具体怎么用,java后台开发需要了解吗

    2020-02-21

  • peng 👍(6) 💬(1)

    我想问下测试架构师和中高级测试主要区别在哪里呢?

    2020-02-21

  • 👍(3) 💬(2)

    OK 最大的收获是,更加深刻理解君子善假于物的道理,有现成工具最好,没有就要自己造,凡是在工作中遇到简单、重复、枯燥、乏味、不费脑子非时间和精力的事情,此时就需要思考有什么工具可以解决这些问题,如果没有,那么机会来了,就自己试着在一个吧!如果是平台化的,可能是阿里、滴滴、美团等的雏形。

    2020-02-26

  • 猎豹 👍(3) 💬(1)

    青山不改,绿水长流,后会有期~😎

    2020-02-21

  • Geek_0ed499 👍(2) 💬(1)

    老师您好,只用postman工具,串起来整个平台框架的主要接口,这样算是自动化测试吗?还有每次运行用例集合时,入参从web页面上获取和在数据库添加获取有区别吗?哪一种形式更好呢

    2020-02-24

  • 王保安 👍(1) 💬(3)

    请问APP端的https 接口怎么抓包,好像安卓6之后 手机证书不支持抓包了

    2020-03-29

  • 测试菜鸟 👍(1) 💬(1)

    这次的专栏中,学到了接口功能测试的测试思维。工作里经常要遇到做接口压测,会有点迷茫,至今没有理解到压测的实质。很期待老师以后可以讲解接口的性能~

    2020-03-10

  • 宁江孤影 👍(1) 💬(1)

    感谢老师的课程,有种茅塞顿开的感觉,对接口测试有了更深的了解。再问一个问题:用例多了之后,在持续集成的时候会不会影响执行速度,是不是可以采用分布式的思维去实现?希望老师点拨一下,谢谢!

    2020-02-22

  • 痕近痕远 👍(0) 💬(1)

    老师,有python进行dubbo接口测试的解决方法吗

    2020-10-20

  • ddup 👍(0) 💬(2)

    老师,请问一下能分享一个你自己封装的接口测试框架看一下吗?理论是懂了。

    2020-06-18

  • 你个小可爱 👍(0) 💬(1)

    作为一个毫无代码能力的功能测试来说,阴差阳错进了功能测试,听完只是懂了逻辑,实际从没有测过接口,感觉看都还是看不太懂,评论里我发现别人都是大佬,我这小白好像太难了 😭

    2020-06-10

  • 不存在的存在 👍(0) 💬(1)

    老师有推荐什么平台适合自己联系接口自动化吗

    2020-03-23

  • Adene 👍(0) 💬(1)

    老师,如果接口返回值不统一,应该如何进行接口测试?对搭建框架影响大吗?目前是按照每个接口的返回值正确性做判断的,没有关注返回值的统一性。

    2020-03-12