每一个软件测试工程师都有要牢记的误区

news2025/2/26 2:23:54

     最近跟一些刚刚进入软件测试行业的朋友去交流,发现了一个有趣的现象,就是对于这个行业的很多问题的认识都是一致的片面,当然也可以理解为误区。自己利用一点时间,把他们对于这个行业的认识误区都罗列出来,然后结合自己这么多年的工作经验和大家一同交流一下,毕竟自己也是从这个阶段走过来的,后来者能少走些弯路是最好的。

自己整理了软件测试人员最容易陷入的28个误区,文章后面附带思维导图。

1、测试和开发永远都是死对头

虽然测试与开发的工作性质是对立的,但是目的都是为了项目更好的发展。

我以前发起过一个倡议:我们讨论的时候不要用他们(开发人员)和我们(测试人员),而是统一用咱们,因为开发人员和测试人员本来就是一起的。如果测试人员能与开发人员成为朋友,你会发现,工作会非常顺心,在我所在的企业中,测试人员和开发人员关系非常融洽,互相尊重,对大家的工作能力和技术表示肯定。

其中的诀窍重点在于测试这边的沟通,谁也接受不了别人指责自己得意之作,所以测试要以帮助开发让开发的‘孩子’更健康,让开发‘带孩子’别那么辛苦;

测试是系统它爹,开发是系统它妈,当妈的那么痛苦的生出来,当爹的要揍,当妈的能同意么,脾气上来了,当爹你就缓一下,哄哄,当妈的也不是傻子,她也知道对错的,当妈的要实在糊涂,那你还犹豫什么,抽她(哈哈,开个玩笑,还是要以理服人)。

2、测试人员不需要了解软件开发知识

测试人员跟开发人员交流不畅,主要是有以下几个原因:

(1)测试人员如果看不懂开发代码,会导致BUG描述不清晰,不准确,开发人员不明白BUG应该怎么重现,或者你想说的是什么,甚至是一些很肤浅的bug,却被测试人员认为是非常严重的问题。

(2)测试人员的开发知识匮乏,将不是BUG的BUG提交给开发人员,或者提出的建议性意见在开发中实现起来比较困难,又无法给出一个合理的解决办法(开发人员易于实现的办法)。

(3)测试出BUG的同时,无法清晰准确地定位BUG出现的源头,导致与开发人员交涉次数过于频繁,时间是宝贵的,缺乏交流有害,交流过多也容易出问题。

所以,测试人员对开发知识的了解是必须的。

(4)如果不了解开发知识,测试人员很容易被开发人员牵着鼻子走,对于一些BUG的PK,经常是理屈词穷,因为开发人员随便一忽悠,你如果不了解个中奥妙,你一个字也说不上来。

(5)自动化测试和性能测试包括项目管理,都会要求对软件开发有深入的理解,如何能设计一个好的自动化框架,好的性能测试用例,如何管理一个开发团队,这都需要我们在软件开发方面有所掌握。

所以,测试了解软件开发知识是必须的。

3、软件测试很简单

软件测试入门相对比开发人员确实更容易一些,原因是开发一开始就要掌握一门语言,而测试到中后期才需要掌握开发语言技术,测试更重视的是测试思路,方法,以及测试工具的掌握。但是到了中后期,软件测试需要掌握的知识量将远大于开发人员,测试后期要掌握功能,性能,自动化,接口,协议,抓包,安全性,包括移动端等一系列测试工具,技术难度性丝毫不亚于开发技术。

4、测试就是为了找到bug

测试人员不仅需要找到bug,还要跟踪bug直至问题得以被修复,对缺陷进行确认测试并关闭缺陷,测试员还需要分析问题原因,避免因此问题影响到其他功能。

不仅如此,测试还需要对软件进行性能测试、自动化测试和安全性测试等一系列其他测试手段,目的是找出系统漏洞,找出性能瓶颈,服务器抗压能力及稳定性。这已经远远超过找bug的范畴。

5、自动化测试太难

