自动化横行时代,手工测试如何突破重围?测试之路...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

自动化测试是每个软件公司反复提及的,现在2023年末,放眼望去,测试岗位的招聘要求里十有八九都会有一条“掌握自动化测试技巧”。

甚至有的公司把用例自动化率(实现自动化的用例数/总用例数*100%)当作考核测试人员工作质量的指标之一。

想必大多测试人员会发出灵魂一问:
难道手工测试就必须消亡了吗?自动化用例真的那么重要吗?是不是所有用例都需要实现自动化呢?自动化测试是不是就是所向披靡,无敌的呢?

1、自动化测试的特点

相较手工测试,自动化测试最大的优势就在于:

能够快速测试(快速检测代码变更引入的错误);可以重复测试(反复执行成本低)。

但是,自动化测试也有自己的缺点:

如果软件系统体量比较大,那么自动化测试脚本也会比较复杂。自动化测试脚本的复杂度与系统的复杂程度是成正相关的;

如果软件系统迭代快、周期短、变动多,那么脚本维护将需要较大成本;

随着软件系统的不断迭代,功能的不断增加或细节的变更,会出现大量冗余的自动化测试脚本,这类冗余的脚本会直接影响测试脚本执行的效率;

自动化测试脚本的质量直接影响测试执行成功率(执行成功通过的次数/总的执行次数*100%)。只要是代码都会有故障,测试代码也不例外。低质量的自动化测试脚本有可能导致测试执行时的不稳定性(例如:反复失败);

对于测试人员而言,自动化测试,脚本准备时间(如自动化测试工具选取、脚本编写等)大于测试设计时间;

对于迭代较快的产品,需要测试人员快速地完成测试,在此种情况下,留给测试人员实现用例自动化的时间不会很多,自动化测试在新功能周期内往往很难快速实现;

对于业务量大、业务复杂的系统(如经济类系统,银行等),用例自动化率难以保证。且如前端GUI自动化测试,100%用例自动化率本身就是一个几乎难以实现的愿景。

说了那么多,到底是想证明个什么事儿呢?其实,上面的阐述无非是想问答几个问题:

手工测试会消亡吗?
个人觉得,答案肯定是不会。

为什么呢?

自动化测试有其优点,可以帮助测试人员快速完成回归测试。
但其缺点也依然存在:测试代码冗余、测试代码维护成本大、部分产品的复杂功能难以自动化等等。

是不是所有自动化用例都需要实现自动化呢?

答案当然是否定的。理想很丰满,现实很骨感。且不说产品本身特点是否能满足完全自动化测试,从自动化成本(维护成本,时间成本,人力成本等)而言完全自动化就是值得思考的问题。再者,对于前端GUI自动化测试而言,完全自动化本身就很难。

自动化测试是不是所向披靡、无敌的?

答案当然也是否定的。毕竟自动化测试的根本目的主要在于快速地回归测试,在回归测试的过程中对于环境的需求、场景的设置都是具有限定性的,且自动化测试代码也会存在故障。如果切换场景进行自动化测试,不见得能百分百通过。

那么,再进一步想想,如果自动化测试很重要,但又不是百分百完美的,如果想要借助自动化的便利提升测试效率,那么应该针对怎样的用例实现自动化呢?自动化用例应该用在什么样的测试活动中呢?

2、选择需要实现自动化的用例

其实在上述章节已经揭晓了如何选择需要实现自动化用例的部分原则。

选择执行结果稳定的用例实现自动化

试想如果一个用例执行结果不够问题,那么将手工测试步骤自动化有什么意义呢?

这个时候需要的是去重新审视测试步骤是否准确或者代码是否有隐藏问题吧?!

选择功能稳定的用例实现自动化:

试想如果一个模块或者一个功能频繁变更,那么用例实现自动化有什么意义呢?如果将此类用例实现自动化,反而会加重测试人员对自动化脚本的维护成本。

首先选择接口用例自动化:

那是因为接口自动化学习成本低,几乎是每个测试人员接触自动化测试的第一步。而且接口是每个模块衔接之处,保障系统运行的重中之重。

如果要求前端GUI自动化
要慎重

前端GUI本身就是一个属于频繁变动的部分,如果实现自动化,对自动化脚本的维护就是一个不得不思考的问题。

也许你会说,我用录屏啊。录屏虽然学习成本低、操作简单,但是对于测试步骤的断言、测试结果的判定大多还需人工干预。

3、如何在自动化兴起下发展手工测试

百分百自动化测试是每个测试人员的追求,每个公司的终极梦想,但这本身就意味着实现的困难和不可能。

