测试的Python、 Java语言之争
现在测试行业如果不会开发语言的话是很难找到工作的,即使是一些功能测试的岗位也会要求代码语言作为技术储备,因为如果做自动化测试或者测试工具脚本开发或者接口测试等都离不开开发语言,那作为测试如果没有代码经验,如何选择一门语言呢?
市面上一些培训测试开发的机构一般都会选择Python作为测试的脚本语言,原因不外乎是作为小白的话,Python的语法更加简单,学起来更快,拿来上手也更快,那么对于测试来说真的是这样吗?
Python语言特点
python语言语法简单,内置了许多丰富的函数可以处理各种操作,并且python也有很多第三方模块用来处理各类的问题。基本上如果你想解决一类的问题,都能搜到相应的模块,然后直接导入使用就可以,例如http请求的requests模块,处理图形的Pillow,爬虫相关Scrapy等等,包括如果想从事web开发,一个Django集成了ORM,admin,分页,权限管理等各种工具,可以十分快的构建出一个网站,这也是我一开始选择python作为主要语言的原因。
在测试行业的话,python也发挥了很大的作用,例如各个自动化测试框架基本都会有python-java两个版本,许多测试同学把python作为主要使用的开发语言去做脚本开发,工具开发,测试平台开发,慢慢的给新入行的同学或者一些培训机构也都使用python来培训。
Java语言特点
java语言虽然不是世界上最好的语言(PHP才是世界上最好的语言),但是作为常年排行榜的前三也体现了它的位置。一些大厂的服务端也都是java。java如果作为脚本语言是不太适合的,它不像python那样有着丰富的三方库来处理各种各样的问题(但并不代表无法处理,只是没有python来的那么直接高效),如果要学习java web的话,它的技术栈又很多,让许多测试同学直接放弃转到来python的怀抱。
java语法没有python那样简单,但是它语言的严谨健壮,安全性,可移植,高性能等特点是测试人员不太能感受到的。
测试人员如何选择开发语言
那么测试人员应该如何选择开发语言呢?
首先我们看现在测试行业的整个发展,基本按照测试金字塔的测试分层再慢慢向下沉淀,由最早的功能测试到UI自动化测试,再到现在比较流行的接口API测试,再到已经初见端倪的单元测试(现在好多有技术含量的测试开发岗位都需要测试具有相同的服务端开发的技术栈,包括一些一线公司都喜欢开发转测试)。由此可以看到,仅仅是会一门语言写脚本,写点自动化测试已经不是主流的技术追求了。
如果从事的是客户端测试,那么需要对客户端开发(iOS-Object-c,android-java、kotlin)有所了解,这样你才更有可能发现定位深层次的问题,也可以更好的利用这些开发语言提供的各种单元测试框架,自动化测试框架进行二次开发,而不是简单的使用主流的selenium、appium做自动化测试,当你对开发有所了解,才会知道如何测试更能发现问题,不光是功能上的问题,更多的可能是性能上的,更深层次的代码质量问题。你可以去进行代码review更准确的确定测试范围。
同理,如果从事的是服务端开发,如果只是懂一门脚本语言去写个测试脚本或者写个接口测试框架脚本也仅仅是在接口层,你无法进行代码review,无法进行单元测试从而更好的进行测试。
因此,我们需要根据自己工作的内容或者自己期望在测试的哪个方向有所成长或追求,就应该选择那个方向上的语言,而不是仅仅为了写点脚本,能调调自动化测试框架的函数。只有真正了解了开发在写什么,在用什么,你发现问题的深度和思考问题的深度才会不一样,自己也才会有技术上的进步和提升。并且当真正学习了一门语言才会发现,要学习的是编程思想,而不是局限在什么样的语言。
我个人而言现在正在补java方面的知识,以前我因为它技术栈比较重而却步,今日还是要再拾起来。
测试的Python、 Java语言之争的更多相关文章
- Java语言对对象采用的是引用传递还是按值传递?
按值调用表示方法接收的是调用者提供的值:而按引用调用表示方法接收的是调用者提供的变量地址:一个方法可以修改传递引用所对应的变量值, 而不能修改传递值调用所对应的变量值: Java语言对对象采用的是引用 ...
- 别语言之争了,最牛逼的语言不是.NET,也不是JAVA!
谁都不用说,博客园明显的偏.NET,C#的讨论一出现,推荐讨论热火朝天,而发点JAVA的东西,应者寥寥.一旦有出现两大派系的竞争,那绝对是头条.每天都看,早就麻木了. 研二的我浸淫.NET已经三四年, ...
- 【Java 语言生态篇】Junit 测试单元
01 概述 JUnit是一个由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework).Junit测试是白盒测试.JUn ...
- 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言) 总结 a.一个语言或者一个东西能火是和这种语言进入某一子行业的契机有关.也就是说这个语言有没有解决社会急需的问题. ...
- Tars | 第3篇 Tars中期汇报测试文档(Java语言实现Subset路由规则)
目录 前言 1. 任务介绍 2. 测试模拟方案 2.0 *前置工作 2.1 添加路由规则 2.2 添加存活节点 2.3 [输出]遍历输出当前存活节点 2.4 [核心]对存活节点按subset规则过滤 ...
- 瘋耔java语言笔记
一◐ java概述 1.1 ...
- [Java入门笔记] Java语言简介
前言 学习Java有一段时间了,但是一直缺少一个系统的思想,现在重新通过书籍中.网上的文章,视频等资料,整理与回顾Java的知识点. 言归正传,让我们先从了解Java语言开始. Java语言的由来 J ...
- Java语言的简介
Java语言的由来 Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研发,并在1 ...
- 《自动化平台测试开发-Python测试开发实战》新书出版了
首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...
随机推荐
- Codeforces Round #557 Div. 1 based on Forethought Future Cup - Final Round
A:开场就读错题.读对了之后也没啥好说的. #include<bits/stdc++.h> using namespace std; #define ll long long #defin ...
- hdu 4496 其实还是并查集
Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...
- Android监听EditText输入字符串,删除指定的字符
alert_ed = (EditText) a.findViewById(R.id.alert_ed_queue_num); alert_ed.addTextChangedListener(mText ...
- vs Code编辑器智能提示功能
一.Node.Js的Typings工具可以用于Visual Studio Code的代码补全 1.vscode 的默认只有es原声api带有自动补全的功能,现在V1.9的版本默认已经支持NodeJS的 ...
- 你不知道的javascript(上卷)读后感(二)
this词法 熟悉ES6语法的开发者,箭头函数在涉及this绑定时的行为和普通函数的行为完全不一致.跟普通this绑定规则不一样,它使用了当前的词法作用域覆盖了this本来的值. 误解 this理解成 ...
- apidoc 工具的使用
使用rest framerok时,需要写API接口文档,此时就需要用到 apidoc(个人觉得这个用的比较顺手) 需要安装nodejs,,, windows 下 1 然后验证是否安装成功 node ...
- ORA-3136 问题处理
Alert 日志报错: Wed May :: *********************************************************************** Fatal ...
- 使用JavaScript实现录入信息生成名片
首先是布局: 一个大的盒子模型套两个小的盒子模型:左边是录入信息生成界面,右边是名片显示界面. 框架: 这里新建一个css文件,用于外部链接使用装饰 /*最外层div,主框架*/ .frame{ wi ...
- docker从入门到精通再到放弃
docker说明 docker三大功能:构建(build).运输(ship).运行(run),只需要记下这三大功能就可以了 1.docker入门 docker安装及配置 a.docker源配置 cur ...
- Java字节码方法表与属性表详解
继续跟着上一次[https://www.cnblogs.com/webor2006/p/9502507.html]的那10个代表code的字节分析,如下: 而这些字节其实对应的信息是它: 所以问题就来 ...