测试基础 测试开发需要具备哪些技能

林月 · 2022年06月27日 · 最后由 陈恒捷 回复于 2022年08月30日 · 11344 次阅读

我现在的情况是 flask 做过两个项目 django 做过两个项目 vue + drf 做过一个前后端分离项目,python 也会用 app ui 接口自动化,用 docker + jenkins 做过对应的持续集成,java 这边的话用 springboot 写过一个项目,性能测试这块的会使用 jmeter 进行常见的性能测试,能做一些基本的监控和基本的性能分析,熟悉 go 语言的基本语法,写过一段时间 shell,用 shell 写过一段程序 测试内存泄露问题,现在的话转测开可以吗,转测开能拿多少薪资,目前转行两年,做的是基本功能测试,做过一年的自动化

共收到 30 条回复 时间 点赞

具体到团队中,对于测开的能力要求,我简单的划分为以下三类(欢迎拍砖):

入门级:

熟悉几款常用的测试框架,如接口测试用到的 Junit,Pytest 等,性能测试用到的 Jmeter,Locust 等,基于 UI 的 Selenium,Airtest 等

进一步的,能够针对这些框架,结合团队的具体业务需求,进行简单的二次开发,例如改改报告格式,增加点输出和特定函数等

从团队建设的角度看,这类技能一般会让测试团队内的谁对代码兴趣并能持之以恒的学习,就可以让他去尝试做这类工作。

提升级:

了解不同框架的特性,能够结合不同项目的实际情况,做具体的选型(例如,团队如果普遍代码能力较差,用 Jmeter 做接口也不是不可以接受。如果被测试系统用的是 JAVA 框架,引入 Junit 要比 Pytest 合适的多)

能够对框架进行重构,以便更好的使用或者更符合业务需求。能够把这些框架集成到其它平台,让其它平台能够快速调用并执行测试用例。

能够洞察测试活动中的真实痛点,并给出解决方案。当你具备了这个能力,才能胜任一个测试开发应该有的责任,否则和开发的区别并不大,又或者只是一个有一定代码能力的测试人员。对团队的重要性并没有那么大。

进阶级:

能够从全局观察测试活动,发现团队存在的共性问题,并提出自己的解决方案并加以落地。

从效能的角度提升团队的测试质量和效率。个人认为,这个是高阶测试开发的核心竞争力。这个时候,测试开发应该关注的是如何提升整个测试团队的效能,同时能够打通研发侧,协助开发一起提升研发效能。

需要向业内优秀的团队学习最新的技术实践,现在新的测试技术层出不穷,迭代速度也很快。不能固步自封,只满足于现状。要关注业内技术的发展,但不要盲目的引入到团队中,因为很多时候,你的团队并不具备相对应的能力。

可参考:https://testerhome.com/topics/30771

林月 #26 · 2022年06月27日 Author
CKL的思考 回复

说的很好,谢谢解答,但是这些东西,是需要丰富的测试经验的,我目前的这个阶段,更多关注的可能是代码,用代码实现一些自动化或者小工具,提高效能,对于整体测试开发的打通,我觉得这是测试领导要做的,既然是领导,那么必然需要很久的经验

林月 回复

关于代码本身,需要关注的就是基础的应用,找个优秀的开源框架,慢慢去阅读和理解它的代码逻辑,远比自己乱写一些平台要好的多。然后根据团队的真实痛点,针对性的通过代码解决一些具体问题,在解决问题的过程中提升自己。
加油~

林月 回复

从你用过的技能点来说,基本上测开需要掌握的你大部分都有掌握。但在技能点之外,测开的软能力方面没有看到相关的体现。

建议:
1、“丰富的测试经验”!=“很久的测试经历”,可能 1-2 个大型复杂项目的测试经历,就可以给你带来丰富的经验了。

2、代码能力并不是只能用来做开发,也可以用来理解被测应用的实现逻辑。不知道你在测试前是否有花时间去先看看开发整体技术方案是怎么实现的,然后根据你的代码经验,评估什么地方风险比较大需要重点测,什么地方风险不大过一下流程即可,来提高测试效率?有代码能力的前提下去看开发代码,既能帮你熟悉开发逻辑,也能让你了解别人的好代码怎么写的,性价比很高。

3、遇到问题,不要给自己设限。像火影里面的鼬说的 “并不是成为火影的人就会被大家所认可,而是被大家所认可的人才能成为火影。” ,不是因为是测试领导所以可以打通整体测试开发,而是能打通整体测试开发所以能当上领导。可能具体工作上确实不需要你去做打通整体测试开发的事情(这里面会有利益问题在,有时候水会比较深),但在视野和思考上,不需要给自己加这些限制。

