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

  市面上一些培训测试开发的机构一般都会选择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. 关于OI中的各种数学

    学到后面数学越来越多了,感觉好难啊,开个博客专门记录一下数学相关的东西 因为反正也没人看,所以主要还是给自己看的 一些符号: 数论函数的卷积:$\ast$,$ h = f \ast g$ 则 $h(n ...

  2. Array Beauty CodeForces - 1189F (dp,好题)

    大意: 定义$n$元素序列$a$的美丽度为 $\min\limits_{1\le i<j\le n}|a_i-a_j|$. 给定序列$a$, 求$a$的所有长为$k$的子序列的美丽度之和. 记 ...

  3. 字符串的简单操作----记录次数 hdu2617

    统计出字符串中共能拼凑出多少happy.happy相对次序不变. #include<cstdio> #include<iostream> #include<string. ...

  4. Ctrl+R快速启动应用程序

    1.打开注册表 Ctrl+R搜索框中键入“regedit”,回车打开注册表 2.找到HKEY_LOCAL_MACHINE中的如下路径 HKEY_LOCAL_MACHINE\SOFTWARE\Micro ...

  5. sqlserver使用EF模型经验

    sqlserver使用EF模型经验 EF模型使用本人在之前两三年中从没使用过,所以刚开始使用就会踩上许多的坑.今天我不单单说下自己所踩的一些坑与当前公司中使用EF模型设计的理念,即是为我自己做个笔记, ...

  6. echarts重写图例点击事件

    echarts version: 3.1.2 修改图例点击事件样例代码: 当第一次点击图例时,只显示点击的图例. 当还剩一个图例被取消选中后,自动全选中所有图例. var triggerAction ...

  7. MVC框架+vue+elementUI

    用自动化构建做的vue项目,因为是动态加载数据,在SEO优化时一直不如意,于是我们换了框架,用MVC框架,做成静态页面,但是原来的代码都是用vue和elementUI,为了快速的复用原来的代码,于是在 ...

  8. MRC下delegate 野指针问题

    最近项目开发中,临时被调去修复一个页面返回时crash的问题.出现这个问题的原因也很巧合,正好服务地址在同事电脑上,也正巧网络请求响应时间狂慢!一个请求发出去回来的时间是40秒左右,要是在线上,肯定会 ...

  9. selenium实现登录百度(自动识别简单验证码)

    需要做的工作 0.工程结构 1.代码: ①baidu_login.py import re import os import sys import time import random from se ...

  10. kbmMW 5.10.01试用报告

    1.FileClient.SameFile 调用这个方法,当本地文件不存在时,会一直等待.跟踪代码,发现: function TkbmMWCustomFileClient.SameFileEx(Loc ...