测试开发需要掌握哪些技术?
前言
先来个介绍背景,身边的朋友或者技术群的群友,总会时常问起,测试开发需要具备哪些技能呢?测试要如何往测开方向转岗呢?本篇文章主要聊下个人的一些观点看法。
目前,我主要从事 CI/CD(持续集成/持续交付), 自动化相关的实践。
语言
对于测试开发工程师,他也是属于开发工程师,那么,最基础的需要具备一定的编程能力,从能看懂代码到能写代码。
编程语言: Java-》基础算法-》重构
对于大部分的计算机相关专业的同学大学时期都有接触,把 java 基础掌握然后是高级的用法,不难的一件事。第二是基础的算法,冒泡,快排,二分法等基础的刷完。第三,读 2+遍重构(改善既有代码的设计)这本书,再回头看一看自己写的代码,如果你觉得像一坨*,请动手重构它。
当你每隔几个月看到自己写的代码想骂人,恭喜你又进步了!
英语: 技术文档,各种官网基本都是英文,当然,有的也有中文翻译。
测试理论基础
测开也是测试工程师,必须具备良好的测试理论。了解各种的测试方法,以及它们之间的差异;了解常用的用例设计方法(等价类,因果图...),等等...
这里可以推荐大家看一本书《google 软件测试之道》。(读的第一本测试相关书籍)
CI/CD
对于测开未来是工程效能方向,参考 google,google 在十年前就开始往这个方向走,那么,应该具备最基础的 CI/CD 的技能,提升开发团队的效能,为团队赋能。(目前很多公司测开还是不做这事儿...)
CI/CD 可以为团队提供更高效的构建速度,交付更高质量的代码,一方面需要了解它的作用,让团队去做改进,比起工具,改变固有的思想往往来的更难。另一方面,大家最关心的都要会哪些工具呢?请看下图,工具真多,如何开始呢?
构建工具:
Git:了解基本的使用后需要了解分支管理策略,pipeline 跟分支策略密切相关
Jenkins:这里的工具也很多,jenkins 的使用还是占很大比重的,生态圈很好各种 plugin,学习资源也很多。了解基本的使用,要会写 Jenkins File,不要只会 UI 配置。
构建工具:以 java 为例子,需要掌握 Gradle 的使用,了解它的生命周期,依赖如何安装的等等。
Docker: 在远古时期大部分是直接在服务器上编译打包,Docker 的诞生让构建变得更加便捷,快速,同时节省资源。需要掌握基本的命令行,会构建基础的镜像。
操作系统基础知识: linux 常见命令,io,cpu,内存等...
Automation
现阶段,看看大部分的 JD 你会发现,绝大多数的公司要求掌握自动化测试技术,包括 UI 自动化,接口自动化,性能测试等。
UI 自动化: 主流的还是 selenium,虽然,puppeteer,cypress 的兴起对它来说有一定的冲击。不论哪个工具,先了解基本的使用,了解 PO 之类的设计模式,然后了解框架的工作原理。移动端可以看看 Appium.
接口自动化: 这就很多了,找一个看吧,httprunner,rest-assured...
单元测试: 很多的测开对这部分的了解并不多,其实这也是一大部分的内容,比如 Junit,mock 也是需要了解的。
性能测试: 这部分 JMeter 吧了解基本使用,知道怎么做性能,了解 tps,qps 等
静态代码分析: 1,2,3 通常而言是属于动态测试,这里需要补充的是静态代码方面的测试,比如 sonarqube 之类的平台,了解它是做啥的,大概有个印象
测试工具/测试平台
这部分内容,更多的是在于了解当前业务,当前流程有哪些可以优化提升的,有一个 idea,会代码就可以干了。难的是发现当前的痛点,发现问题解决问题的过程,需要有足够的知识经验才能做好这件事。
测试平台不一定是万能的,不要为了炫技而去开发,要立足于解决问题,节约 resource。如果对之类的有兴趣不妨查下 github,这里有很多开源的工具,看看那些 star 多的项目。
最重要的
学习能力,个人觉得无论是什么样工具语言,其实最主要的还是个人学习能力,求知欲。在面试的时候,特别是对 3 年以内的工程师,我很关注他的自学能力,我认为这部分的人只要有好的引导他可以很好的开展工作。5 年+的更关注经验了,如果疑问三不知,你跟我说你喜欢学习....礼貌性微笑。
沟通能力,良好的沟通意味着已经成功了一半。必备软技能~
总结
从开发到测试开发再到慢慢接触管理方面,7+年的时光里,对测试行业的看法、观点、认知,随着自我的成长一直在发生的变化,对未来我依然憧憬着,希望测试行业可以越来越好。同时,迷茫困惑也一直伴随左右(我是谁,我在哪,我将往何处去...)。
以上内容纯属个人观点,希望对你有帮助,也欢迎跟我探讨测试方面的知识。
版权声明: 本文为 InfoQ 作者【夏兮。】的原创文章。
原文链接:【http://xie.infoq.cn/article/df2747fc9c76933dfbc20c0a9】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论