很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对正确的选择确实要比盲目投入更明智也更高效。

目前最常见的情况是 纠结选择 Java 还是 Python? 关于这个问题,我特意请教了几位资深的测试技术专家,在这里做一个汇总整理,集“各家”之言供大家参考,也欢迎各位朋友根据自己的经验回帖补充意见。

P.S. 有一点需要强调,关于编程语言的选择和对比,不存在唯一正确的答案,也没有一劳永逸的全局解决方案。这里列举的也仅代表个人意见,仅供参考,大家还需要结合自身情况做选择。在保证大方向正确的前提下,快速学习,努力提升自己才是王道。

  • 测试工程师该如何选择合适的编程语言?
  • Java or Python?这两种语言在一线测试工作中实际应用是怎样的?有哪些优劣势对比?
  • 对测试新人和有一定经验的从业者有哪些建议?

---- @方程无解 美团资深测试技术专家、Python 自动化测试技术专家

很多同学都有这个困扰。Java 和 Python 是现在开发和测试行业的两大主流语言。目前 Java 的市场占有率是第一,Python 还是第四,但 Java 的占有率在走下坡路,尤其是在 Oracle 宣布新版 JDK 收费后,会加速这种趋势。Python 作为大数据工程和 AI 的主流开发语言,一直保持强劲的上升趋势,即使目前 AI 还没有大量的成功的商业案例(盈利的)就已经很火爆了,一旦成功的商业模式建立起来,Python 开发和测试的需求更会爆发性增长。

Java 和 Python 通常在大厂里面都是并行存在的,但在创业型公司里面,Python 做测试开发的比例比 Java 高,创业型公司里面要求快速推进,推进速度会比大公司更激进。

Java 目前在市场上毕竟还是占有率第一的,Java 测试开发的绝对需求量会比 Python 多,但会 Python 的人相对比较少,竞争也会小一些。Java 用来做测试开发,还是太重了点,技术点比较复杂,学习曲线长,编写测试代码的速度慢,Python 编写速度快,非常适合测试资源不充足的情况下,快速开发测试工具。通常实现一个功能,Python 的代码量是 Java 的 1/3-1/5。

很多大厂之所以一直还用 Java 做测试开发,主要前几年积累下来的工具都是 Java 的,前几年会 Python 做测试开发的人太少了,但现在大厂新工具的开发,更多人选择了 Python。

对于小白和刚入行的同学,毫无疑问,直接学 Python,这个没有其他要讨论的。对于 Java 开发一年经验以上,或者写过 1W 行以上代码的同学,在继续深入学习 Java 的同时,也要开始学 Python。在实际工作当中,用Python 写小工具,很方便。Python 对 Java、C、 C++ 的调用都有成熟的框架,而 Java 没有。另,除了 Python 和 Java,如果大家还想学习一门新的语言,我建议大家学习 Go,那也是一个明日之星。

关于测试开发工程师如何做技术栈选择的建议:关于测试技术,建议初级测试人员(1-2年),先在一个专项测试技术上发展,然后再扩展到全栈(API、Web、App、后台、安全性测试、性能测试、数据库、Linux、中间件等)。你的技术体系应该是 T 型结构,测试人员的知识体系应该比开发人员更全面,要学的东西很多。除了测试技术外,测试人员也要不停的学习开发技术,公司用什么开发技术,你就要跟进学习。和开发人员的交流保持在一个频道下,理解其设计就会更顺畅。

---- @山治 前第四范式资深测试开发工程师

建议初学者先掌握 Python,而高级的测试开发者两个都要会。一般高级工程师主 Java,副 Python。

另,语言跟某些业务场景也有绑定关系,比如 RPC 协议测试,在国内Dubbo 这个框架很流行,就是基于 Java 调用的。很多 2B 企业提供的 SDK 测试,也大都是基于 Java 的 SDK 测试。

而且,大型自动化项目通常是团队多人协作的,Java 由于静态语言特性不容易出错,而 Python 容错性相对来说就要差一些,代码多了容易 hold 不住。

主要就是开发圈子里 Java 太流行了,导致测试里面 Java 系比较有好处。

---- @余离 知乎测试技术专家

对于语言,第一选择是最好和研发的语言技术栈一致。

