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

  市面上一些培训测试开发的机构一般都会选择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. 安装v2ra y

    说明 全文中所有的‘删掉我’,都请忽略,如果不这么做,那么您将看不到这篇文章 ssr已经不行了,现在大家都以v2ra y为主 安装服务端 运行一键安装脚本,之后进入脚本界面,选“1”安装: bash ...

  2. Jenkins 2017年用过

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: 1.持续的软件版本 ...

  3. C# EntityCollection 和 List 互转

    private EntityCollection<T> ToEntityCollection<T>(this List<T> list) where T : cla ...

  4. 【转载】使用appium遇到的坑

    问题 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was ...

  5. 【原创】大叔经验分享(87)marathon重启应用过程服务不可用

    marathon提供多种健康检查方式 常用的有TCP和HTTP, TCP检查端口是否存在,存在则认为实例健康: HTTP检查指定URL的HTTP返回码,返回码正常(2xx.3xx)则认为实例健康: 这 ...

  6. 关于__new__和__init__

    关于__new__和__init__ 例如一个类 class Foo(object): def __init__(self): print(1) def __new__(self): print(2) ...

  7. sql语句分页多种方式

    sql语句分页多种方式ROW_NUMBER()OVER sql语句分页多种方式ROW_NUMBER()OVER 2009年12月04日 星期五 14:36 方式一 select top @pageSi ...

  8. Array+DP leetcode-11.装更多的水

    11. Container With Most Water 题面 Given n non-negative integers a1, a2, ..., an , where each represen ...

  9. Computer Vision_33_SIFT:Remote Sensing Image Registration With Modified SIFT and Enhanced Feature Matching——2017

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  10. 【2017-12-12】Winform----Datagirdview使用

    1.数据绑定 DataGirdView.DataSource = list集合 2.复选框 获取复选框选中状态 for (int i = 0; i < dataGridView1.RowCoun ...