2023年软件测试的发展如何?

news2025/7/4 23:12:24

近些年,自动化测试在很多软件公司已经成为一种必备的测试方式。即使那些还没运用自动化测试手段的公司,也正开始着手筹划了。每年,我们从举办的各种测试论坛和峰会上可以发现,自动化测试和敏捷测试必定是会议的主角。

再看看最具有代表的招聘市场,自动化测试的招聘数量激增,只要能写点儿代码的测试人员薪资也必定水涨船高。相比之下,手工测试则显得黯然失色。

今天,我们就来好好聊聊关于手工测试的未来,希望可以让更多测试新手们,在一入门的时候,就能看到自己即将进入的职场环境,找到自己未来的职业出路。

01纯手功测试从业者的未来

今天,如果是一个纯手工测试工程师,其黄金生命期也就是工作开始的5年左右,如果这期间没有更多的技术进步,那么其基本上也就到了职业的终点,这种状态与十几年前的手工测试的职业环境完全不一样了。

而从手工测试领域的技术发展看,除了十几年前提出的那些测试方法,已经很少有人在这个领域做深度研究,更别提推动行业变化的新的领域创新。

其实,这些还不是最坏的情况,更加令人沮丧,甚至担忧的是,当下即使专门做手工测试的测试工程师,其规划手工测试方案和测试分析能力也因为手工测试的不被重视,比起十几年前的测试人也差了很多,整个手工测试行业真的是令人担忧。

听了上面说了这么多关于手工测试的负面问题,那是否意味着,手工测试真就没有未来了?是否手工测试这个岗位真会消失呢?

我是一个直来直去的技术人,不兜圈子,直接给出我的答案:“NO!NO!!NO!!!”重要的事情讲三遍哦!!!为了说清楚这个问题,我们先从自动化测试的发起开始说。

02为什么说手动测试存在的意义很重要

自动化测试的出现就是帮助测试工程师完成重复性的工作,直到今天它依然承担着这个责任。那么,在什么情况下是一定需要手工测试参与的呢?我给出了四个理由说明手工测试是无可取代的。

理由一:某些测试场景只适合手工来进行测试

借助Markus Gartner——《ATDD by Example》的作者曾经写过的一段话,我们来深度解析一下自动化测试和手工测试存在的意义:“While automated tests focus on codifying knowledge wehave today, exploratory testing helps us discover and understand stuff we might need tomorrow.”

通过Markus Gartner的精辟阐述,我们可以得知,某些特殊的测试场景只能通过手工测试实施。

换句话说,也就是说即便自动化测试大面积普及,自动化测试也有其存在的意义和必要性,举几个简单的例子。

例如:有些End User的测试,其场景是感性的,无法被量化;以及可用性测试,有些需要依赖于专业的业务经验和发散的思维方式;还有探索性测试,而有些则需要非常随意使用,并不依赖于测试人员的技术能力和专业知识;再比如Ad-hoc测试,以上测试都直接来源于用户或者测试人员的自由思想,非自动化测试可以替代。

理由二:人所具有的创造性、分析能力、行业及专业经验是机器无法取代的

人和机器最大的区别就在于,人具有创造性而机器不具备。我们可以借助以下几个层次,来说明这个问题:

(1)第一层:自动化测试无法捕获人所能发现的问题。手工测试是基于人对于事物的理解、分析和观察,通过测试人员的理解和分析最后达到捕获问题的目的。到目前为止,自动化测试还只是做重复性的工作,即使利用AI技术,基于大量的客户行为分析,暂时还无法完成完整的测试目标。或许我们可以期待未来的AI技术……

(2)第二层:手工测试工程师具有终端用户的视角。真实的测试现在仍然是手工测试工程师完成的,他们能站在真实的终端客户的视角发现系统的缺陷,他们能了解客户想要什么、客户的喜好、流行的操作手法和技术实现,站在End User的角度去理解系统所提供的功能是否能满足客户要求。

(3)第三层:测试过程中最核心的“测试分析”必须由资深测试工程师来完成。整个测试过程中,最核心的部分就是测试分析。测试分析的好坏直接关系到产品最终的交付结果。目前看来,测试分析还必须有测试工程师来完成,而好的完整的分析,经常是有专门资深的测试分析工程师来完成,我们的自动化测试暂时还没有能力完成这项任务。

理由三:自动化技术的局限性导致自动化无法执行所有的测试工作

目前,自动化测试技术在动态元素识别、APP之间切换、媒体内容检查等很多特殊场景下,均存在还未破解的技术壁垒。我们目前还没有能力对这些特殊的情况进行自动化执行,因此,只能依赖手工测试工程师实施。

理由四:对于小型的一次性交付项目,自动化成本过于高,不实用。

实施自动化并非是一件容易的事情,成本很高的,收益慢,尤其在初期,业界在这方面有过很多的研究。研究表明自动化测试成本随着时间会逐步降低,而手工测试成本会随着功能逐步增加而逐步变高。

一般情况下,在项目初期,自动化测试成本远高于手工测试,而随着自动化架构的建设完成,被测功能逐步增加,自动化测试成本会逐步低于手工测试成本。

因此,什么样的项目以及在什么情况下采用自动化是一个智慧,基于成本考虑,通常项目周期在一年以内,交付频率不高的项目不建议实施自动化测试。

而在测试领域里,手工也好,自动化也罢,都是因为不同的原因和时机而产生的,没有哪一种测试是可以被忽视的,也没有哪一种测试方法是高人一等的,只是它们的侧重点不同,即所谓“上帝的归上帝,凯撒的归凯撒”。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IPV6地址详解

