Skip to content

第13讲:Java语言在测试行业的地位及知识梳理

本课时我们主要讲解 Java 语言在测试行业的地位,以及对相关知识进行梳理。

Java VS Python

首先,我们来看下 Java 和 Python 这两门语言的一个对比情况。


对于测试工程师的语言体系,目前 Python 是一个大众化的语言,国内有大量的测试工程师在使用 Python,我们做过相关统计有超过一半的测试工程师使用 Python 语言,其次是 Java 语言,Python 与 Java 是目前测试行业使用最多的主流语言,这是测试工程师的主要技术栈。


然后,我们再来看下开发工程师的语言体系,开发工程师的语言体系和测试工程师就不太一样了,Java 是开发领域中使用最多的一个语言,其次是 C/C++,以及后面新起的 Go 语言,国内大多数的搜索、商城、推荐、交付、消息管道等系统都是构建在 Java、C/C++ 之上的,目前国内使用 Python 来构建自己完整技术栈的公司并不多,只有豆瓣和知乎。另外 PHP 语言也被大量使用,不过这个语言因为通用性不强,不建议测试工程师学习。


这就给两个技术领域带来了一个比较大的差别,测试工程师使用 Python 和 Java 是最多的,但开发工程师使用 Java、C/C++ 是最多的,我们需要能够认清整个行业的一个形势,了解不同语言在不同领域的一个使用情况。

测试左移和右移

接下来我们看下作为一个测试工程师,在面对这种现状时应该如何正确应对。首先,作为测试工程师如果你想要完成基本的业务测试、自动化测试、持续集成等工作,在这个层次上只需要掌握 Python 语言就足够了。但如果你想要有更高的发展,就需要掌握如何去构建与公司技术架构相适应的测试体系,其中最为重要的是测试的左移和右移。


测试左移需要测试工程师能够把工作提前到研发或是产品设计阶段去解决质量问题,其中需要深入到研发体系的技术栈,比如我们需要统计研发代码的覆盖率,既包括单元测试的覆盖率又包括集成测试阶段的精准化测试,也包括一些代码的分析和注入测试等等。这时,如果我们仅仅掌握 Python 是不够的,就需要学习使用 Java 或 C/C++。同样的,测试右移时我们也需要接触崩溃监控、性能监控、大数据分析、机器学习等工作。


在掌握这些技术栈的同时还需要与公司的数据进行整合,因为很多技术栈是构建在 Java 和 C/C++ 之上的,为了个人能力能够提高就需要你一定程度的深入研发的技术栈中,去做更多的质量保证工作,这也是中级测试工程师到高级甚至测试架构师必须经历的一个过渡阶段。那么作为一个测试工程师该如何构建自己的技术栈呢?

构建自己的多语言技术栈

针对这个问题,我给你推荐一个方案,首先我们使用 Python,Python 是一个通用的编程语言,AI、Web 平台开发都可以使用,目前 Python 也是测试人群使用最多的语言;第二个阶段我们需要完成进阶,在进阶阶段我们需要深入研发体系的技术栈进行测试的左移和右移工作。


所以进入工作后的 3~5 年是技术栈的升级窗口,在前 3 年里基本上就是手动测试、自动化测试、持续集成与交付,然后你会发现 3~5 年后我们需要更多地深入研发体系的技术栈,了解主流的技术架构,去做一些测试左移和测试右移等工作。同时,你还需要在这些基础上掌握一些 H5 的技术栈,比如 HTML、JavaScript、Vue 等。所以我推荐你在前 3 年可以使用单一的语言,比如 Java 或 Python,但 3~5 年是技术升级的窗口期,在窗口期就需要你去掌握研发体系的技术栈,能够度量研发的代码质量,甚至做一些代码的插桩、注入等工作。再往后发展甚至可能还需要你自己能够构建监控平台,所以作为测试工程师需要根据这些技术栈合理地调整自己的技术能力,才能适应整个技术的发展。