测试开发全栈之Python自动化 功能测试如何转型自动化测试

程序员一凡 · 2020年10月23日 · 1586 次阅读

在互联网行业,我们是那些被遗忘的技术人。

很多人都觉得,传统开发、运维才是技术含量的一个工作。

但是测试的入门门槛比较低,所做的事情相对有限,

这是我之前跟一些大型互联网软件测试负责人大牛们聊天的时候发现,很多人对测试仿佛有这样的一个标签——没有什么技术含量。

那么我们先来看一下软件测试工程师行业现状以及职业路径规划

据相关调查表明,目前做功能测试的居多。占据了测试行业百分之六十。

我们来简单分析一下

第一个

功能测试到自动化,几乎是所有测试人的职业必经之路。虽然有很多伙伴目前还没有接触到技术自动化。

从小公司到大公司。

在小公司有一个什么样的特点呢?

测试和开发的比例,十个开发可能就只有一个测试。越小的公司这个失调的比例越高。稍微大一点优秀一点的公司,他的比例可以能五到六个开发一个测试。大公司一般就几十人的开发甚至几百人的开发,测试也就会有一到二十个人。这就是小公司和大公司的区别。那么,从这个比例,我们也可以看出用到的技术等等,大家可以去品一下。(可以参考 google 微软的测试开发比例)
软件测试行业现状
我觉得这个大家作为互联网公司的一份子,对这个是最为了解有深刻体会的。也有一些朋友在一家公司呆了几年之后,没有出去面试,也不了解现在外面大厂需要的一些新兴技术。我的建议是在互联网行业,就算你没有计划跳槽,你也应该出去走一走,看一看外面用的技术,看一看外面的行情待遇,你自己技术有没有落后,工资有没有落后。

中国英才网、前程无忧等大型招聘网站统计的数据中测试行业缺口高达 30 万,接近 40 万! 只要有互联网产品,就必须有测试!

互联网/移动互联网/物联网迅猛发展,大数据、云计算时代,机器学习的到来,软件测试人才需求倍增。

我们首先分几个级别,这里就不分初级中级高级,因为不管你做功能做自动化都分初级中级高级。所以我们可以根据类型来分。

首先第一个类型。
功能测试,可能是大家目前最熟悉做得最多的一个测试类型。它的一个俗称也叫点点点。

功能测试它的市场行情,至少占据了 60%,毫不夸张。就比如一个软件测试交流群,10 个里面至少有 6 个仅仅只做功能测试。

它的一个基本要求,只需要懂产品、业务需求,这个产品的业务核心在哪里,一些软件开发的流程,编写测试文档。不需要懂任何的测试工具,测试技术编程等等。

功能测试的日常工作有一个很明显的特点,重复性工作特别多,非常枯燥。不懂编程,测试工具也用得很少。比如最常用的 mysql 或者 Navicat、postman,甚至 linux 都几乎很少用。

虽然入门门槛低,基本要求不是很高,薪资待遇,在一线城市也能拿到 8-15K 左右,导致现在有一大批的测试人做了几年,还是在做功能,因为拿到了 10K 左右,也能保证日常开销。导致没有学习的兴趣,学习提升的氛围不足。

第二个类型。
首先功能测试肯定也会,会一点点自动化,这个自动化是说,能实现简单的效果。能自己去玩一些简单的 Python+Selenium 实现登录等基本效果、搭建环境。

基本要求:功能测试项目经验丰富,做过 P2P、金融、crm、银行、erp、电商、app 等各种系统都做过一些测试,会简单的编程,会一点接口测试(拿高工资的很大一批测试都是因为他会接口测试自动化)会一些开源工具辅助测试,比如说,很典型的 postman 做接口测试,jmeter,然后自动化会用到 Selenium 或者用一些可以录制自动化脚本的一些工具。

特点:自动化没有给项目带来真正的价值,或者就是说自己拿项目在写一些简单的脚本。自动化完全没有应用到实际工作项目中去,特别是做了两到三年的测试工程师,可能已经了解了现在自动化是一个趋势,也是现在的一个职业发展路径,所以去简单的了解了一些编程、接口测试,比如说 Python+Selenium 他也能实现简单的脚本,但是目前的技术效果没法说法产品、技术经理我为什么要来做自动化,没有深入了解自动化对于整个团队的重要性,和真正带来的价值。

工资待遇:8K 起步到 18K 左右,在一线城市。面试的时候会和面试官说我了解前面提到的技术,所有 12K13K 都有可能。

第三个类型:
功能测试 + 自动化 + 接口测试 + 性能测试

