测试开发需要了解些什么呢?
前言
先来个介绍吧,目前主要从事CI/CD, 自动化测试框架,对各阶段的测试都有了解。
CI/CD: 主要两个方面一个是基于Jenkins构建的pipeline,二是GitLab CI.
自动化测试框架: RF, Selenium, Puppeteer,Jest,Xunit,JMeter,rest-assured,等等..
测试工具/测试平台: 为了提升工作效率而开发
语言
对于测试开发工程师,他也是属于开发工程师,那么,最基础的需要具备一定的编程能力,从能看懂代码到能写代码。
语言方面: Java-》基础算法-》重构
对于大部分的计算机相关专业的同学大学时期都有接触,把java基础掌握然后是高级的用法,不难的一件事。第二是基础的算法,冒泡,快排,二分法等基础的刷完。第三,读2遍重构(改善既有代码的设计)这本书,在回头看自己的代码,如果你觉得像一坨*,请动手重构它。
当你每隔几个月看到自己写的代码想骂人,恭喜你又进步了!
CI/CD
对于测开未来是工程效能方向,参考google,google在十年前就开始往这个方向走,那么,应该具备最基础的CI/CD的技能,提升开发团队的效能,为团队赋能。(现在很多公司测开不做这事...
CI/CD可以为团队提供更高效的构建速度,交付更高质量的代码,一方面需要了解它的作用,让团队去做改进,比起工具,改变固有的思想往往来的更难。另一方面,大家最关心的都要会哪些工具呢?请看下图,工具真多,如何开始呢
CI/CD.png
构建工具:
- Git:了解基本的使用后需要了解分支管理策略,pipeline跟分支策略密切相关
- Jenkins:这里的工具也很多,jenkins的使用还是占很大比重的,生态圈很好各种plugin,学习资源也很多。了解基本的使用,要会写Jenkins File,不要只会UI配置。
- 构建工具:以java为例子,需要掌握Gradle的使用,了解它的生命周期,依赖如何安装的等等。
- Docker: 在远古时期大部分是直接在服务器上编译打包,Docker的诞生让构建变得更加便捷,快速,同时节省资源。需要掌握基本的命令行,会构建基础的镜像。
Automation
现阶段,看看大部分的JD你会发现,绝大多数的公司要求掌握自动化测试技术,包括UI自动化,接口自动化,性能测试等。
UI自动化:
主流的还是selenium,虽然,puppeteer,cypress的兴起对它来说有一定的 冲击。不论哪个工具,先了解基本的使用,了解PO之类的设计模式,然后了解框架的工作原理(面试题)
接口自动化:
这就很多了,找一个看吧,httprunner,rest-assured...
单元测试:
很多的测开对这部分的了解并不多,其实这也是一大部分的内容,比如Junit,mock 也是需要了解的。
性能测试:
这部分JMeter吧了解基本使用,知道怎么做性能,了解tps,qps等
测试工具/测试平台
这部分内容,更多的是在于了解当前业务,当前流程有哪些可以优化提升的,有一个idea,会代码就可以干了。难的是如何发现当前的痛点,发现问题解决问题,你需要有足够的知识经验才能做好这件事。
最重要的
学习能力,个人觉得无论是什么样工具语言,其实最主要的还是个人学习能力,求知欲。
在面试的时候,特别是对3年以内的工程师,我很关注他的自学能力,我认为这部分的人只要有好的引导他可以很好的开展工作。5年+的更关注经验了,如果疑问三不知,你跟我说你喜欢学习....礼貌性微笑。
从开发到测试开发再到往管理的方向走,接近8年的时光里,对待这个行业的看法,观点,认知,随着自我的成长一直在发生的变化,对未来我依然憧憬希望测试行业可以越来越好,同时,迷茫困惑也一直伴随左右(我是谁,我在哪,我将往何处走...)
以上内容纯属个人观点,希望对你有帮助。也欢迎跟我探讨测试方面的知识。