选择一个方向深入下去做吧 性能也好 稳定性也好 从流程标准化到工具平台建设到问题定位分析调优 每个都懂一点 反而没有竞争力

林月 回复

这个经验, 不一定是测试的经验, 局限不应该在测试上. 说白了其实就是解决问题的经验.
举个例子: 很多测试的文章在追求平台化, XX 平台分享. 但是大部分都留在了 Web 页面整合, Web 页面处理. 数据格式上. 花大时间在前端上在 UI 上在后端数据上. 但是往往测试的引擎 (语义: 指的依赖工具/包) 不变. 比如: 基于 Locust 的 XX 平台, 基于 Jmeter 的 XX 平台. 基于 httprunner 的 A1 平台, 基于 Httprunner 的 A2 平台. 其实根本上都是在做页面做数据格式. 真正起作用的还是 Jmeter, Locust, Httprunner 等.

真正的解决问题的能力, 应该较为深入一下.

总结: 个人理解, 测开不应该着相于 Flask,Django 上. 好的测开应该更倾向于解决方案/工具的提供上. 比如 Httprunner, 比如 tidevice, 比如 WDA, 比如 Locust. 比如 libimobiledevice. 比如...... 测试开发应该侧重于开发上. 提供测试方案/支持的开发.

CKL的思考 回复

好的 谢谢大佬指点

林月 #22 · 2022年06月28日 Author
chend 回复

好的,大佬

林月 #21 · 2022年06月28日 Author
陈恒捷 回复

好的 谢谢大佬

林月 #11 · 2022年06月28日 Author
imath60 回复

前期广度 后期深度,入行还不久,我确实过于急躁了

造轮子和写 ppt

虽然不好听 就是这么个道理😂

大佬几年经验啊,感觉技能点还蛮多的。

@ 林月 可以下考虑七牛云的机会

点点点大军前来学习

林月 #15 · 2022年06月28日 Author
Changjun Ji 回复

学历不够 老哥

林月 #17 · 2022年06月28日 Author
jackeyhate 回复

两年测试经验

林月 #13 · 2022年06月28日 Author
Pactortester 回复

先踏实技术吧

前排的都是真正的大佬

林月 回复

感觉很多测开技术栈都没你多。如果深度都还可以的话,我感觉很猛了

林月 #10 · 2022年06月28日 Author
jackeyhate 回复

感觉还不够呀,想换工作,目前形式又很慌

广度勉强有了,想想深度吧,后续肯定要找个方向专精的,多跳出框架和语言,想想方案和效能。

测开肯定需要代码能力,最好具备设计思维

我感觉技术栈是够了,项目经验有落地的吗,工资的话看个人能力吧,比同级别的测试高个 30% 应该可以,今年行情确实不太好,跳槽的话还是谨慎一点吧

技术栈真滴很丰富了,也快两年经验了就 lz 一半的经历,lz 转行学的太快了吧

感觉技术要服务于你的项目。听过好多人说不以服务产品的技术都是耍流氓,你可以从项目中的痛点出发,理解你为啥使用这门技术,解决了什么。技术太多了,永远学不完,但是你如果有发现问题,解决问题的思路,再针对性的学技术,我觉得这个更能提现你的价值。

陈恒捷 回复

要做好第 2 点,能力要比较强,毕竟有些复杂影响点多的功能开发都要很长才能理清楚影响点。真实情况测试会有充足的时间看代码?代码能力很强的人,真的会在一线测试吗?

y23y5123 回复

是的,对能力要求会比较高。

看代码其实不一定会很花时间,在了解整体技术方案的前提下,直接看分支间代码变更情况,有个半天基本能看完开发写了两三天的代码了。不过这个确实看团队文化,如果大家都不重视这个(比如开发可能连技术方案都不设计,就直接动手写代码,或者团队觉得测试不懂技术,技术方案不会给测试看),那基本是不会给你时间做这个事情的。

最后代码能力很强的,是否会在一线,这个我觉得还是会有的吧。毕竟一线也有分初中高级别,到了高级甚至资深,这个能力应该是会有的。

陈恒捷 回复

个人能力一般,阅读开发代码还需加强😂 。技术方案或者代码设计文档,这些东西蛮重要的,我们现有的情况是开发不想写文档,感觉浪费时间,有些测试感觉这些东西可有可无,反正就按需求测试,也不关心是如何实现的。之所以认为代码能力强的不会在一线,是因为有很多时候感觉功能测试太被动的,比方说测试进度依赖于开发质量,遇到一些不太细致的开发,一个问题改个三四次才把问题改好,不拆分需求影响点,小改动引来一堆问题。

y23y5123 回复

这个和团队文化有关。

你有这个意识是挺不错的,如果实在施展不开且难以改变现状,可以考虑换到一些对这些方面更为重视,而非单纯按需求测试的团队里吧。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册