现在测试行业如果不会开发语言的话是很难找到工作的,即使是一些功能测试的岗位也会要求代码语言作为技术储备,因为如果做自动化测试或者测试工具脚本开发或者接口测试等都离不开开发语言,那作为测试如果没有代码经验,如何选择一门语言呢?

  市面上一些培训测试开发的机构一般都会选择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语言之争的更多相关文章

  1. Java语言对对象采用的是引用传递还是按值传递?

    按值调用表示方法接收的是调用者提供的值:而按引用调用表示方法接收的是调用者提供的变量地址:一个方法可以修改传递引用所对应的变量值, 而不能修改传递值调用所对应的变量值: Java语言对对象采用的是引用 ...

  2. 别语言之争了,最牛逼的语言不是.NET,也不是JAVA!

    谁都不用说,博客园明显的偏.NET,C#的讨论一出现,推荐讨论热火朝天,而发点JAVA的东西,应者寥寥.一旦有出现两大派系的竞争,那绝对是头条.每天都看,早就麻木了. 研二的我浸淫.NET已经三四年, ...

  3. 【Java 语言生态篇】Junit 测试单元

    01 概述   JUnit是一个由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework).Junit测试是白盒测试.JUn ...

  4. 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)

    各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言) 总结 a.一个语言或者一个东西能火是和这种语言进入某一子行业的契机有关.也就是说这个语言有没有解决社会急需的问题. ...

  5. Tars | 第3篇 Tars中期汇报测试文档(Java语言实现Subset路由规则)

    目录 前言 1. 任务介绍 2. 测试模拟方案 2.0 *前置工作 2.1 添加路由规则 2.2 添加存活节点 2.3 [输出]遍历输出当前存活节点 2.4 [核心]对存活节点按subset规则过滤 ...

  6. 瘋耔java语言笔记

    一◐ java概述                                                                                        1.1 ...

  7. [Java入门笔记] Java语言简介

    前言 学习Java有一段时间了,但是一直缺少一个系统的思想,现在重新通过书籍中.网上的文章,视频等资料,整理与回顾Java的知识点. 言归正传,让我们先从了解Java语言开始. Java语言的由来 J ...

  8. Java语言的简介

    Java语言的由来 Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研发,并在1 ...

  9. 《自动化平台测试开发-Python测试开发实战》新书出版了

    首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...

随机推荐

  1. (十一)Hibernate中的多表操作(1):单向一对多

    一.单向一对多() 案例一(用XML文件配置): 一个班级有多个学生,班级可以查看所有学生的信息. ClassBean.java package bean; import java.util.Hash ...

  2. c#基础知识梳理(二)

    上期回顾 - https://www.cnblogs.com/liu-jinxin/p/10818256.html 一.变量 一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一 ...

  3. kong网关命令(一)

    上次在虚拟机里安装kong网关后,因为版本(1.4)太高,目前Kong Dashboard无法支持, 后续发现Git上有个开源工具Kong admin ui,下载源码并部署到NGINX. 但是发现使用 ...

  4. Win10安装PyQt5与Qt Designer

    1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 会自动下载PyQt5以及sip并安装,因为PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5- ...

  5. 分布式系统唯一ID生成方案

    分布式系统唯一ID生成方案汇总 数据库自增主键 最常见的方式.利用数据库,全数据库唯一. 优点: 1)简单,代码方便,性能可以接受. 2)数字ID天然排序,对分页或者需要排序的结果很有帮助. 缺点: ...

  6. MVC方式使用EasyUI - 搭建环境

    _Layout.cshtml <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ ...

  7. SpringCloud各个组件通俗解析

    https://www.cnblogs.com/lonelyJay/p/9936241.html

  8. depth/stencil buffer的作用 ----------理解模板缓存 opengl

    在D3D11中,有depth/stencil buffer,它们和framebuffer相对应,如下图所示,framebuffer中一个像素,有相对应的depth buffer和stencil buf ...

  9. 用js刷剑指offer(反转链表)

    题目描述 输入一个链表,反转链表后,输出新链表的表头. 牛客网链接 js代码 /*function ListNode(x){ this.val = x; this.next = null; }*/ f ...

  10. Python break, continue, pass 语句

    今天心情好好,来record一下,continue break pass 语句 1.break 与 continue break 语句可以跳出 for 和 while 的循环体.如果你从 for 或 ...