测试,写用例!真有必要?

news2024/11/16 0:29:52

今天的文章是想跟所有小伙伴讨论软件测试工作中必不可少的一项工作:写测试用例,但目前还有很多公司并不重视写测试用例,觉得写测试用例是浪费时间,还不如拿这些时间来执行测试,那我们真的有必要写测试用例么?

记得刚从事软件测试的第一份工作,是在一家做生物识别技术的公司,当时测试的主要是考勤机系统,那时工作内容就是每天跟着固定的用例进行测试不同的机型,如果按照测试用例严格的准备来说不能称之为用例,它就是一条条功能,测试完成之后就在后面打上√,我们都是以相同的用例去测试每一款机型,所以根本不用写用例,那时刚入行对用例也没有概念,可以说是不知道什么是测试用例。

后来换到一家外包公司,外包到华为做软件测试,刚做的第一个项目就是测试web平台的教学软件,因为华为的测试流程的不同,测试之前需要写测试用例,而且是写那种超级复杂、超级详细的用例,例如这样:

操作步骤:
1.依次点击菜单栏个人中心-》我的信息
2.选中昵称,点击“修改”
3.点击昵称输入框
4.输入昵称,“王豆豆”
5.点击“确定”

以上只是操作步骤,就要按照实际操作的步骤一步一步地写清楚,写完善,不仅是用例写得很详细,用例的测试点也需要写得很详细,修改昵称为5个中文,4个中文,1个中文、英文字符、特殊字符…………就这样一个项目的用例也可以写上好多天,那时创下了我写用例的最高记录,每天能写三百多条用例,每天写用例都能写出内伤来,可以如果快速写测试用例也是开始锻炼出来的。

后来换到另一个项目,这个项目就不要求写用例,每天拿到提交的功能就不管三七二十一开始测试,执行测试的动作完全就是行云流水,不受束缚,思维也如脱缰的野马不受控制,最终三下五去二的搞定。

再后来、再后来做了一个有一个的项目,有很庞大的也有很小的,有复杂的也很简单的,踩过无数坑之后,慢慢地王豆豆都始终养成了一种习惯,无论多小的功能都在把测试点梳理一下,测试场景写一下,这些就变成了王豆豆现在的测试用例。

所以,软件测试人员真的有必要写测试用例么?

毋庸置疑,王豆豆的答案是:非常有必要。

在写测试用例的过程中,不仅是对测试点的梳理,同时也是对测试思维的梳理。通过写用例能够将一些边边角角的测试点记录下来,对一些难以理解的需求通过用例使用单元维度进行拆分后变得很详细,测试思维也更立体。

总结起来,写测试用例有二个好处:

1、避免漏测

我们肯定都遇到过这样一种情况,有时你在做某事的时候,突然想起来一件事来,但没过几分钟你就又忘记了,后面你总是觉得好像要做什么,但就是想不起来是什么,这时最好的解决方法就是写下来,把当时的想法记下来,这种习惯特别是对工作特别有效。众所周知我们大脑脑容量无限,但能使用到的仅仅只有那么一点,在测试过程中若是没有一个依据,完全根据脑中想起来哪就测哪,百分之百会有漏测。

项目上线之后,一旦发生漏测,影响都是巨大的,无论这发现的线上bug是多小,对一个软件测试人员来说,都是相同的重要,虽然我们无法做到绝对,但我们需要尽量去避免出现漏测。

故:
在测试之前,根据理解到的需求编写测试用例,进行用例评审。
在测试之中,根据实际的测试情况记录测试结果、测试数据等,同时思维的扩大,也能增加新的场景。
在测试之后,回溯测试用例,检查场景是否全覆盖。

写用例最大的好处就是这个,这也是我们为什么一定要写的原因,主要就是为了避免漏测。

2、常用常更新

大多数小伙伴做的项目都是在原来的版本上进行修改,故有很多功能或主要流程都要反复的回归。针对这样的功能,写一份固定的测试用例,在测试时,拿这份测试用例出来用就行,不用在反复写,浪费时间。编写测试用例,不仅是尽可能地避免漏测,同时也为了后面方便查阅。