自动化测试很重要,但手工测试仍然不可或缺。

测试人员担心自己会被各种不断进步的自动化测试工具替代的时候,可以想想如何在包围圈中拼杀出一条血路:我想,测试设计应该是一条可选之路。

好的测试设计能够节省测试成本(如测试资源的投入)、提高测试效率、提升测试结果稳定性。同样,优秀的测试设计能够指引测试人员挖掘一些深层故障,提高产品质量。

常有人说:测试是一门简单的工作,测试岗位可以被取消,不需要专职测试人员。但是如果不需要专职测试人员,让开发人员兼职测试工作,岂不是开发人员既当选手又当裁判?如何能够公正地评判。

再试想:如果开发人员能够知道自己代码中的故障,那为什么不在编写代码的时候就避免了呢?

4、测试员如何杀出一条血路

说实话,我没什么远大的理想,无非就是想在测试这条道路上做大做强,当然为了我稳定的工作,我发自内心也确实想做点什么,总结下来无非就是以下几点:

1)提高核心竞争力

当然,无论你选择自动化还是手工作为自己的核心竞争力,学习是一定不能落下的,学习力强的软件测试员敢大胆地体验尝试新技术,所以他们的技术栈始终在保持不断地更新。

对于软件测试员而言,看文档其实是最快的学习方法,对于自己工作中常用到的技术,抽时间把官方文档都读一遍,其实没有你想象中的那么多,但你一定会有意想不到的收获。

所有的核心竞争的前提都是需要不断学习来造就的,拥抱技术升级,才能使你一直不会被市场淘汰。

2)锻炼一个强健的体魄

做了程序员之后我就很少运动了,新的计划就是一周至少要去健身房2-3次,不求练的跟泰森一样壮,只求能有一个强健的体魄,程序员猝死的新闻比比皆是,在职场杀出血路的前提条件当然是身体健康。

锻炼身体是很必要的,为了预防猝死嘛,开个玩笑。

3)学习更多的技术

多学多看,多敲代码,多实践。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人都有自己独特的才华和潜力,我们应该善于发现和挖掘这些潜能,并将其发挥到极致,为社会做出更大的贡献。

有时候,我们会被现实的压力压得喘不过气来,失去了前进的动力和激情。但请记住,只要我们坚定信念,持续努力,总会有阳光照耀到我们的生活。

人生的旅途不可能一帆风顺,有时候我们需要经历痛苦和挫折,才能真正懂得生活的意义。所以,请保持乐观的心态,勇敢面对一切困难和挑战。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/191947.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++高阶(五)】哈希思想--哈希表哈希桶

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 哈希结构 1. 前言2. unordered系列容器3. 哈希概…

01.vue3大事件——项目初始化、技术介绍

后台数据管理系统 - 项目架构设计 在线演示:https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径: http://big-event-vue-api-t.itheima.net 本项…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑氢储一体化协同的综合能源系统低碳优化》

这个标题涉及到考虑了多个方面的能源系统优化,其中关键的关键词包括"氢储一体化"、"协同"、"综合能源系统"和"低碳优化"。以下是对这些关键词的解读: 氢储一体化: 氢储存: 指的是氢气的存…

网络运维与网络安全 学习笔记2023.11.27

网络运维与网络安全 学习笔记 第二十八天 今日目标 OSPF基本原理、OSPF单区域配置、OSPF多区域配置 特殊区域之Stub、特殊区域之NSSA OSPF基本原理 项目背景 随着企业的发展,网络的规模越来越大,网段的数量越来越多,公司内部的路由器的…

JSP 条件动作标签之choose when otherwise组合标签详解

好 上文JSP 条件动作标签之if标签详解中 我们详细的说了说 if标签 但是 这个if是没有else的 多少对我们的编程习惯没有那么友好 所以 就出现了另外一种语法 由 choose when otherwise组成 和我们java中的switch语句 我们的基本语法就是 外面一个大的choose包裹起来 里面是很多…

VMware上pfsense开源防火墙的下载、安装、简单配置

文章目录 1. pfsense概述1.1. 官方描述1.2. 个人描述 2. pfsense下载2.1. 官网下载 3. pfsense安装3.1. 官网手册3.2. 安装步骤 4. pfsense配置4.1. 默认账号密码4.2. 初始化配置4.3. 切换语言 5. 简单测试5.1. 调整测试网络5.2. 测试结果 6. 虚拟机操作界面讲解7. 最后 1. pfs…

MySQL 高可用架构

