<audio id="audio" title="结束语 ｜ 如何成为一名优秀的测试工程师？" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/94/17/94f4f5bc0fccdb66f6d1e2cb0fd86717.mp3"></audio>

你好，我是陈磊。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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