软件测试最容易陷入的28个误区

最近跟一些刚刚进入软件测试行业的朋友去交流,发现了一个有趣的现象,就是对于这个行业的不少问题的认识都是一致的片面,固然也能够理解为误区。本身利用一点时间,把他们对于这个行业的认识误区都罗列出来,而后结合本身这么多年的工做经验和你们一同交流一下,毕竟本身也是从这个阶段走过来的,后来者能少走些弯路是最好的。本身整理了软件测试人员最容易陷入的28个误区,文章后面附带思惟导图。程序员

 

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

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

我之前发起过一个倡议:咱们讨论的时候不要用他们(开发人员)和咱们(测试人员),而是统一用我们,由于开发人员和测试人员原本就是一块儿的。若是测试人员能与开发人员成为朋友,你会发现,工做会很是顺心,在我所在的企业中,测试人员和开发人员关系很是融洽,互相尊重,对你们的工做能力和技术表示确定。服务器

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

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

 

二、测试人员不须要了解软件开发知识工具

测试人员跟开发人员交流不顺畅,主要是有如下几个缘由:性能

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

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

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

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

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

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

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

 

三、软件测试很简单

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

 

四、测试就是为了找到bug

测试人员不只须要找到bug,还要跟踪bug直至问题得以被修复,对缺陷进行确认测试并关闭缺陷,测试员还须要分析问题缘由,避免所以问题影响到其余功能。

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

 

五、自动化测试太难

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

 

六、手工测试没有挑战性

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

 

七、软件测试工做重复又枯燥

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

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

 

八、女生比较适合作软件测试

不少人都以为女生作测试比较吃香,事实上身边作测试的也确实女生比男生要多,一个是由于女生天生比男生细心,二是不少人都以为由于开发大可能是男生,女生作测试跟开发沟通会更顺畅,这实际上是一些客观的实际因素,可是并不表明男生不适合作测试。通过统计,各大公司的测试负责人男生比女生要更多。

 

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

一个合格的测试人员必须掌握白盒测试,理解其中的原理。无论什么样的测试,都必需要有测试人员的思惟才能作好,白盒测试有着其测试理论与技术,彻底能够有专职的白盒测试人员进行,避免开发人员本身测试本身的程序。

 

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

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

 

十一、我不适合作开发,作测试吧

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

 

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

如今不少人都在传自动化测试将会替代手工测试,首先有这种想法的人,必定尚未真正了解自动化测试,自动化是为了作回归测试的,自动化脚本是人工编写或录制完成的,只能覆盖大致的业务流程,并不能对软件进行详细的测试覆盖,详细的测试仍是须要手工完成的,否则自动化脚本维护的时间成本将会大大增长,拔苗助长。并且新功能是必须进行手工测试的,只有老功能才能够进行自动化测试。自动化是为了提升测试效率而存在的测试手段,而不是为了替代手工测试而出现的。

 

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

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

建议你们仍是要以手工测试为基础,工具只是为了提升测试效率,为了更好的完成测试工做,并非用工具测试就必定有效。

 

1四、规范化软件测试是增长项目成本

一个软件测试过程若是不规范的话,结果必定不会很理想,规范严谨的测试过程,能够大大提升测试质量,这不是增长项目成本,而是减小了项目的隐患,甚至是上线后的损失。

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

 

1五、指望短时间经过增长软件测试投入,迅速达到零bug率

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

 

1六、忽视需求阶段的参与

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

 

1七、忽视用户操做密集和核心功能的回归测试

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

 

1八、忽视软件测试建档

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

 

1九、软件开发完成以后进行软件测试

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

 

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

不少人都以为测试经过后,在用户使用时发现bug必定是测试人员没有测试到位而致使的,我曾经的工做中就经历过屡次这类问题,可是测试人员坚持认为该功能缺失测试过,而且没有出现这类问题。后来通过本人的辩论终于找到了问题的缘由,就是开发人员的疏忽致使封包封版时,没有保存最新代码致使问题出现。

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

 

2一、项目进度紧的时候少作些测试,时间富裕时多作测试

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

 

2二、软件测试工做没有前途,只有程序员才是软件高手

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

 

2三、软件测试就是保证软件无端障运行

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

 

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

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

 

2五、开发人员更适合作软件测试

咱们经常听到这样的问题:“为何软件的开发者们不适合测试他们本身开发的软件?”事实上,软件开发人员测试本身所开发软件的行为就如同窗生在完成考试试卷后再对本身的成绩进行评估。这种作法毫无心义

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

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

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

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

 

2六、bug越多测试越有效

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

 

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

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

 

2八、测试是为了证实软件的正确性

测试不只要证实软件的正确性,更应该证实软件是错的,测试人员不能只考虑正确的流程,每每出错最多的是逆向思惟测试,反逻辑测试,违背常规的测试是最有效的测试,因此说测试不是为了证实软件的正确性,而是偏偏相反的证实软件的错误性。

软件测试学习路线图:

 

测试学习交流群:708228666

相关文章
相关标签/搜索