测试做得好,犯错少不了【30个最容易犯的错误】谨记

news2024/11/18 9:33:53

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

自己整理了软件测试人员最容易陷入的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/184051.html

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

相关文章

Centos7搭建Hadoop集群(V3.3.4)

Centos7搭建Hadoop集群V3.3.4一、准备工作1、配置hostname2、hosts映射3、关闭防火墙4、同步时间5、关闭selinux6、配置ssh免密登陆7、重启二、安装所需环境1、jdk安装2、hadoop安装三、修改配置hadoop-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers四…

web测试1:在ubuntu中运行boa

参考文档: https://blog.csdn.net/feit2417/article/details/84777523 1.下载boa源码 Boa Webserver主页:Boa Webserver 下载链接:http://www.boa.org/boa-0.94.13.tar.gz 下载后,解压 tar zxvf boa-0.94.13.tar.gz。 文件列表…

Mysql-query优化之explainProfiling

1、explain 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构来进行划分的…

Spring的快速入门代码实现

Spring的快速入门代码实现前言:需要创建Maven的项目(这个一定要看下面的链接)1.如何创建Maven项目直达链接2.将这个项目的名字 命名为spring_ioc一、导入坐标(pom.xml文件中实现)1.1 代码:1.2 version的版本…

【GD32F427开发板试用】从0开始到RTthread移植

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:军军 写在前面: 很高兴获得这次试用机会,一直很想了解国内ARM MCU的发展,尤其是GD32系列的MCU。我也成功获得了第一次使…

PyQt5开发环境搭建 1.2 简单的例子

目录 基本开发步骤 创建Eric6工程目录 使用Qt Creator创建Qt项目 创建项目 Kit Selection 打开编辑窗口 打开form 放一个Label 拖动Label 放一个Button 拖动Push Button 保存UI文件 编译ui文件 当前项目下文件列表 将ui文件编译成py文件 将ui文件和py文件拷贝到…

学习记录678@项目管理之合同管理案例

案例 系统集成商 Simple 公司与生产型企业 Perfect 集团签订了一份企业MIS(管理信息系统)开发合同,合同已执行到设计和开发阶段,由于 Perfect 集团内部组织结构调整可能会影响核心业务的流程。集成商 Simple 公司提出建议,合同暂停执行至新的…

使用 Jenkins + Gitee + maven 自动化部署 Spring Boot

目录 1、前言 1 .1、插件简介 1.2、插件安装 2、创建Maven项目 2.1、新建一个全新的项目 2.2、拷贝已有项目 3、项目配置 3.1 、General 3.2、源码管理 3.3、构建触发器 3.4、构建环境 3.5、Pre Steps 3.6、Build 1)Root POM 2)Goals and…

kubenertes集群部署kubeadm方式

一、安装要求 1、3台机器),操作系统Centos7,5.4内核,CentOS 7.x 系统自带的3.10.x内核存在一些Bugs.导致运行的Docker.Kubernetes不稳定。 2、硬件配置:4GB内存,至少2个CPU或更多CPU,至少硬盘30GB或更多 3、集群中所有机器之间网…

41 锚框【动手学深度学习v2】】

41 锚框【动手学深度学习v2】】 锚框:对边框位置的猜测。 先提出多个框在某个地方,比如5个,然后去看这5个框里面到底有没有物体。 两次预测:锚框位置和锚框内物体的预测。 如何处理锚框? IoU - 交并比 比较两个框之…

Java开发实现图书管理系统(超详细)

本文用Java代码实现图书代码管理系统,有些地方可能会有纰漏,希望各位大佬鉴赏!! 文章目录 文章目录 一、Java实现图书管理系统 1.1创建book包 二、创建图书管理系统的操作包 2.1创建Operation接口 三、创建User包 3.1创建User类 四…

深度盘点时间序列预测方法

本篇介绍时间序列的定义、任务、构成以及预测方法,主要是基本概念的介绍和理解。 时间序列定义 时间序列,通俗的字面含义为一系列历史时间的序列集合。比如2013年到2022年我国全国总人口数依次记录下来,就构成了一个序列长度为10的时间序列…

CAN FD的一致性测试 助力汽车电子智能化

后起之秀——CAN FD:随着各个行业的快速发展,消费者对汽车电子智能化的诉求越来越强烈,这也致使整车厂将越来越多的电子控制系统加入到汽车控制中。在传统汽车、新能源汽车、ADAS和自动驾驶等汽车领域中,无不催生着更高的需求&…

4.kafka--生产调优

文章目录1.硬件配置选择1.场景说明2.服务器台数选择3.磁盘选择4.内存选择1) 堆内存配置2)页缓存配置5. cpu选择6.网络选择2.生产者3.kafka broker4. 服役新节点,退役旧节点1)创建一个要均衡的主题。2) 生成一个负载均衡的计划leader分布不均匀…

多人配音怎么做的?这两个多人配音方法分享给你

大家在刷一些短视频的时候,肯定有看到过一些搞笑的视频,而这些视频总能让我们捧腹大笑,过后再多看几次,其实你可以明显的发现这是多人互动对话或者一人分饰多角所呈现的,我们想要做出这种类型的视频,一般需…

法律常识(五)《消费者权益保护法》解读与举例

目录 酒楼谢绝客户自带酒水,合法吗? 侵犯消费者人格尊严,应承担民事责任 某公司出售伪劣产品致人损害,需双倍赔偿 农民购买、使用直接用于农业生产的生产资料 《中华人民共和国产品质量法》相关记录 《中华人民共和国反不正…

Android 双屏异显(Presentation) 开发,将第二个页面投屏到副屏上

1. 背景 最近开发的一个项目,有两个屏幕,需要将第二个页面投屏到副屏上,这就需要用到Android的双屏异显(Presentation)技术了,研究了一下,这里做下笔记。 我们那个副屏是一块汽车的后视镜(流媒体后视镜),是…

超详细:KNN与K-means从入门到实战

作者:王同学 来源:投稿 编辑:学姐 1. 基本概念 1.1 KNN k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法。 k近邻法的输入为实例的特征向量对应于特征空间的点;输出为实例的类别&…

CnOpenData食品安全抽检数据

一、数据简介 食品安全是关乎人体生命健康的公共卫生问题。近年来,频繁发生的食品安全事件给人民的生命健康带来了巨大威胁,并成为人们关注的热点问题。   民以食为天,食以安为先。由于消费者和生产者之间存在信息不对称,完善…

【Linux】---进程程序替换

进程替换出现的背景我们可以用fork函数来创建子进程,使父子进程同时出现。正所谓子承父业,子进程在刚被创建时和父进程共享数据和代码,但是操作者想让子进程执行一个全新的程序,这个使子进程执行全新程序的操作叫做进程程序替换。…