在测试过程中,如果只是接口自动化,或者基础平台开发,Java 与 Python 两者差异并不大。建议优先选择更熟悉的语言。

一些开源自动化框架用 Python 的相对多些,在日常工作中一些脚本工具用 Python 写会快很多。

其实个人觉着代码技术栈的选择方面,通过 Java 入门要比 Python更面向对象一些,对一些设计模式的学习也更友好一些。另外,从开发角度来讲,Java 的稳定性和可靠性及现有解决方案会更好一些。

如果面向平台开发,第一门入门语言可以选 Java,语言一通百通,Java 上手后学习 Python 的成本也不高。

但如果只是自动化测试框架,工具,两者都可以,我个人更倾向Python,新手写起来很快~。另外,如果是大数据方向的测开,最好用 Java。而如果策略算法领域的测开,Python 则更好。

---- @思寒 测试专家

Java 和 Python 都不错。这是最大众的语言。
Python 最直接,生态强大,但是没有 Java 强大。
Java 的话是分两层的。JVM + JVM 之上的各种语言。也就是说你用Python、Ruby、Java、Groovy、Kotlin、Scala 等都可以调用Java 编写的库,生态上有优势。

但这个原因还是次要的,主要还是将来要做测试左移和测试右移,分析代码、统计覆盖率等都得跟研发保持一致,而国内用 Java 的公司可能占了 90%;

另可参考 测试行业的编程语言之争 by 思寒

---- @范令凯 前58 到家测试专家

  1. 针对没有接触过代码的小白,建议从 Python 入手,门槛低,学习成本比较低;
  2. 针对大数据的测试建议 Python;
  3. 本身 Python 和 Java 没有特别大的优劣之分,都有足够的库和插件可以完成我们的测试。遇到问题也都可以从网上快速的找到解决方案。所以选择 Python 还是 Java,最主要思路还是跟公司的技术栈保持一致。

比如我这边有 Dubbo 的接口,建议选择 Java,从接口测试到后续的代码走读,都比较方便(当然 Python 也可以实现 Dubbo 的接口测试,但可能成本比较高)。

---- @晓光 测试技术专家

跟被测物同语言最好。

  1. interop 不会有坑。
  2. 开发能读懂,沟通不会有坑。
  3. 如果是单元测试或者结合很紧的接口测试可以跟生产代码放在一起。加入 CI 经常跑,保持有效性。

---- @艾辉 前饿了么高级测试技术经理

Java 和 Python 这两种语言在测试开发的工作中应用都很广泛,如果非要分主次,Java 相对来说更多。服务端用 Java 开发的项目居多。

关于测试工程师如何做技术栈选择?有几点需要注意:

  1. 业务团队的技术栈,即公司服务端用什么语言做开发;
  2. 自身技术基础,对编程语言熟悉程度,个人兴趣等;
  3. 相关语言背后的技术生态是否完善,比如做服务端自动化测试,Java 的工具库、Python 的工具库,哪个更能解决痛点问题?

对于零基础和刚入行的同学,建议从 Python 入手,因为 Python 语法简单,相对容易上手;有一定经验的测试工程师则要从解决什么问题方面考虑,然后建议 Python、Java 都熟悉掌握,能紧跟行业技术趋势和要求,比如近几年 Go 越来越火,不排除测试开发工程师之后要学习掌握 Go 语言。

测试开发的技术广度要求相对更高一些,因为你不知道下份工作中,公司业务会用到的技术栈情况,所以需要掌握迅速迁移学习的能力。但就目前来看,Java 和 Python 两门语言能熟练应用基本就可以满足大部分测试开发工作的需要,其他 Case 根据实际情况来看。

