测试的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方面的知识,以前我因为它技术栈比较重而却步,今日还是要再拾起来。

posted @ 2019-12-06 22:00  不当咸鱼  阅读(814)  评论(0编辑  收藏  举报