您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 业务知识 > 正文

关于软件测试,你想知道的都在这(三)

发表于:2021-03-23 作者:测试萌萌 来源:简书

问题十:软件开发比软件测试更有前景,是真的吗?

零几年时,国内很多软件企业普遍都存在着“重开发、轻测试”的现象,甚至在很多互联网公司里,根本就没有软件测试岗,上线纯靠开发和非专业人员的内部测试。

虽然这样能节约一定的人力成本,一些普通的功能性问题也能够被测试出来并得到改正,但这种测试方式仍然有一定风险。

15年时有一款叫足迹的产品,在刚上线的3天内就自动吸引了大量的用户注册与使用,结果用户多使用几次后就会变得有问题,部分功能不能正常运行,导致用户来得快去得也快,后期产品优化再上线后,用户已经失去了热情。

其实这款产品本身是特别好的,只是后来因为质量问题,失去了用户的认可,再次升级后也很难让种子用户卸载后二次下载。

从岗位薪资来看,软件开发工程师要面对很多开发环境,不断修改代码,所以会有不少工作是重复繁琐的,要想从事开发工作的这类人,性格不能太急躁,并且要承受得住那份寂寞。

而测试工程师性格最好相对外向一点,虽然这个不代表你需要像销售人员那样外向,善于与人交流。但是起码你要愿意主动与开发人员,与用户沟通。另外, 还要求测试工程师要更加敏感,更具备怀疑精神,挑剔的,追求完美的性格以及刨根问底的心态也是比较重要的。

从发展前景来看,随着软件行业的日渐成熟,用户对产品的体验感、安全性也更加关注,各大企业对软件测试的重视度也越来越高;从招聘需求来看,软件测试岗位的招聘量处于明显上升态势;从薪资水平来看,软件测试人员的待遇也是一增再增。

虽然近几年加入软件测试行业的转行人的确越来越多,但是从缺口数据来看,不难发现:相比开发日趋饱和、竞争激烈的现状,软件测试仍会长期处于蓝海状态。

“互联网+”的概念深入各行各业,很多传统行业逐步转型,公司业务量激增,加之创业风潮,人员流动等,整个IT行业的人才缺口还会持续呈扩张趋势。

并且,测试不同于开发人员的大量产出、批量培养,在学历教育阶段,高校普遍缺乏对软件测试专业的系统培养,甚至鲜有开设“软件测试”专业的大学;在非学历教育阶段,正规、专业的软件测试培训教育机构也是屈指可数。

专业人才后备不足,供不应求,也就是自然而然的了。

问题十一:一个优秀的软件测试工程师要具备哪些能力?

1、首先必须一定要具备的就是认真、负责、严谨、耐心的态度,因为软件测试工程师吃的就是这口饭,所以必须对你所测试的产品负责。宁可错杀一千,也不可放过一个,虽然不能做到完全没有Bug,但一定要尽自己最大的努力保证产品质量。

2、要有过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识、你都必须精通一门,知晓其它。当然这个做到比较难,什么都会很难,再者多了之后就不会精,什么都会也等于什么都不会,至于最后你选择深度还是广度,都由你自己把控。

3、光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。不懂产品的工程师不是好工程师。测试工程师需要训练自己的用户思维、用户视角,把自己当作真正的用户去感受产品。同时你还可以收集产品数据来做分析,通过数据再量化产品。甚至你还要去研究竞品的相关情况,知己知彼方能百战不殆。

4、沟通能力超级重要。一个优秀的软件测试人员除了经常要与开发打交道外,还需要与产品、运维、售前、售后、客服等不同的人打交道。所以如何更准确、更简洁、更严谨的描述Bug,如何让开发人员接受你发现的Bug,如何让其他人员理解你的想法等都需要沟通,所以良好的沟通能力显的尤为重要。

5、缜密的逻辑思维能力。测试人员不仅仅只是发现问题,找出Bug。更重要的是要去寻找Bug产生的真正原因,精准的找到问题发生的源头,以便协助开发人员更好更快的彻底解决Bug。这个比较考验你思维的灵敏度和推理能力。其实测试人员和刑侦有一些点类似,除了要求有缜密的逻辑思维能力,有时候还需要具备逆向反推能力。

6、测试虽然不像开发那样创造产品,但测试需要保证产品各方面的质量,让用户使用产品时觉得舒服、方便,所以大多数测试工程师都需要有一颗追求完美的心。

未来软件测试将从繁复的手工操作中解放出来,在敏捷开发的基础上,一个测试能够做好的真正价将不在是测试执行,而在于测试分析和设计,比如自动化测试工具的使用,uiautomatorviewer、TestBird等,将手工操作逐渐淘汰,提高测试效率,这才是测试行业未来发展的趋势和净化的方向。

问题十二:入行软件测试,是选择自学还是培训?

•自学

对于自学

控制力够强吗?

你的理解能力怎么样?

优势:金钱成本较低,能够按照自己设定的学习计划进行学习,时间安排也比较自由。