很多初学者都认为自动化测试相比性能和功能都要难很多,实际上每个测试方向做精通都不容易,自动化只是测试其中的一部分,功能测试做到极致也不容易,性能测试做到精通也同样需要各种技术手段,自动化无非就是需要懂一些代码,难点不在技术,而是思路和实施操作,实际上只要付出同样多的努力,无论是性能还是自动化,都可以做的很好。

6、手工测试没有挑战性

手工测试是测试的基本功,也是每一个测试必经之路,但是真正做好的人没有几个,很多人认为手工测试就是点点点,我认为这个说法就是对测试的污蔑,手工测试的范围很大,包含涉及的内容也非常多,例如数据准确性,表单值域,逻辑分析,业务梳理,交互易用性,逆向思维,UI兼容性,cookie等...单单说业务逻辑和业务流程测试,就有多少人测试不全面,分析不到位而导致发布上线后出现严重问题。

7、软件测试工作重复又枯燥

软件测试的范围很广,测试的手段和方法也是不一样的,而且每个人测试一个项目的思路也不同,实际上认为重复性工作的人,往往是技术差的人,因为他始终没有任何成长。

真正做好测试的人对待每一个项目都可以使用不一样的测试方法,接口测试结束就测功能,功能测完了就做做自动化,上线之前做做性能测试,测试工具也可以随意更换,对于我来说,每一个新项目的开始,都是一次新的挑战,工作8年,丝毫没有感觉到枯燥乏味。

8、女生比较适合做软件测试

很多人都觉得女生做测试比较吃香,事实上身边做测试的也确实女生比男生要多,一个是因为女生天生比男生细心,二是很多人都觉得因为开发大多是男生,女生做测试跟开发沟通会更顺畅,这其实是一些客观的实际因素,但是并不代表男生不适合做测试。经过统计,各大公司的测试负责人男生比女生要更多。

9、白盒测试是开发人员干的事:

一个合格的测试人员必须掌握白盒测试,理解其中的原理。不管什么样的测试,都必须要有测试人员的思维才能做好,白盒测试有着其测试理论与技术,完全可以有专职的白盒测试人员进行,避免开发人员自己测试自己的程序。

10、测试就是给开发擦屁股的

大家应该都清楚,在实际的工作中通常是测试驱动开发的,也就是说是测试在主导着项目的进展,开发人员的技术水平直接体现在bug的数量上,开发的能力测试一清二楚,也是测试人员在驱动着开发人员做出改变。如果测试不能驱动开发,被开发牵着鼻子走,只有一个原因,就是测试人员能力弱,无法胜任这个角色。

11、我不适合做开发,做测试吧

这个观点特别适应于应届毕业生,在以前面试的过程中,有些人就觉得我代码写的不好,所以入行转做测试的工作,还有一部分人稍微明白一点开发,但是觉得自己在开发方面没什么优势,主动给自己定位做测试工作。其实测试要掌握的技能远比开发多得多,至少面要广得多,要做一个好的测试人员,远比做一个开发人员难得多。

12、机器自动化将会代替手工测试

现在很多人都在传自动化测试将会替代手工测试,首先有这种想法的人,一定还没有真正了解自动化测试,自动化是为了做回归测试的,自动化脚本是人工编写或录制完成的,只能覆盖大体的业务流程,并不能对软件进行详细的测试覆盖,详细的测试还是需要手工完成的,不然自动化脚本维护的时间成本将会大大增加,适得其反。而且新功能是必须进行手工测试的,只有老功能才可以进行自动化测试。自动化是为了提高测试效率而存在的测试手段,而不是为了替代手工测试而出现的。

13、使用了测试工具,就是进行了有效的测试

测试工具是为了协助测试工程师更高效的完成测试工作,是否能够有效测试,完全取决于使用工具的人的技术水平。水平强,则测试结果有参考价值,水平弱,则测试结果一塌糊涂。

建议大家还是要以手工测试为基础,工具只是为了提高测试效率,为了更好的完成测试工作,并不是用工具测试就一定有效。

14、规范化软件测试是增加项目成本

一个软件测试过程如果不规范的话,结果一定不会很理想,规范严谨的测试过程,可以大大提高测试质量,这不是增加项目成本,而是减少了项目的隐患,甚至是上线后的损失。

