2023年自动化测试已成为标配?一篇彻底打通自动化测试...


前言

首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。

例如:
1、了解 selenium、appium或者其他自动化测试框架;
2、至少熟悉一门面向对象开发语言,有一定的代码功底优先;
3、熟悉Java或者python,有一定的测试自动化经验和代码阅读能力;
4、了解接口集成测试,会使用JMeter、Postman、SoapUI等接口测试工具。

等等,上述内容不再一一列举。突然自动化测试遍地开花,好像测试工程师的自动化测试能力成为了标配一般。

测试:这个我们熟悉。最经典的一个解释,程序测试是为了发现错误而执行的过程。

测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容:
1、运行被测试的软件,执行软件的功能;
2、运行其他工具,去检查软件的内部和外部。

比如:测试主管让测试工程师去把软件的所有功能遍历一遍,该测试工程师通过鼠标、键盘、麦克风、手机屏幕触控等,把软件所有的功能,全部遍历了,这个叫做什么?熟悉测试的童鞋明白,这就是传说的“手工目测”呀,这是“人肉测试”。

自动化

到这里,结合上面的说法,自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。

既然测试是一个过程,那么自动化测试,就是自动的执行的过程。

接下来我们探讨的一个核心的问题:自动。什么叫做自动呢?
让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一遍,这是自动化,这样说会不会清晰一点?

重点来了,机器。让机器去动,这是人类命令机器去操作。不知道童鞋们有没有思考过,机器怎么知道人类的要求?上面的例子,测试主管只要告诉测试工程师,命令传达就完成了。可是人类直接的沟通,远比人机沟通容易啊。

首先,机器听不懂“人话”,无论中文,英文……

其次,机器默认会的“汇编语言”,应该是绝大部分的童鞋不会,并且短期掌握不来吧。

机器学习一个编程语言,轻松和简单到令人发指的地步:安装上去,机器就学会了。好在人类学习编程语言也不是特别难的事情。看来这个可行。

有了编程语言,就有了人机交流的桥梁,剩下的事情,是帮机器挑选工具。做对应的测试,就需要找到对应的工具,这样自动化就自动起来了。能到这里,我希望各位童鞋了解了基本的“自动”原理。

然后我们介绍各种常见的工具,来继续讨论自动化测试。进一步探讨之前,我们先看看测试的常用分类。这里不同的分类维度下,我们可以分为不同的测试,这里我们认真分析一下。

从软件测试的实践过程看:单元测试、集成测试、确认测试、系统测试、验收测试……
从软件测试的方法策略看:白盒测试、黑盒测试、灰盒测试……
从软件测试的测试视角看:功能测试、性能测试、兼容性测试、安全测试、探索性测试……
从软件测试的技术程度看:手工测试、自动化测试、测试开发……

以上这些维度下的分类,只有一部分测试可以通过“人肉测试”的“手工目测”完成,剩下的其实从广义概念上,都是需要机器来完成的。

我们把这一部分测试抽取出来:系统测试-黑盒测试-功能测试-手工测试。不可否认的讲,这条线是目前软件测试从业者的重点覆盖范围,该范围之外的地方,便是自动化测试的用武之地。

自动化测试

Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + 单元测试框架,开源功能自动化测试方案

这里我们多介绍一点,Selenium/Appium 本身不能算是测试工具,而只是机器用来操作浏览器的工具,并且这个工具能听懂多种语言:

Java,C# 这两个种语言
Python,Ruby 这两个脚本轻语言
PHP,JavaScript 这两个专门处理 Web 的语言
工具外加指定的语言,可以让机器来操作浏览器,但是到此时还无法做到测试,于是才需要每个语言自己的单元测试框架。

常用自动化测试框架
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;

性能自动化测试
Java/C + HP LoadRunner,商业版性能测试方案
Java + JMeter,开源版性能测试方案
Python + locust,开源版性能测试方案

事实上,自动化测试覆盖了从 UI (功能测试)到契约(接口测试)以及底层代码方法(单元测试)的整个过程,要想很好的掌握自动化测试,那么的确需要以下三种领域的经验积累:

编程语言,面向对象编程优先,因为大量的开源技术方案,都是基于面向对象的编程方式。

测试的理念与设计,工具和语言,只是测试的手段,如何准备测试数据,如何设置测试的检查点与测试步骤,这些决定了测试的成败。
此外综合的 前端与服务器后端技术,是测试执行的保障。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

执着追求,不畏艰难,奋斗是照亮前行的明灯。心怀信念,勇往直前,只有不停努力,才能书写属于自己的壮丽传奇。相信梦想,拼搏奋斗,终将开启属于自己的辉煌之路!

勇往直前,无惧风雨,奋斗是砥砺前行的动力。追求卓越,坚持不懈,只有付出才能绽放耀眼光芒。相信自己,超越极限,创造属于自己的辉煌传世!

拥抱挑战,迎接变革,奋斗是无尽可能的源泉。放下畏惧,展翅高飞,只有奋发才能创造奇迹。相信自己,坚持磨砺,终将傲立巅峰,书写属于自己的辉煌人生!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值