♥️作者:小刘在C站 ♥️每天分享课堂笔记,一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放。 目录 一.为什么要使用IPv6 二. ipv4 三. ipv6 地址, 四 ipv6与 ipv4 地址相比 1.v4…

MySQL数据库 -- 表的增删查改

今天来讲MySQL数据库的表增删查改操作。今天主要是通过栗子来演示语法使用的,话不多说,直奔主题~ 表的增删查改: CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 目录 Cre…

你适合做自动化测试吗?

上一篇对于自动化测试有了基础了解,这一篇我们来看看你适合做自动化测试吗? 你适合走自动化测试这条路吗? 不管是UI自动化还是接口自动化,肯定的一点是,必须有代码基础,不管是java还是python。所以如果你…

Docker 安装Oracle 11g免费版—无坑小白白版(值得拥有)

​ Docker 安装Oracle 11g免费版—无坑小白白版(值得拥有) 第一步:登录自己的服务器(root用户/或授权用户) 第二步:下载 1、下载镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_…

基于概率距离削减法、蒙特卡洛削减法的风光场景不确定性削减附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

MySQL数据库期末考试试题及参考答案(01)

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 一、 填空题 ___在20世纪80年代被美国国家标准学会和国际标准化组织定义为关系型数据库语言的标准。数据模型所描述的内容包括3个部分,分别是数据结构、数据操作…

[论文阅读] Generative Adversarial Networks for Video-to-Video Domain Adaptation

[论文地址] [代码] [AAAI 20] Abstract 来自多中心的内窥镜视频通常有不同的成像条件,如颜色和光照,这使得在一个领域训练的模型通常不能很好地推广到另一个领域。领域适应是解决这一问题的潜在方案之一。然而,现有的工作很少关注基于视频的…

数据结构与算法简介

什么是数据结构 数据结构的研究对象 研究一组有特定关系的数据的存储与处理通过抽象的方法 数据结构的研究内容 数据之间的逻辑关系:存储实现(如何存储某种逻辑关系) 集合结构:数据元素放在一起,但是元素间没有关系…

Python-Flask 蓝图以及钩子函数(5)

Flask 蓝图一、初识蓝图的页面结构二、创建蓝图的步骤三、钩子函数官方解释:Blueprint 是一种组织一组相关视图及其他代码的方式。与把视图及其他 代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中 把蓝图注册到应…

Git 用法指导

1. 安装 Git 1. linux 安装 Git # 试着输入git,看看系统有没有安装Git: $ git The program git is currently not installed. You can install it by typing: sudo apt-get install git# 安装命令 sudo apt-get install git 如果是其他Linux版本&#…

Vue | Vue.js 高级语法系列

🖥️ Vue.js专栏:Vue.js 高级语法系列 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ 👉…

都说测试行业饱和了,为什么我们公司给初级测试开到了12K?

故事起因: 最近我有个刚毕业的学生问我说:我感觉现在测试行业已经饱和了,也不是说饱和了,是初级的测试根本就没有公司要,哪怕你不要工资也没公司要你,测试刚学出来,没有任何的项目经验和工作经验…

字符串c++练习(KMP等)

反转字符串 文章目录反转字符串反转字符串||替换空格翻转字符串里的单词左旋转字符串找出字符串中第一个匹配项的下标【模板】KMP字符串匹配题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示样例 1 解释数据规模与约定重复的字符串[BOI2009]Radio Transmission 无线…

【Linux】Linux中的环境变量及其意义

目录 一、环境变量的概念 1、让自己写的可执行程序无需路径即可执行的方法 1.1将可执行程序拷贝至/usr/bin/目录下 1.2将test的绝对路径添加至PATH中 二、环境变量相关的命令 三、getenv()(获取环境变量) 四、main函数命令行参数的解析及意义 1、…

如何基于TS在React中使用Redux Toolkit

什么是Redux Redux 是 JavaScript 应用程序的状态容器,提供可预测的状态管理.可以帮助你开发出行为稳定可预测的、运行于不同的环境(客户端、服务器、原生应用)、易于测试的应用程序。不仅于此,它还提供超爽的开发体验&#xff0…

【Pytorch with fastai】第 3 章 :数据伦理

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

CentOS7安装MySQL(亲测版)

1 Yum Repository下载安装包文件 [rootlocalhost home]# wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm2 使用yum安装mysql yum install mysql-server执行后报错,官方5.7版本默认没有GPG key, 需要在上述命令上 添加 --nogpgcheck …

图解计算机内部的高速公路 —— 总线系统

本文已收录到 GitHub AndroidFamily,有 Android 进阶知识体系,欢迎 Star。技术和职场问题,请关注公众号 [彭旭锐] 进 Android 面试交流群。 前言 大家好,我是小彭。 在之前的文章中,我们聊到了计算机的冯诺依曼计算…

2022-09-17青少年软件编程(C语言)等级考试试卷(五级)解析

​​​​​​T1. 城堡问题 【题目描述】 图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成mn(m≤50,n≤50)个方块,每个方块可以有0~4面墙。 【输入】 程序从标准输入设备读入数据。第1、2行每行1个整数,分别是南北向、东西…

MySQL数据库基础

文章目录一. 数据库的操作二. 数据库中常用的数据类型三.表的操作四. 总结一. 数据库的操作 1. 创建数据库 创建语法1 crate database [这里填入表名称]; 说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8&#xf…