软件测试的真正目的是什么?该澄清下误解了

news2024/10/23 7:24:35

对测试工作目的的认识误区

在IT行业,其实一直对软件测试,测试这个工作的目的,一直有着不太准确的认识。

各种说法都有,比较流行,被很多IT工作甚至测试从业者认可的有下面两种:

  • 测试是为了发现Bug

大家一般概念中通常都会把做测试和找Bug等同起来,也就是说软件测试的目的是为了发现产品中的问题。

  • 测试是为了验证产品满足需求

也有从测试执行的角度来说,测试工作是为了证明软件产品是符合产品需求定义,是为了验证需求是否实现的。

那这些说法对不对呢? 可以说对,也可以说不对

确实,测试工作的主要产出就是我们发现的各种产品bug,而要验证需求则是我们测试工作的主要输入和评估标准。

但这些就是我们要进行测试工作的目的吗?

单纯把测试工作的目的从上面几点来看就狭隘了。

测试是为了找Bug吗?

我们做测试工作是为了发现bug吗?

bug对于产品来说,意味着成本,bug本身对产品来说是不会产生价值的。被解决掉的Bug才会带来产品质量的提升,进而体现到产品的价值中去。bug的减少,对产品才有价值。

所以,单纯地把发现更多bug作为测试工作目的是一个误区,这也是很多团队错误地把发现bug的数量作为测试工作成效依据的主要原因。如果bug发现得越多代表测试工作越好,测试人员是不是就不应该再早期阶段去参与?因为在前期就规避掉的问题其实会导致到测试阶段bug变少,如果测试工作是希望发现更多bug,是不是就应该希望产品提测的时候包含更多bug呢? 这个导向显然是不符合产品利益的。

因此把发现bug作为测试工作的目的是一个常见的,明显的对测试工作的认识误区

测试就是为了验证需求吗?

第二个对测试工作目的的认识误区,就是认为测试工作就是为了验证产品的需求。这其实是另一个被广泛接受的错误认识。甚至我们当今流传广泛的很多软件工程实践,都是建立在这个错误认识之上的。

测试大牛James Bach有篇著名的论文,探讨了Testing跟Checking的区别。

也就是测试工作远远不止是checking。而验证需求,这样的checking只是测试工作的一部分。测试要深入产品、发现潜在的深层问题,还需要除了checking之外的更多其他能力支撑,包括探索、试验、设问、推理等等

在这里插入图片描述

所以,把验证需求,当作测试工作的目的,是不够的。像工厂质检那样依据严格的规程来确定产品是否合格,和软件产品这种偏创造性的行业也并不匹配。这也是我们说自动化测试更多是为了提升执行效率和快速得到已覆盖场景的验证结果反馈,但自动化测试本身并不能达到完成产品测试的目的。

测试除了验证需求中明确的功能外,还需要针对交付产品进行更深度的探索,才更可能充分发现产品中的质量问题。这也是近年探索式测试被更多提及的主要缘由。

软件测试工作的真正目的

好,那既然测试工作的目的既不是为了找Bug,也不是为了验证需求,那目的究竟是什么呢?

软件测试的真正目的: 准确及时评估出被测对象的质量状态

这里的核心是评估质量状态。质量是产品属性,只能通过产品本身的变更来调整,所以测试工作无法提高质量,也无法保证质量。但通过测试工作,我们可以通过暴露产品中的问题,反映出产品的质量状态。我们的主要作用是对当前产品的质量进行评估。再由产品或项目针对这个状态来对质量进行改进。

所以测试工作对于质量的贡献更多体现在这个评估出的质量状态是否及时和准确两方面。

准确评估

测试无法穷尽,在有限的时间内发现产品的所有问题也是不可能的。但测试的职责是需要在有限的时间内,尽可能多地将影响产品质量的问题暴露出来。这里除了数量外,我们还要看问题的影响,综合这两点,才是更准确地反映质量。

及时评估

产品是无法进行无限测试的,而且测试工作其实本身是成本支出。所以通过测试工作得出产品质量状态的时效对于产品的质量改进和成本控制也尤为关键。问题发现得越早,修复成本就越低;得出质量状态评估的时间越短,产品进行针对性改进的空间就越大。所以测试工作的目的,还包括提高测试效率,通过自动化、测试左移等手段来尽可能及时地完成产品质量评估。

所以这才是我们进行软件测试工作的真正目的,不是为了发现更多的bug,也不是仅仅是对需求实现的检查,而是通过我们的专业能力,在有限的时间内,及时、充分地反映出当前产品实际的质量状态。


以上就是关于软件测试工作目的 的分享,我是城下秋草。 秋草观测台,观察测试业

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

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

相关文章

音乐专辑管理系统测试报告

一、项目背景 音乐市场规模逐年扩大,音乐专辑管理系统是一款以音乐专辑为核心,为音乐产业上下游企业提供一个高效的音乐专辑管理工具,以便更好地管理音乐专辑,采用前后端分离的方法来实现,使用了数据库来存储相关的数…

Mac 电脑安装redis

1、首先检查电脑是否安装 brew 命令: #打开Mac自带的终端,输入下面命令 brew --version如下图,可以看到我的 brew 正常的,且对应版本是4.0.17-63-g32f2258 如果你的电脑执行上面命名报错:zsh: command not found: br…

海康硬盘录像机NVR与国标GB28181协议国标视频云服务平台LiteGBS的衔接