劣势:自学消耗的时间比较长,如果没有基础的话,想要自学也是比较难的,相对于有一定基础的,一般都是在空闲之余用碎片化的时间去学习,想要在软件测试的领域小有所成,找到一份正式工作,怎么也得一年半载吧。自学需要强大的自制力,需要耐得住寂寞,每天固定的坚持学习,但是遇到技术难点很容易做牛角尖,导致半途而废。

•培训

优势:学习时间相对较短,整体学习比较全面,学习内容也比较集中。专业老师按照大纲进行系统授课,在学习中遇到技术问题能够快速得到解决,同时还有专项的练相对于自学,学习气氛更加浓厚,跟同期学员对问题的探讨,对拓展思路有很大的帮助。让学习变成一件很快乐的事情,学习起来也会很有动力,学习的效果会更好。

劣势:相对于自学,培训是需要金钱成本,一般的培训机构学习费用都在一万五到三万不等左右,还要加上学习期间的生活费,学习成本比较高。PS:从时间就是金钱的角度来看,上面说的自学优点反而不成立啦,提前工作半年的薪资估计不止一两万吧。

如果你不是一个自制能力很强的人,又想能够尽快的提升技能,最好是找一家靠谱合适的培训机构进行学习,毕竟培训价格不是小数目,主要是看钱花得值不值,主要取决于培训机构的质量。不过无论是培训还是自学,自己都得努力去学习,不然说什么也无济于事。

问题十三:不参加培训,如何通过自学的方式成功转行?

有些人因为摇摆不定,不敢冒着离职的风险参与培训,他们只想边工作边学习,那么类似这种情况的小伙伴可以如何学习呢?

1、找课程学习的大纲

找几家培训机构咨询,最好是直接在官网咨询老师,留一个QQ,再想办法获得他们的课程大纲,然后对比整合。之所以让你留QQ而不是电话,是因为某些培训机构一旦获得你的电话后就会每天给你打电话,甚至整个周期长达半年乃至一年。留QQ的话,获得信息后可以直接删除。当然你也要注意,某些培训机构不知道是什么方法,居然能够通过QQ获得你的电话。因为我就曾经遇到过这样的事情。

2、招聘网站实际调研

接下里需要你去一些招聘网站上找一部分岗位招聘详情来进行分析,总结出哪些技术是必须要学习的。也许你会纳闷,为什么已经有了培训机构的大纲却还要去招聘网站调研呢?

一是因为怕你遇到那种三年课程都不更新的不良机构;而是技术的更新迭代很快,基本每半年企业的招聘需求就会有一定的变化。

这样做,能够保证你学习的是刚需性技术知识,自学完后能够真正的找到一份入行工作。

3、规划出学习的大纲

前面已经把多家培训机构的课程大纲进行了整合,且把企业招聘需求进行了调研,那么接下来就要花时间做一份详细的学习大纲,包括学习时间,学习规划。

因为一份好的学习计划能达到事半功倍的效果。

4、接下里就是找课程,分享一些学习技术的免费网站

1).Codecademy

国外在线学习编程的网站,它为用户提供了一种学习编程的新方式,是最受欢迎的免费编程学习网站之一。基于网络编程教学,手把手帮助用户了解JavaScript的一些基本原理。更重要的是,使用Codecademy学习编程充满了趣味性。

Codecademy目前开设的课程有HTML&CSS,JavaScript,jQuery,PHP,Python和Ruby。事实上,已经有超过2400万人通过它学会了编程。

2).Udemy

Udemy成立于2010年,是一个在线学习平台,可以帮助你改善或学习工作技能。虽然有部分课程需要付费,但也有大量的免费编程学习课程,通过视频讲授。

demy 这个名字有它特别的含义。“Udemy” 是由 “you” 加上 “academy” 合成的,意思是 “你的大学”。

与其他在线教育平台不同的是,Udemy 不仅开放各种课程,更开放了教学的机会。也就是说,只要你愿意,你也可以成为老师。

3).GitHub

GitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱、代码片段分享等功能。

目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。

4).edX

edX是另一个领先的在线学习平台,重点是它不是以营利为目的,而是开源的。edX是由美国哈佛大学和麻省理工学院于2012年联合创办的,所以你将会在这里学习到先进的技术和理论。如今,edX已涵盖了60所学校。此外在这里,你应该不会错过哈佛大学的计算机科学导论的,免费的哦。

5、一定要明白,技术是永远看不会的,并且就算你会敲代码,也不代表你掌握了它。如果真正的要把所学技术运用到一个项目中去,那你可以在网上找一些项目来做,或者参与一些付费项目。

6、如果你觉得以上方法太麻烦,那么直接某宝上买课程即可,几块、几十块、几百块不等,等市面上培训机构的课程基本都有。

另外,关于就业,其实就是你的沟通表达能力了,当你把一个项目或者某一个较难的技术掌握之后,你一定要尝试去把它说出来。因为对于一个技术人员而言,团队沟通能力也至关重要。

最后,很重要很重要的一点,不要只是三分钟热度,自律性是你做成这件事的最最根本的保障。