普遍观点
面对这个问题,普遍的两个观点:
-
1. 是和研发团队保持一致。即团队用什么语言,测试工程师就学习什么语言。
和研发团队保持一致当然可以降低语言层面的沟通成本。但是,不能作为唯一的参考条件。很多时候研发项目需求和测试需求并不一样。比如PHP语言很擅长开发Web应用,但是,他并不太擅长写Web UI自动化测试。从 selenium、playwright等自动化工具并没有出官方的库来支持PHP语言,就可以侧面反映这一点。
-
2. 语言只是招式,我们应该学习内功,比如编译器原理,数据结构、算法、用什么语言无所谓。
当然,能抛出这个观点想必已经拥有很多年开发经验的技术大牛。可是,大多数测试工程师并没到那个层次。我么只是想掌握一门语言,来完成工作。这个时候选择合适的编程语言是首先要确定的。如果让我去学习 编译器原理 不是从炼铁开始耽误砍柴功嘛。
衡量因素
除此之前,我们还可以考虑以下几个因素:
-
• 测试需求:比如采用go来写Web UI自动化测试,我就认为是比较愚蠢的行为。在go语言中使用
err
捕捉异常并进行判断,他会让你的代码变得非常臃肿。 -
• 市场需求:以10年为单位看,编程语言的流行也是有周期的,比如,我大学时学过一门编程语言叫
Delphi
,我想不少同学可能没听过。或者仅仅只是知道有这个编程语言。我想现在学习Delphi
应该是很难找到工作的。 -
• 适用性:尽量学习全能型的编程语言,比如 世界上最好的编程语言 PHP就是偏科生,仅在Web领域有广泛的应该。近些年在 移动开发、大数据、人工智能等领域都没有抢到一席之地。当然,这跟语言本身的特点有关。除非跟Web开发有关的项目,否者,不建议学习PHP。
-
• 发展趋势:随着人工智能、机器学习、大数据、容器技术的发展,我们应该学习在这些领域比较流行的编程语言。这样才能更好的保证在未来一段时间的竞争力。
推荐编程语言
如果你是即将毕业的学生,或者初入职场的软件测试工程师,需要学习一门编程语言傍身,或增加核心竞争力,我建议你学习以下几种语言:
-
• Python
Python是自动化测试领域的首选语言,因为它的语法简单易学,且拥有丰富的第三方库和测试框架,如Selenium和Appium等。这些框架可以轻松地编写出高效的测试脚本,并且支持Web、移动端、接口等多种类型的测试。
除了在测试领域,Python优势非常明显,此外,在 Web开发、数据分析和机器学习等领域,Python也是十分受欢迎的语言。许多研发团队也会将Python作为主要开发语言。
-
• Javascript/Typescript
Javascript/Typescript是Web开发的首选语言,因为它的语法简单易学,且拥有丰富的第三方库和测试框架,比如 cypress、playwright等。这些框架可以轻松地编写出高效的测试脚本,并且支持Web、接口等多种类型的测试。
你所看到的 Web网站、小程序、甚至是移动端App的部分UI页面都是由底层都是Javascript/Typescript开发实现的。而且学习Javascript等前端技术对于做Web UI 自动化测试有很大帮助。
-
• go
Go:Go是谷歌在12年前创建的一种年轻语言。谷歌设计Go是为了在多核、联网机器和大型代码库时代提高编程效率。
老实说,Go语言的在软件自动化测试领域的应用还不多,或者他本身没有太多优势。可是, Go语言采准了容器技术(docker/k8s)、云原生等。如果你时在一家中等以上规模的公司,必然会用到云技术,那么,学习Go语言是很有必要的。
-
• Java
Java:Java是Web开发和移动开发的首选语言,因为它的语法简单易学,且拥有丰富的第三方库和测试框架,如Selenium和Appium等。这些框架可以轻松地编写出高效的测试脚本,并且支持Web、移动端、接口等多种类型的测试。
Java在Web开发、移动开发、大数据、云计算等领域都有广泛的应用。就我个人观点,虽然Java应用很广,当回觉得他有一点点颓势。比如在Web后端服务,越来越多项目选择 Go语言。在移动开发领域,有 kotlin 来代替 Java 开发原生应用,又有 flutter 取代原生支持多端应用开发。而且,Java相比前面几款编程语言不够简洁,学习成本更高。
虽然,这是个老生长谈的话题,希望对你有所帮助。
最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。