一家不重视测试规范的公司,其产出的软件一定不会有太大的市场竞争力。其后果,也不应该由测试人员承担。

15、期望短期通过增加软件测试投入,迅速达到零bug率

测试人员都应该知道一个原则,就是完全测试是不可能的,所谓的零BUG,就连阿里巴巴也做不到,并且软件测试是贯穿整个项目生命周期的,需要尽早的介入测试,如果在项目后期加大测试力度,也并不能有效的提高测试质量。因为测试人员没有时间理解软件的业务流程和接口逻辑。

16、忽视需求阶段的参与

软件测试的开展一定是从需求阶段展开的。没有需求文档就无法衡量测试周期和测试范围,也就无法编写测试计划和测试用例,所以忽视需求阶段的参与,对于项目质量来说是灾难性的结果。

17、忽视用户操作密集和核心功能的回归测试

很多人认为用户经常操作的地方就不会出现问题,但是一个项目更新后,很可能导致以前的核心功能受到了影响,新的代码对老的业务造成了破坏,所以说,回归测试一定不能忽视核心功能以及用户密集操作的模块。相反,应该重点回归!

18、忽视软件测试建档

软件测试建档,指的是软件的测试记录是否有效的存储,是否可查询,如果测试不建档,那么测试报告就无从考察,测试结果也有没有了依据,所以测试建档是必要环节,不可忽略。

19、软件开发完成之后进行软件测试

软件测试是贯穿整个项目生命周期的,必须要在需求阶段的时候介入,在单元测试完成后就进行集成测试也就是接口测试,这可以发现80%的软件缺陷。如果开发完成才介入测试,那么项目发布上线的时间即将会大大延长。而且很多问题修复成本也将会大大增加。

20、软件发布如果发现质量问题,都是测试人员的错

很多人都觉得测试通过后,在用户使用时发现bug一定是测试人员没有测试到位而导致的,我曾经的工作中就经历过多次这类问题,但是测试人员坚持认为该功能缺失测试过,并且没有出现这类问题。后来经过本人的辩论终于找到了问题的原因,就是开发人员的疏忽导致封包封版时,没有保存最新代码导致问题出现。

首先,如果大家以后遇到这样的情况出现,千万不要心急如焚,手忙脚乱。要先确定该功能是否测试过,是否通过测试了。如果没有测试,那么毫无疑问测试背锅,如果测试通过还出现了问题,极有可能是开发人员封版时没有保存最新的代码而导致的。或者是开发人员在发布最终版本时擅自修改了部分代码。

21、项目进度紧的时候少做些测试,时间富裕时多做测试

项目测试时间紧张的时候很容易出现测试不到位,测试不全面,导致发布后出现问题的情况,正常的处理办法,应该是使用敏捷测试方法,测试范围坚决不能缩水,测试用例可以忽略掉表单值域的用例,着重编写流程性测试用例。并且开发完成了一个模块,测试就测试一个模块,这样可以大大加快测试效率。本人很喜欢使用敏捷测试的方法,不仅可以减少测试时间,质量也不会打折扣。记住一点,敏捷测试一定要对人员进行明确的分工。避免重复性测试带来的效率降低。

22、软件测试工作没有前途,只有程序员才是软件高手

相信很多人都认为测试没有开发人员厉害,这确实是市场现状,很多测试技术确实不如开发强,但是论前途,我觉得测试比开发更有挖掘潜力,测试的发展是多样化的,而且范围很广,薪资也完全不亚于开发人员。真正的全栈测试工程师,技术也绝不会输给开发,甚至超越开发。小编在工作中,也经常会遇到开发人员前来向我请教性能技术和自动化技术。

23、软件测试就是保证软件无故障运行

软件测试不仅要保证软件无故障运行,更要保障软件的易用性,健壮性,稳定性,安全性,兼容性,用户体验等一系列的因素,所以单纯为了无故障则显得有些肤浅了。

24、软件测试的环境就选用户的环境

软件测试分为三个环境,分别是“测试环境”、“HA环境”(准线上环境)、“线上环境”,用户环境指的是第三个“线上环境”,而测试的重点用该是在“测试环境”和“HA环境”中。用户环境中并不能随意提交数据进行测试,只能在最后beta验收阶段时才会采用这个环境的测试。