MySQL 是实际生产中最常用的数据库,生产环境数据量极为庞大,对性能和安全要求很高,单机的 MySQL 是远远达不到的,所以必须搭建一个主从复制架构,同时可以基于一些工具实现高可用架构,在此基础上&#xff0c…

基于python协同过滤推荐算法的电影推荐与管理系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 电影推荐与管理系统是一个基于Python的协同过滤推荐算法的应用,它可以帮助用户根据他们的兴趣和偏好进行…

2016年五一杯数学建模C题二孩政策问题解题全过程文档及程序

2016年五一杯数学建模 C题 二孩政策问题 原题再现 多年来实施的严、紧计划生育政策对控制人口增长起到关键作用。在优生优育政策的指引下,我国人口质量显著提高,但也带来了不利影响,生育率偏低、男女比例失衡、人口老龄化情况严重等问题。2…

Linux 常用基本命令

文章目录 7.1 帮助命令7.1.1 man 获得帮助信息7.1.2 help 获得shell内置命令的帮助信息7.1.3 常用快捷键 7.2 文件目录类7.2.1 pwd 显示当前工作目录的绝对路径7.2.2 ls 列出目录的内容7.2.3 cd 切换目录7.2.4 mkdir 创建一个新的目录7.2.5 rmdir 删除一个空的目录7.2.6 touch …

【JavaEE】多线程 (2) --线程安全

目录 1. 观察线程不安全 2. 线程安全的概念 3. 线程不安全的原因 4. 解决之前的线程不安全问题 5. synchronized 关键字 - 监视器锁 monitor lock 5.1 synchronized 的特性 5.2 synchronized 使⽤⽰例 1. 观察线程不安全 package thread; public class ThreadDemo19 {p…

ICMPv6报文与邻居状态跟踪

ICMPv6报文 ICMPv6(Internet Control Message Protocol for the IPv6)是IPv6的基础协议之一。 在IPv4中,Internet控制报文协议ICMP(Internet Control Message Protocol)向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息…

计算一个Series序列的n阶滞后相关系数Series.autocorr()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算一个时间序列的 n阶滞后自相关系数 Series.autocorr(n) [太阳]选择题 以下代码的说法中正确的是? import pandas as pd s1 pd.Series([1,2,3,4,5,6]) print("【显示】s1:\n",…

【JAVA学习笔记】71 - JDBC入门

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter25/src/com/yinhai/dao_ 一、JDBC概述 1.基本介绍 1. JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题。 2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动…

opencv-利用DeepLabV3+模型进行图像分割去除输入图像的背景

分离图像中的人物和背景通常需要一些先进的图像分割技术。GrabCut是一种常见的方法,但是对于更复杂的场景,可能需要使用深度学习模型。以下是使用深度学习模型(如人像分割模型)的示例代码: #导入相关的库 import cv2 …

VMware上面安装部署centos7镜像系统【详细含镜像】

VMware上面安装部署centos7镜像系统【详细含镜像】 废话不多说直接开始 下载centos7镜像 网上有好多,但是我相信来看小编文章的基本上应该都有centos7的镜像了吧,毕竟咱们都是同一类人,哈哈不卖关子了,小编直接给大家一个百度云盘…

OpenCV项目开发实战--基本图像分割图生成器

欢迎回到我们有关 OpenCV 的系列文章以及我们如何利用其强大的图像预处理功能。在我们之前的文章的基础上,今天我们向您展示如何创建基本的图像分割图生成器。 具体来说,我们的图像掩模应该帮助识别每个像素是否: 背景的一部分(指定值为0)在感兴趣的对象的边缘(指定值 …

答题活动小程序竞品分析

答题小程序竞品分析 答题活动小程序竞品分析 知识竞赛小程序竞品分析 ~ 从2020年开始,机缘巧合,我开始涉及答题小程序的开发,从最初的刷题场景到答题活动场景,已经走过了三个年头,这期间我开发的答题小程序产品也逐…

laravel8中常用路由使用(笔记四)

目录 1、框架路由目录统一放该目录 2、基本路由,路由都调用Route方法 3、控制器使用路由 4、路由参数 5、路由组 6、命名路由 7、命令查看当前路由列表 8、路由缓存 在Laravel 8中,路由定义了应用程序中接受请求的方式。它们定义了URL和相应的控制器方法之间的…

ros2智能小车中STM32地盘需要用到PWM的模块

我做的地盘比较简单,使用了一下模块: 4个直流减速电机,(每个模块用到了一个PWM)---这会通过L298N的ENA,ENB来实现控制 光电对射测速模块(不用PWM) 超声波测距模块(不用PWM,只需要…