这个中间的自动化里面就包含了很多东西了,包括了搭建测试框架,他能带团队做自动化。

基本要求:

在一些大型招聘网站上,

熟悉一门编程语言,我们就拿 Python 来举例子。在这里为什么我们推荐的是 Python,我在之前的文章中讲到过很多次,有兴趣的可以去阅读一下。虽然我之前也是写 Java 的,后来随着工作经验、市场的主流、业界的发展规律。作为测试行业的人 Python 毫无疑问是首选。不管你自己搭建框架、还是做平台、做性能,用 Python 各种脚本非常方便。容易上手效率也高。还可以做一些爬虫、大数据分析,图像识别。

这里的熟悉一门编程语言,不是说你知道一点数据类型、基础语法。不是这样子的,你真正的想要做高级测试工程师,如果我来面试你,熟悉一门编程语言我会问到很多问题。

第一个,Python 编程你的基础要扎实,各种数据类型以及它们的区别、优势。什么时候用哪种数据类型。比如说列表 list、元祖 tuple、字典 dict、集合 set 各种数据类型它的原理、区别、优势。还有一些控制流 if&for 循环 while 等等。还有迭代器和生成器。这些面试官肯定会问到,如果你想做高级测试工程师,拿到 20K 以上薪资。

想图上面进阶类的函数,里面也包括了很多内容。参数、返回值、递归。装饰器和匿名函数,为什么要用到匿名函数?为什么要用到装饰器?装饰器在自动化中你如何去运用的?像这种问题才是真正面试高级测试工程师面试官会问到的问题。比如说面向对象里面的高级编程,多态、封装、继承、各种。因为你真正的去搭建测试框架,像第二类型的测试人你去实现自动化,你根本不需要了解高级编程,因为像这些简单的代码网上一大堆。

真正的如果你要带团队去做测试了,做自动化了,要去写框架了,会用到各种高阶的语法。面向对象思维、继承、装饰器等等各种用法都需要很扎实。异常处理非常关键,异常如何去处理?什么时候用到异常?什么时候去用到内置函数 map、sorted 等等,像这种你全部需要全部系统、扎扎实实的掌握。

不然,你拿什么去搭框架?这种语法你都熟悉,你如何去扩展你的框架?你还是只能去写一些只能实现的自动化。

熟悉一门编程语言,和了解一门编程语言是有很大的区别的。

说到编程语言,你肯定需要熟练自动化

UI:包括 app/web

除了 UI 还有一个很重要的就是接口,我之前说过一句话,接口自动化测试是软件测试工程师能力分水岭的体现。

很多做 UI 自动化的,一些简单的 UI 是会的,但这个完全不能说是一个加分项,毕竟在企业中接口自动化的比例比 UI 要大很多。但是 UI 自动化也很有用,你如何去把握 UI 自动化给你的项目带来价值,这个我在之前的文章中也有单独讲到过。

能够独立搭建测试框架,有很多的招聘直接写了这样一句话,能够独立搭建测试框架优先。招聘需求是最容易体现的。

特点:待遇高,稀缺。技术栈非常全面的测试非常少。对于互联网公司来说这个类型给 20K30K 完全不是问题。

第四个类型:
功能测试 + 自动化 + 性能测试 + 测试开发(不管什么类型功能测试都是基础)

测试开发是当下非常火热在词,可能大家最终想做架构师,行业最高水准就是架构师,拿到在薪资也是很可观。

测试行业肯定也有架构师,自动化玩得很透彻、性能玩得很 6,编程玩得很 6

现在我可能做框架,后面就会想到平台化,你不需要搭建任何的框架,就直接在一个页面去做自动化、性能,所以现在大家如果在测试行业多去学习,你可能会发现在这路上有很多人。

这是一个趋势。

非常火热,薪资待遇非常高。
这就是一个综合管理平台,测试部门只需要每天来登录这个平台就好了。写用例、用例评审、做自动化测试、做性能测试、写测试报告、提 BUG 等等。各种问题都可以在测试平台里面进行。

实际运行效果可以点击视频观看。https://www.bilibili.com/video/BV1Rp4y1Y74x

最后还有一小部分,做了企业管理。都是一个职业发展路径,选择最适合自己在路线。

文章首发于公众号:程序员一凡,软件测试,与你同行!陪你成为优秀的测试工程师!
絮叨

如果你想去一家不错的公司,但是目前的硬实力又不到,我觉得还是有必要去努力一下的,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。

如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。

一凡发现在工作中发现我身边的人真的就是实力越强的越努力,最高级的自律,享受孤独

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册