项目上线之后,并不一定会立马就出现问题,有可能是运行一段时间之后才会出现,这时若出现线上bug,我们首先要立马解决线上bug,同时也要分析为什么测试过程中没有测试到,是场景没有覆盖到?还是测试环境数据不够或条件不足引起的?

要分析出原因来,就需要了解当时的测试情况,若当时没有记录,仅凭脑想,估计很难想出当时的测试全过程,若是有了测试用例,根据测试用例的执行测试轨迹,有很大可能找出当时为什么没有测试出来的原因。

分析为什么会出现的原因,有时并不是为了定责,而是为了下次相同的情况不在发生。

综上所述,

建议所有小伙伴都不要因为很小的测试需求就放弃了编写测试用例,这样的测试用例不需要是正式的长篇大论,可以是在XMIND上列出的几点测试场景+需求,也可以是在本子上画出来的流程图,梳理出来的用例,形式不限,但不能没有。

特别是对于年纪越来越大的小伙伴(主要是指王豆豆本人),万事做好记录,真的非常重要。

想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!

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

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

相关文章

算法与数据结构-递归

文章目录 什么是递归递归需要满足的三个条件递归可能存在的问题堆栈溢出重复计算 总结 什么是递归 递归是一种直接或者间接调用自身函数或者方法的算法(或者编程技巧),应用非常广泛。我们举个例子来说明什么是递归: 推荐注册返佣金…

join的作用【A中调用B.join表示 B先完成后A再继续】【b.join 表示b先完成】

★ 2.5 等待一个线程-join() ★★★A中调用B.join表示 B先完成后A再继续 有时,我们需要等待一个线程完成它的工作后,才能进行自己的下一步工作。例如,张三只有等李四转账成功,才决定是否存钱,这时我们需要一个方法明确…

maya粒子碰撞(碰撞几何体索引)

全部下滑了 nParticleShape1.rgbPP<<1,0,0>>; 碰撞层 int $yase nParticleShape1.collisionGeometryIndex; if ($yase 0 ) nParticleShape1.rgbPP<<0,1,0>>; int $yase nParticleShape1.collisionGeometryIndex; if ($yase 0 ) nParticleShape1.…

【Linux】网络基础和网络套接字的概念

文章目录 前言一、网络的发展及其网络中的概念总结 一、网络的发展及其网络中的概念 刚开始的计算机大多处于独立模式&#xff0c;也就是说计算机之间相互独立。等到网络出现的时候就出现了网络互联&#xff0c;多台计算机连接在一起完成数据共享。随着发展计算机越多越多就出…

选购云主机

目录 一、购买云主机 二、SSH连接云主机 三、在云主机上面开放端口 一、购买云主机 云服务商有很多&#xff0c;但是我推荐大家使用腾讯云。之前我讲过阿里云超卖的事情&#xff0c;云主机IO性能非常差劲&#xff0c;我们要在云主机上面安装MySQL、MongoDB这样的数据库&…

TortoiseGit 入门指南01:环境搭建和软件设置

在我的博文Keil MDK环境下Git入门指南的最后&#xff0c;我这样写道&#xff1a; 目前使用 TortoiseGit 管理工程&#xff0c;用 Gitee 作为远程仓库。 命令行 Git 已经不再使用。 当时我并没有介绍软件 TortoiseGit 的使用方法&#xff0c;这个系列补上。如果你还没有看过《Ke…

Linux开发工具【gcc/g++】

Linux开发工具之【gcc/g】 上文我们已经学习了vim编辑器的相关操作和使用&#xff0c;已经可以在Linux下编写代码了&#xff0c;有了代码就需要编译运行&#xff0c;此时就需要用到Linux中的编译工具gcc/g了&#xff0c;其中gcc是C语言的编译器&#xff0c;g是C的编译器&#…

RabbitMQ系列(29)--RabbitMQ搭建Shovel

前言&#xff1a; Federation具备的数据转发功能类似&#xff0c;Shovel能够可靠、持续地从一个Broker中的队列(作为源端&#xff0c;即source)拉取数据并转发至另一个Broker中的交换器(作为目的端&#xff0c;即destination)。作为源端的队列和作为目的端的交换器可以同时位于…