随着互联网技术的不断进步和智能终端设备的普及,流媒体视频平台逐渐成为数字化时代的重要产物,并在人们的日常生活中占据越来越重要的地位。所以经常碰到用户咨询我们,研发的视频平台能否支持海康的硬盘录像机接入,由于对现场没有…

AniVu 2.0 | 多功能RSS订阅与下载神器

AniVu是一个集RSS订阅与更新、比特洪流下载、视频播放为一体的工具。使用MVI架构,完全采用Material You设计风格。主要功能包括:订阅RSS、更新RSS、阅读RSS,自动更新RSS订阅,下载RSS文章中的BT种子或磁力链接附件,已下…

yolov5训练数据集

1.训练数据集 python train.py --batch-size 2 --epochs 150 --data dataset/leaf/data.yaml --weights .\weight\yolov5n6.pt训练数据集 python train.py:这是执行训练脚本的命令,其中 train.py 是 YOLOv5 模型训练脚本的名字。这个脚本位于 YOLOv5 项…

基于SpringBoot的打印店管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

『网络游戏』服务器使用PESorket【13】

下载PESorcket插件 下载网址:GitHub - PlaneZhong/PESocket: A C# Network Library. 打开PESorket的Example案例 右键PESocket 选择一个自定义的文件夹 点击生成 .dll文件生成成功 接下来新建VS工程使用PESocket 路径选择刚刚创建的Server文件夹 展示文件夹位置 删除掉Exampl…

【银行科技岗】相关考试知识点总结及部分考题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、**网络与安全**二、**软件开发与设计**三、**数据库与数据管理**四、**编程与系统**五、**计算机硬件与性能**六、**大数据与人工智能**七、**系统与应用**相关…

Matlab实现粒子群优化算法优化随机森林算法模型 (PSO-RF)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 粒子群优化算法(PSO)是一种启发式搜索方法,灵感来源于鸟类群体觅食的行为。在PSO中,每个解都是搜索空间中的一个“粒子”,这些粒子以一定的速度飞行&am…

3分钟解决Ubuntu22.04没有声音输出设备

问题背景 Ubuntu22.04在看视频时无法播放声音,设置中发现没有声音输出设备。 解决方法 编辑 alsa 配置文件。 # 编辑alsa 配置文件 sudo vim /etc/modprobe.d/alsa-base.conf# alsa-base.conf文件末尾添加下行内容 options snd-hda-intel dmic_detect0重启&…

华为 HCIP-Datacom H12-821 题库 (37)

🐣博客最下方微信公众号回复题库,领取题库和教学资源 🐤诚挚欢迎IT交流有兴趣的公众号回复交流群 🦘公众号会持续更新网络小知识😼 1.如图所示,R1 输出信息如下,则R1 邻居路由器的Router ID 为( ) 答案&…

HAL+M4学习记录_6

一、中断和事件 记录学习中断和事件的学习 1.1 NVIC(嵌套矢量中断控制器) NVIC管理着所有中断,包括核心异常。中断分为内部中断(也称异常)和外部中断,根据core_cm4.h文件,NVIC寄存器映射如下 …

C++ | set / map(详解)

前言 本篇博客讲解c中stl的set/map,本篇讲的如何使用 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见&#x1f…

R语言绘制Venn图(文氏图、温氏图、维恩图、范氏图、韦恩图)

Venn图,又称文氏图,标题中其他名字也是它的别称,由封闭圆形组成,代表不同集合。圆形重叠部分表示集合交集,非重叠处为独有元素。在生物学、统计学等领域广泛应用,可展示不同数据集相似性与差异,…

【hot100-java】LRU 缓存

链表篇 灵神题解 class LRUCache {private static class Node{int key,value;Node prev,next;Node (int k,int v){keyk;valuev;}}private final int capacity;//哨兵节点private final Node dummynew Node(0,0);private final Map<Integer,Node> keyToNode new HashMap&l…

【机器学习】并行计算(parallel computation)Part1

为什么我们在机器学习中需要用到并行计算呢&#xff0c;因为现在最流行的机器学习算法都是神经网络&#xff0c;神经网络模型的计算量、参数量都很大&#xff0c;比如ResNet-50参数量为25M。而我们在训练的时候使用的数据集也很大&#xff0c;比如ImageNet数据集含有14M张图片。…

【C++笔记】引用、inline关键字和nullptr

前言 各位读者朋友们大家好&#xff0c;上期我们讲了C的部分基础语法&#xff0c;这期我们继续对C语法进行深入的学习。 目录 前言一. 引用1. 引用的概念及定义2. 引用的特性3. 引用的使用4. const引用5. 指针和引用的关系 二. inline三. nullptr 一. 引用 1. 引用的概念及定…

ubuntu登录root用户相关配置与注意事项

在ubuntu系统中&#xff0c;部分文件的访问与操作需要在root权限的认证加持下才能顺利进行&#xff0c;以下对如何登录root权限用户进行记录。 学习目标&#xff1a;随心所欲地切换普通权限用户与root用户 首先&#xff1a;在Ubuntu系统中&#xff0c;出于安全考虑&#xff0c;…

项目验收 | 星云股份携手盘古信息加“数”前行,数字智慧提升生产效率

在位于福州市的现代化智能制造工厂内&#xff0c;一排排先进的储能变流器&#xff08;PCS&#xff09;和充电桩正在紧锣密鼓地生产中&#xff0c;从电池研发、工程应用的系列测试及自动化装备&#xff0c;再到应用于电动汽车、储能新基建的储能变流器及充电桩等&#xff0c;福建…