下载APP
关闭
讲堂
部落
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者

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

2020-02-21 陈磊
接口测试实战课
进入课程

讲述:陈磊

时长08:56大小7.17M

你好,我是陈磊。
不知不觉中,我们已经相伴一起学完了接口测试的全部课程,我相信,你现在已经能独立完成绝大部分接口测试的工作了。在这最后一节课呢,我不想再和你说接口测试乃至测试框架还应该做什么,而是想来和你聊聊如何成为一名优秀的软件测试工程师。
在前面的课程中,我一直在和你说测试工程师是个技术岗位,不是“点工”。在把我们的课程全部都学完后,你现在是不是深有同感?因为就接口测试这件小事我们都可以学习这么久,从接口是什么、如何开始接口测试开始,到后来的用工具和代码解决测试问题,直到最后的参数数据层的封装、外部解耦服务的使用等等。
在我们课程的留言中,有这样一个问题:“接口测试能力的高低体现在哪里?”其实,评价一个接口测试人员的能力水平,主要就是看他解决问题的能力如何, 这也包括了他技术栈的熟练程度,测试用例方法以及业务知识的掌握程度。在专栏的全部课程中,我们一起经历了接口测试从简单到深入的过程,而这个过程呢,其实也说明了测试工程师在各个阶段应该达到的能力。这样,测试工程师就可以划分为初级测试工程师、中级测试工程师和高级测试工程师。
初级测试工程师。他应该懂得接口测试,可以使用接口测试工具完成接口测试任务;他也要有接口测试的思维,能够将这种思维在实际项目中应用落地。
你也许会质疑这个要求:对于一个初级测试工程师,这会不会太难了?但就像我之前说过的,如果你现在去查一些涉及测试工程师的招聘需求,你就可以看到这项要求,现实就是如此,这部分内容也是我在“初级技能篇”中教给你的东西。
中级测试工程师。他要能编写测试代码,可以使用一种编程语言完成接口测试任务。
这短短两句话的要求其实需要很多努力。首先是编码的能力,这在很多测试面前是一个难以逾越的鸿沟,但是如果你跨过这个鸿沟,你就会发现后面会一马平川。
其次,能用编程语言模拟测试协议并完成测试,这确实需要你多了解一下对应编程语言的支持库。
最后,也是最难的要求了,你要能把接口测试思维和技术栈结合一起,并遵从以后的内部编码规范,约束开发的脚本,这其实也是我在“综合技能篇”中给你讲的内容。
高级测试工程师。他必须有能力封装适合团队的测试框架,并能提供给持续集成、持续交付平台调用。
要保持自己高级测试工程师的段位,你需要不断努力,不断学习和总结,时刻保持作为一个测试框架维护者的心。在这里,测试框架封装主要就是我在“进阶技能篇”中教给你的框架的抽象,参数化的设计,不同接口、不同协议的支持等内容。
那么如何使自己不断成长为高级测试工程师呢?
在留言区,我也看到了很多人对测试工作感到迷茫和困惑,有些人困惑于长期的手动功能测试,自己技术上没有提升,有想学习技术的想法却又不知道如何开始学习;还有些人学了一些技术,却不知道如何把这些技术应用到实际项目中,产生了学习和工作之间的分层,不能学以致用。
其实,在工作中有困惑不是一件坏事,这反而说明你是一个在不断成长的人,因为只有发现问题才能去解决问题。
就接口测试来说,学习路线就如同我在专栏中讲解的一样,从整理输入到使用工具,再到封装框架来完成测试任务,这其实也是一个技术的实践路线。如果你不知道如何将这些内容和工作结合到一起,不妨试试我在一开始说过的 Postman 这类小工具,用它敲开你的接口测试任务大门,随着工作的不断深入,后续你在写测试脚本和封装框架也就慢慢水到渠成了。所谓的高级测试工程师,也就是这样一步步修炼出来的。
与此同时,我也希望你能通过我们这个专栏的学习思路,学会怎么去掌握任何一项陌生的测试技术,因为这些测试工作的内容可能有所不同,但学习的方法和思路却可以是共通的。
我建议你可以通过三步来规划你的学习:
从实际动手开始学习测试技术。你最好还是从一个实际例子出发开始学习,这就和大部分编程语言都从 Hello World 开始一样。直击问题,这样才更能激发你的学习兴趣。
不断遇见问题,不断解决问题。你在实际工作中,肯定会遇见很多问题,你一定要一个一个去解决,并不断地从问题中总结可复用的经验,这样就会形成一套你自己独特的学习思路,以及更适合你自己的技术学习方法,更重要的是,这样学习更不容易遗忘。
掌握理论知识。我之所以将理论知识的学习放到最后,是因为当你知道如何用一个测试技术解决问题的时候,再去学习理论,就不会出现由于理论枯燥、记不住而放弃学习这样的情况了。同时,实践后再学习理论,每看到一个知识点你就会有“原来是这样实现的啊”这种感觉,你就很容易理解并记住它了。
所以说到这,你完全可以把接口测试看作是你技术学习的起点,而不是终点。
我也希望我的课程设计对于你未来的技术学习有一些帮助,在工作中,你肯定会遇见各种各样的新问题,你完全不必担心,因为任何一门技术都是由于工作中出现了痛点,接着才会推动整个技术向前发展,你只要时刻关注自己在工作中碰到的具体问题,还有阻塞工作的问题点,然后学习用技术手段解决问题就可以了。
那么如何解决新问题呢?我建议你学会从自己熟悉的内容出发,在自己的技术或者实践经验基础上去解决。就如同在接口测试中,即使你没有理想的接口测试文档,你也能借助自己熟悉的工具完成接口分析,然后逐渐封装出自己的测试框架。并由此慢慢掌握一个你不是很熟悉的解决问题的方法,最后通过不断地实践积累,不断增加你自己测试框架的测试能力,让它也和你一样,不断解决测试中碰到的新问题。
我们一起学习了这么长的时间,但终归是要为我们的课程画上一个句号,现在我希望你思考一下这几个问题:
你最初在留言区立下的目标实现了吗?
你的测试框架的名字是不是已经有了一个实际的测试框架来承载呢?
你掌握接口测试的思维了吗?
你掌握了如何学习一项测试技术的方法,并将它应用到实际工作中了吗?
上面这些问题你只要在心里默默有了答案就好,如果绝大部分问题你都有了肯定答案,那么我要恭喜你并欢迎你走入测试技术的大门,你的未来十分可期。
如果你对接口测试或者其他测试技术还有心得或者问题,那么你要记得,我会一直在留言区等你,这里还有很多和我们一起学习和分享的人,你可以随时回来,和他们分享你的问题和困惑,当然也包括你的成功。
如果这个专栏曾经帮到了你,或正在帮助着你,也欢迎你把它分享给你的朋友和同事,我们一起沟通、探讨。我是陈磊,在前行的路上,记住,你永远也不孤单。
最后,我为你准备了一份结课问卷,题目不多,2~3 分钟即可完成。希望你能畅所欲言,把自己真实的学习感受和对我们课程的意见表达出来,我一定会认真看。
点击下面的图片即可直接填写问卷,成功提交的同学,将有机会得到由极客时间商城独家销售的“数据结构与算法知识地图”或者价值 99 元的“专栏兑换阅码”,我期待你的反馈。江湖路远,我们总会再见。
unpreview
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
上一篇
09 | 微服务接口:怎么用Mock解决混乱的调用关系?
 写留言