25、开发人员更适合做软件测试

我们常常听到这样的问题:“为什么软件的开发者们不适合测试他们自己开发的软件?”事实上,软件开发人员测试自己所开发软件的行为就如同学生在完成考试试卷后再对自己的成绩进行评估。这种做法毫无意义

(1)开发人员对其所写代码有主观认同感

人们通常会对自己所犯错误视而不见或者拒绝承认。同样的,在软件开发领域,程序员们对待其开发的应用程序就像对待自己的孩子一样,拒绝承认自己的孩子有什么不好的地方。这就是为什么软件开发人员难于发现和改正自己的错误。

(2)开发人员对软件过于乐观的心态

开发人员进行开发的目标是将软件所需的功能完美的展现出来。当程序的功能运转正常的时候他们会自我感觉良好,因为他们的主要目标就是功能二字。而测试人员与他们想的却不一样。测试人员通常会从不同的角度切入进软件内部,打破程序员们惯有的思维方式,通过各种不同的测试用例把软件潜在的不足之处引发出来。

26、bug越多测试越有效

测试Bug的数量并不能说明测试的有效性,反倒能说明开发人员的技术水平。测试bug数量多则改的代码就多,改的越多,越可能引发其他问题的出现,甚至到后期bug越来越多。原本没有问题的模块也开始出现问题。测试的有效性不能以发现bug的数量而决定,更应该根据问题的隐蔽性或严重性来决定。

27、关注测试的执行而忽略了测试的设计

执行测试一定是按照提前设计好的方法进行的,测试的方法就是测试用例,如果不进行测试用例的设计,直接进行测试执行阶段,再强大的测试工程师也无法保证测试的全面性。相信大家都知道编写测试用例的原则,是100%的覆盖需求,可见测试设计阶段的重要性。

28、测试是为了证明软件的正确性

测试不仅要证明软件的正确性,更应该证明软件是错的,测试人员不能只考虑正确的流程,往往出错最多的是逆向思维测试,反逻辑测试,违背常规的测试是最有效的测试,所以说测试不是为了证明软件的正确性,而是恰恰相反的证明软件的错误性。

觉得有用的话,文章和图片都可以马起来留着以后用!【配套课件最下面小卡片自取喔】

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

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

相关文章

【Python从入门到进阶】16、文件的打开和关闭

接上篇《15、函数的定义和使用》 上一篇我们学习了Python中函数的定义和使用,包括函数的参数、返回值、局部变量和全景变量等操作。从本篇开始我们来开始学习Python对文件的一些操作,本篇我们主要讲解如何使用Python打开和关闭文件。 一、打开/创建文件…

全国青少年编程等级考试scratch四级真题2023年3月(含题库答题软件账号)

青少年编程等级考试scratch真题答题考试系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级(2019年3月)在线答题_程序猿下山的博客-CSDN博客_小航答题助手 1.编写一段程序,从26个英文字母中,随机选出10个加入列表a。空白…

【id:45】【20分】A. Equation(类与对象+构造)

题目描述 建立一个类Equation,表达方程ax2bxc0。类中至少包含以下方法: 1、无参构造(abc默认值为1.0、1.0、0)与有参构造函数,用于初始化a、b、c的值; 2、set方法,用于修改a、b、c的值 3、ge…

JSP原理

1.什么是JSP Java Server Page:Java服务器端页面,也和Servlet一样,用于动态Web技术 最大的特点:写JSP就像再写HTML 页面生成了java JSP本质上就是servlet 3.输出页面前增加的代码 1.response.setContentType("text/html"); //设…

C++ ubuntu环境下安装编译部署环境,用onnxruntime部署ppyoloe_r模型

在新安装的ubuntu环境下修改源、安装gcc和cmake,编译安装opencv,安装onnxruntime环境。并编写cmakelist文件,编译与运行ppyoloe_r模型。 windows环境下onnx部署ppyoloe_r模型的代码可以参考 https://blog.csdn.net/a486259/article/details/1…

Python-入门基础小练习