SGM58031与单片机驱动实现

SGM58031与单片机驱动实现 文章目录 SGM58031与单片机驱动实现CUBEIDE设置I2C通讯封装SGM58031通讯实现 CUBEIDE设置 使用硬件I2C与sgm芯片通讯&#xff0c;上面即配置硬件I2C,其他参数默认即可。 I2C通讯封装 封装实现 /*** brief Manages error callback by re-initializ…

【JVM调优】JVM调优工具之Arthas

Arthas的作用 Arthas是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#x…

【Elasticsearch】索引库操作

目录 2.索引库操作 2.1.mapping映射属性 2.2.索引库的CRUD 2.2.1.创建索引库和映射 基本语法&#xff1a; 示例&#xff1a; 2.2.2.查询索引库 2.2.3.修改索引库 2.2.4.删除索引库 2.2.5.总结 2.索引库操作 索引库就类似数据库表&#xff0c;mapping映射就类似表的…

[神经网络]Anchor_Free网络(YoloX,CenterNet)

Anchor_Free网络不同于传统的目标检测网络需要先生成很多先验框再从中筛选回归生成预测框。其可以直接从目标的中心点向周围发散一个预测框。这样做有两个好处&#xff1a;①省略了生成大量先验框的过程&#xff0c;可以一定程度增加预测速度&#xff1b;②预测框没有预设长宽比…

魅族新专利:弹开机构及折叠终端,提高便捷性、降低使用难度

珠海市魅族科技有限公司透露新专利&#xff1a;弹开机构及折叠终端&#xff0c;提高展开便捷性、降低使用难度&#xff01; 该专利介绍了一种用于电子设备的弹开机构和折叠终端。该弹开机构由磁吸组和弹开模组组成。磁吸组包括第一磁吸件和第二磁吸件&#xff0c;其中第一磁吸件…

SpringBoot 如何使用 TestRestTemplate 进行 RESTful API 集成测试

SpringBoot 如何使用 TestRestTemplate 进行 RESTful API 集成测试 在使用 SpringBoot 开发 RESTful API 的过程中&#xff0c;我们需要进行集成测试&#xff0c;以确保 API 的正确性和可用性。而 TestRestTemplate 是 Spring Framework 提供的一个工具类&#xff0c;可以用来…

Flink实时任务性能调优

前言 通常我们在开发完Flink任务提交运行后&#xff0c;需要对任务的参数进行一些调整&#xff0c;通常需要调整的情况是任务消费速度跟不上数据写入速度&#xff0c;从而导致实时任务出现反压、内存GC频繁&#xff08;FullGC&#xff09;频繁、内存溢出导致TaskManager被Kill…

【笔记】数字电路基础1 - 门电路

目录 数字电路基础与门电路数电基础基本门电路复合门电路TTL 门电路CMOS 门电路 数字电路基础与门电路 数电基础 数字电路中常将 0 &#xff5e; 1V 范围的电压称为低电平&#xff0c;用“0”表示&#xff1b;而将 3 &#xff5e; 5V 范围的电压称为高电平&#xff0c;用“1”…

【InnoDB 存储引擎】InnoDB 存储引擎的行格式,有 Compact、Redundant、Dynamic 等行格式还有它们配套实验(理论篇)

文章目录 1 InnoDB 行记录格式&#xff08;理论&#xff09;1.1 Redundant 行记录格式1.2 Compact 行记录格式&#xff08;重点&#xff09;1.3 行溢出数据1.4 Compressed 和 Dynamic 行记录格式1.5 CHAR 的行结构存储 2 参考资料 1 InnoDB 行记录格式&#xff08;理论&#xf…

什么是数据一致性

什么是数据一致性 数据一致性这个单词在平常开发中&#xff0c;或者各种文章中都能经常看见&#xff0c;我们常常听见什么东西数据不一致了&#xff0c;造成了一定的损失&#xff0c;赶快修复一下。但是很多同学对一致性具体代表什么意思&#xff0c;他有什么作用依然不是很了解…

车载软件架构 —— 闲聊几句AUTOSAR OS(八)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…