精选留言(10)

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

    作者回复: 谢谢您,如果说测试的书籍我第一个推荐的还是《软件测试的艺术》这本书带我步入了测试的大门,后续在技术方面还是推荐一个编程语言的学习,这个具体书籍可以依据自己的特点选择,我就不做推荐了。其他可以看看《Google的软件测试之道》。再具体测试框架的书籍都差不多,可以随意看一看就好了。如果您还是有时间空余也可以看看我在京东参与写的《京东质量团队转型实战——从测试到测试开发的蜕变》,谢谢您

    1
    2
  • 2020-02-21
    我想问下测试架构师和中高级测试主要区别在哪里呢?
    展开

    作者回复: 您好,中级测试工程师、高级测试工程师以及测试架构师区别在于做事的内容和技术的深度上,这就和中级开发、高级开发以及开发架构师一样。那么如果回归到我们接口测试上来说呢:
    中级测试工程师:要能编写测试代码,可以使用一种编程语言完成接口测试任务。
    高级测试工程师:必须有能力封装适合团队的测试框架,并能提供给持续集成、持续交付平台调用。

    测试架构师:对持续集成、持续交付、智能化测试等都有自己独到的见解,能够给团队技术的发展方向。同时可以对现有系统接口做深入的构建和建设。推动质量效能的提升。

    1
  • 2020-02-21
    青山不改,绿水长流,后会有期~😎
    展开

    作者回复: 后会有期

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

    作者回复: 您好,谢谢支持。您如果很精于postman,那么用它解决了你很多问题,你的项目推进也很顺利。那么也很好,不用纠结那些名词术语。自动化测试没有一个权威的定义,你认为释放了你的人工,提高了质量效能,我认为都算自动化测试。后面你说的两种参数方法没有本质区别,具体看那种使用最为方便快捷,测试还是以最小投入最大收益为根本考虑。

  • 2020-02-24
    老师,如果出现依赖多个服务,并且都没开发完,怎么mock?

    作者回复: 这个没有太好的办法只能一个一个完成了。我曾经在tica大会上做过一个主题分享里面有一些自动化mock思路,您可以看一下,可以搜索阿里巴巴tica,智能化专场的第三个主题就是我讲的内容。

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

    作者回复: 谢谢,您说到了一个随着case增加必须要做的一个事情就是分布式。但是这是未来发展很久以后遇见的情况,到时候你可以在寻找一种你自己可以掌握的分布式驱动技术来完成该任务。

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

    作者回复: mock是解耦的,例如您开发的依赖A服务,但是A服务是由另外一个team的owner,但是这个服务开发进度慢于您的开发进度,因此使用mock完成A服务的替代服务。这里很多框架,如果是Mockito是需要开发的,如果使用moco是不需要的,具体看框架了,既然您是一个rd,那我其实也推荐你看一下契约测试,框架是PACT。比较适合开发人员使用。

  • 2020-02-21
    done
    展开

    作者回复: 加油,终点也是起点,祝您以后的工作一切顺利,前程似锦!

  • 2020-02-21
    JAVA开发也学完了,学到了很多测试思维,还有一个自动化测试框架,希望后面自己也能搭建一个自己的测试框架。在提测前简单测试一下,减少bug
    展开

    作者回复: 谢谢支持,在自己的努力下,你的好想法一定会获得落地实践机会的。

  • 2020-02-21
    阅读完毕😀
    展开

    作者回复: 谢谢支持