通过前面的两个篇章Python-入门基础篇和Python-入门基础语句篇大家应该已经认识了python基础的语句和函数了,并且可以使用pycharm编译器创建.py文件进行运行了,今天适当的来一些小练习,给枯燥的学习增添一些趣味性。 判断一个数是否为偶数 …

Node 模块

文章目录 Node 模块概述使用方式一:module.exports方式二:exports 目录模块package.json配置 引入模块的基本流程 Node 模块 概述 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。 其中拆分出的 每…

Identity标识框架配上JWT的使用

在Identity标识框架的代码上继续编写 .Net中的标识框架Identity_风的艺术的博客-CSDN博客 添加NuGet包 Nuget:Microsoft.AspNetCore.Authentication.JwtBearer 创建存储JWT数据类 public class JWTOptions { public string SigningKey { get; set; } pub…

嵌入式51单片机03-数码管系列

文章目录 数码管一、数码管基础知识二、数码管系列代码1. 数码管操作(单个数码管静态显示)(1)仿真电路图(2)源代码(3)实验结果 2. 数码管操作(多个数码管静态显示&#x…

CSDN官方文章MD编辑器文章示例

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Day950.遗留系统的四化建设 -遗留系统现代化实战

遗留系统的四化建设 Hi,我是阿昌,今天学习记录的是关于遗留系统的四化建设的内容。 对于老旧、过时,但又十分重要、不可替代的遗留系统,是遗留系统。听之任之只会埋下隐患,真正出现问题就为时已晚了。在动手改造遗留…

【蓝桥杯省赛真题39】Scratch棒球本垒打 少儿编程scratch图形化编程 蓝桥杯省赛真题讲解

目录 scratch棒球本垒打 一、题目要求 编程实现 二、案例分析 1、角色分析

托福高频真词List01 // 附阅读真题

4月18日单词 🍮segregateseparateV.隔离🍮leftover remainingadj.剩余的 🍮rivalcompetitor 🍮rivalcompete n.对手🍮 v.对抗🍮 apparentlyseeminglyadv.显然 🍮unrivaledunequaledadj.无与伦…

Create a Process for Managing Support Cases

文章目录 前言&学习目标学习目标背景 一,Create Support Processes1.创建用户2.创建Processes3.创建Record Types4.创建升级规则(Escalation Rule) 前言&学习目标 记录trailhead学习重点,创建管理支持个案的流程,简化工作流并用新的…

mysql企业级安装部署(保姆级别教程)

前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系…

Spring——利用五大类注解和Bean注解实现更简单的存储

目录 一、配置扫描路径 二、使用注解存储Bean对象 2.1 Controller(控制器存储) 2.1.1 bean标签是否可以和component-san一起使用呢? 2.2 Service(服务存储) 2.3 Repository 2.4 Component 2.5 Configuration 2.6 五大类注解可以不在…

27岁,测试在职近5年,月薪不到2W,担心被应届生取代

工作了近5年,一个月工资不到20K,担心被应届毕业生取代!互联网的快速发展伴随着员工适者生存的加速,测试员的薪资也在不断增长,以3年、5年、8年为一条分水岭。如果人们的能力和体力不够,他们就会被淘汰。看起…

Android添加C++/CPP项目代码(2)

Android添加C/CPP项目代码(2) (1)选中某个module,右键,Add C to Module 在随后弹出的选项框中选第一个,OK。 (2)此时会在app下产生一个cpp目录和两个文件: x…

TiDB实战篇-BR进行数据备份与恢复

简介 使用BR进行数据备份与恢复。 原理 Backup备份的时候在PD上面找到表的元数据,然后找到对应的TiKV数据以后,直接备份到外部系统中(注意如果没有像HDFS这样的分布式文件存储,那么它每个TiKV备份到本地的文件就只有一部分数据&…

nssctf web 入门(10)

[NISACTF 2022]midlevel [NISACTF 2022]midlevel 尝试使用x-forwarded-for 发现可行判断是不是ssti 确定是ssti模板注入 [NISACTF 2022]is secret [NISACTF 2022]is secret 根据这个我们去看看secret 这里看到这个猜测是通过get传入secret的值然后会机密我们的值 我们发现传…