软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?相关推荐

  1. 可爱的python测试开发库及项目(python测试开发工具库汇总)

    转载: https://www.jianshu.com/p/ea6f7fb69501 可爱的python测试开发库及项目(python测试开发工具库汇总) github地址 相关书籍下载 Python ...

  2. Java与Python混合开发

    1.Java与Python混合开发 我熟练使用的语言是java,java与python的混合开发怎么实现,javaEE+python来实现在线测试工具.以下是一个简单思路的整理. <depend ...

  3. 挑战360无死角讲解Linux内核 进程管理,调度器的5种实现丨C++后端开发丨C/C++Linux服务器开发丨内核开发丨网络编程

    挑战360无死角讲解 进程管理,调度器的5种实现 1. 8500行 CFS是什么 2. RT调度器使用场景 3. IDLE/Dealine调度器 视频讲解如下,点击观看: 挑战360无死角讲解Linu ...

  4. java写测试小工具,java试题自我测试小工具

    java试题自我测试小工具 北京石油化工学院 数理系 科 072 071616 刘红育 1 Java 语言综合设计实验报告 --GUI 编程设计题目: Java 试题自我测试小工具 班级: 学号: 姓 ...

  5. java跟python哪个好找工作-短期找工作,编程语言是学习Python还是Java好呢?

    声明:这是一篇容易引起撕逼的问答,为了祖国和谐,人民安康,请各位看官尽量理性讨论.正巧我前两天写了一篇 Java和Python现在都挺火,我应该怎么选 的文章,正好对题,就此回答一波.同时,这篇文章是 ...

  6. python web开发前景_【python web开发工程师就业前景怎么样|做python web开发工程师有前途吗】-看准网...

    python web开发工程师就业前景分析 这个数据对你 有帮助吗? 数据详情 该职位2016年3月招聘需求230个,涨幅0% 数据说明 图表中根据地区企业近一年发布的职位招聘信息统计所得,纵轴为职位 ...

  7. python项目开发实战网盘-python项目开发实战 第2版

    python项目开发实战 第2版是一本Python项目开发流程实战手册,由日本BePROUD股份有限公司编著.本书的内容全部基于python开发事实,全部都是BeProud员工实际尝试.实践过的,可以 ...

  8. python开发软件行么-python适合开发桌面软件吗?

    其实Python/Java/PHP都不适合用来做桌面开发,Java还是有几个比较成熟的产品的,比如大名鼎鼎的Java集成开发环境IntelliJ IDEA.Eclipse就是用Java开发的,不过PH ...

  9. python适合做后端开发吗-想从事Python 后端开发?

    先说思路,再说操作. 不管你用什么语言,PHP.Python 还是 Java,后端都会涉及到这些东西 1.计算机基础:操作系统.网络系统(协议).数据库系统.数据结构与算法 2.中间件:Nginx.M ...

最新文章

  1. 人脸识别算法初次了解
  2. 对par.markdown解析进行完善
  3. php超链接如何隐藏参数,php如何去除超链接
  4. nema0183 java解析_NEMA 0183 语句解析
  5. 利用Spring解耦VS的WebService
  6. Metro UI 的设计感悟
  7. 用R读取Excel的新方法
  8. 最近,前端开发把我恶心着了,为了甩锅,我写了个牛逼的日志切面!
  9. 谢尔宾斯基三角形:Python+turtle
  10. phy芯片测试寄存器_DM9000寄存器功能详细介绍
  11. 点到点法式平面投影点的计算
  12. 2022年执业兽医考试经典试题及答案
  13. 微信公众号接入智能客服机器人可以实现哪些效果
  14. linux开发板通过网线连接电脑(win10)连接网络问题
  15. 目标检测、追踪梳理:帧差法、光流法、背景减除法
  16. excel数据处理_Excel数据处理(1):千分位分隔符
  17. 自然语言处理(NLP)发展历程(1),什么是自然语言处理?
  18. 2023养老展,中福协养老展,中国国际养老服务业博览会
  19. 苹果处理器性能突破天际,安卓已望尘莫及
  20. HP Pavilion Slimline 400-011cx Desktop PC 重装windows server 2008 r2 x64 找不到RealTek 8168网卡

热门文章

  1. 第一个被赋予公明身份的机器人_史上首次 沙特授予“女性”机器人索菲娅公民身份...
  2. iOS静态库中打包图片资源
  3. 带空格直角三角形图案
  4. 电磁兼容——电子系统的EMC要求
  5. 高通骁龙820A凭什么能赢得众多车厂的芳心
  6. android在代码中利用Spinner控件设置联动地区的解决办法
  7. 宽带知识-光纤局域网FTTB
  8. 求职-平安产险科技一二面
  9. IDT Source Code Running Guide(Linux+ffmpeg-0.11.1+opencv-2.4.2)
  10. 微信小程序接入腾讯云的对象存储